Ubuntu 16.04 LTS Compiler Benchmarks GCC 5.3.1, GCC 6.0, LLVM Clang 3.7, and LLVM Clang 3.8 compiler benchmarks using the Xenial Xerus packages for Ubuntu 16.04 LTS. Benchmarks by Michael Larabel for a future article on Phoronix.com
HTML result view exported from: https://openbenchmarking.org/result/1602255-GA-UBUNTU16057&grw .
Ubuntu 16.04 LTS Compiler Benchmarks Processor Motherboard Chipset Memory Disk Graphics Audio Monitor Network OS Kernel Desktop Display Server Display Driver OpenGL Compiler File-System Screen Resolution LLVM Clang 3.7.1 LLVM Clang 3.8 GCC 5.3.1 GCC 6.0.0 20160125 Intel Xeon E3-1280 v5 @ 4.00GHz (8 Cores) MSI C236A WORKSTATION (MS-7998) v1.0 Intel Sky Lake 16384MB 120GB Samsung SSD 850 MSI AMD Radeon R7 370 / R9 270/370 OEM 4096MB Realtek ALC1150 DELL P2415Q Intel Connection Ubuntu 16.04 4.4.0-7-generic (x86_64) Unity 7.4.0 X Server 1.17.3 radeon 7.6.1 4.1 Mesa 11.1.2 Gallium 0.4 Clang 3.7.1-1ubuntu4 ext4 3840x2160 Clang 3.8.0-+rc2-1~exp1ubuntu2 GCC 5.3.1 20160222 + clang (Ubuntu 5.3.1-9ubuntu3) 5.3.1 20160222 GCC 6.0.0 20160125 OpenBenchmarking.org Processor Details - Scaling Governor: intel_pstate powersave Compiler Details - GCC 5.3.1: --build=x86_64-linux-gnu --disable-browser-plugin --disable-vtable-verify --disable-werror --enable-checking=release --enable-clocale=gnu --enable-gnu-unique-object --enable-gtk-cairo --enable-java-awt=gtk --enable-java-home --enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++ --enable-libmpx --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-multiarch --enable-multilib --enable-nls --enable-objc-gc --enable-plugin --enable-shared --enable-threads=posix --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-abi=m64 --with-arch-32=i686 --with-arch-directory=amd64 --with-default-libstdcxx-abi=new --with-multilib-list=m32,m64,mx32 --with-tune=generic -v - GCC 6.0.0 20160125: --build=x86_64-linux-gnu --disable-browser-plugin --disable-nls --disable-vtable-verify --disable-werror --enable-checking=yes --enable-clocale=gnu --enable-gnu-unique-object --enable-gtk-cairo --enable-java-awt=gtk --enable-java-home --enable-languages=c,ada,c++,java,go,fortran,objc,obj-c++ --enable-libmpx --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-multiarch --enable-multilib --enable-objc-gc --enable-plugin --enable-shared --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-abi=m64 --with-arch-32=i686 --with-arch-directory=amd64 --with-default-libstdcxx-abi=new --with-multilib-list=m32,m64,mx32 --with-tune=generic -v
Ubuntu 16.04 LTS Compiler Benchmarks bullet: Raytests bullet: 3000 Fall bullet: 1000 Stack bullet: 1000 Convex bullet: 136 Ragdolls bullet: Prim Trimesh bullet: Convex Trimesh scimark2: Composite scimark2: Monte Carlo scimark2: Fast Fourier Transform scimark2: Sparse Matrix Multiply scimark2: Dense LU Matrix Factorization scimark2: Jacobi Successive Over-Relaxation encode-flac: WAV To FLAC encode-mp3: WAV To MP3 hmmer: Pfam Database Search himeno: Poisson Pressure Solver build-apache: Time To Compile stockfish: Total Time compress-7zip: Compress Speed Test build-php: Time To Compile c-ray: Total Time smallpt: Global Illumination Renderer; 100 Samples apache: Static Web Page Serving openssl: RSA 4096-bit Performance redis: GET redis: SET pgbench: Buffer Test - Normal Load - Read Write pgbench: Buffer Test - Single Thread - Read Write pgbench: Buffer Test - Heavy Contention - Read Write LLVM Clang 3.7.1 LLVM Clang 3.8 GCC 5.3.1 GCC 6.0.0 20160125 2.70 4.51 5.13 4.58 3.05 1.00 1.17 2531.78 627.96 313.85 2538.56 7731.92 1446.61 5.31 11.47 8.73 2236.78 19.87 3324 23666 16.79 25.72 23 48798.85 678.53 3096524.92 2146299.50 6637.61 600.24 7911.95 2.77 4.61 5.41 4.69 3.27 1.01 1.18 2433.58 284.07 311.18 2538.51 7604.30 1429.85 5.31 12.09 8.71 1890.25 22.24 3292 24057 18.69 25.94 24 48579.46 677.23 2823390.21 2088730.67 6598.18 592.32 7902.49 2.54 4.12 4.61 4.27 2.78 0.94 1.13 1581.41 735.64 316.56 2667.00 3058.37 1129.46 4.95 10.86 8.29 2628.81 23.64 3210 23056 21.96 14.67 21 49743.62 694.00 3112531.88 2076119.06 6431.46 573.40 7922.13 2.49 4.01 4.50 4.32 2.74 0.91 1.09 1573.84 737.18 316.53 2610.33 3077.51 1127.68 4.86 10.61 8.22 2604.81 43.58 3148 23715 41.05 14.83 21 49584.51 693.40 3021227.58 2178042.15 6421.59 559.29 7950.75 OpenBenchmarking.org
Bullet Physics Engine Test: Raytests OpenBenchmarking.org Seconds, Fewer Is Better Bullet Physics Engine 2.81 Test: Raytests LLVM Clang 3.7.1 LLVM Clang 3.8 GCC 5.3.1 GCC 6.0.0 20160125 0.6233 1.2466 1.8699 2.4932 3.1165 SE +/- 0.01, N = 3 SE +/- 0.00, N = 3 SE +/- 0.02, N = 3 SE +/- 0.01, N = 3 2.70 2.77 2.54 2.49 1. (CXX) g++ options: -O3 -march=native -rdynamic -lglut -lGL -lGLU
Bullet Physics Engine Test: 3000 Fall OpenBenchmarking.org Seconds, Fewer Is Better Bullet Physics Engine 2.81 Test: 3000 Fall LLVM Clang 3.7.1 LLVM Clang 3.8 GCC 5.3.1 GCC 6.0.0 20160125 1.0373 2.0746 3.1119 4.1492 5.1865 SE +/- 0.03, N = 3 SE +/- 0.02, N = 3 SE +/- 0.00, N = 3 SE +/- 0.01, N = 3 4.51 4.61 4.12 4.01 1. (CXX) g++ options: -O3 -march=native -rdynamic -lglut -lGL -lGLU
Bullet Physics Engine Test: 1000 Stack OpenBenchmarking.org Seconds, Fewer Is Better Bullet Physics Engine 2.81 Test: 1000 Stack LLVM Clang 3.7.1 LLVM Clang 3.8 GCC 5.3.1 GCC 6.0.0 20160125 1.2173 2.4346 3.6519 4.8692 6.0865 SE +/- 0.02, N = 3 SE +/- 0.16, N = 3 SE +/- 0.02, N = 3 SE +/- 0.02, N = 3 5.13 5.41 4.61 4.50 1. (CXX) g++ options: -O3 -march=native -rdynamic -lglut -lGL -lGLU
Bullet Physics Engine Test: 1000 Convex OpenBenchmarking.org Seconds, Fewer Is Better Bullet Physics Engine 2.81 Test: 1000 Convex LLVM Clang 3.7.1 LLVM Clang 3.8 GCC 5.3.1 GCC 6.0.0 20160125 1.0553 2.1106 3.1659 4.2212 5.2765 SE +/- 0.04, N = 3 SE +/- 0.01, N = 3 SE +/- 0.01, N = 3 SE +/- 0.02, N = 3 4.58 4.69 4.27 4.32 1. (CXX) g++ options: -O3 -march=native -rdynamic -lglut -lGL -lGLU
Bullet Physics Engine Test: 136 Ragdolls OpenBenchmarking.org Seconds, Fewer Is Better Bullet Physics Engine 2.81 Test: 136 Ragdolls LLVM Clang 3.7.1 LLVM Clang 3.8 GCC 5.3.1 GCC 6.0.0 20160125 0.7358 1.4716 2.2074 2.9432 3.679 SE +/- 0.04, N = 3 SE +/- 0.21, N = 3 SE +/- 0.03, N = 3 SE +/- 0.02, N = 3 3.05 3.27 2.78 2.74 1. (CXX) g++ options: -O3 -march=native -rdynamic -lglut -lGL -lGLU
Bullet Physics Engine Test: Prim Trimesh OpenBenchmarking.org Seconds, Fewer Is Better Bullet Physics Engine 2.81 Test: Prim Trimesh LLVM Clang 3.7.1 LLVM Clang 3.8 GCC 5.3.1 GCC 6.0.0 20160125 0.2273 0.4546 0.6819 0.9092 1.1365 SE +/- 0.01, N = 3 SE +/- 0.01, N = 3 SE +/- 0.01, N = 3 SE +/- 0.01, N = 3 1.00 1.01 0.94 0.91 1. (CXX) g++ options: -O3 -march=native -rdynamic -lglut -lGL -lGLU
Bullet Physics Engine Test: Convex Trimesh OpenBenchmarking.org Seconds, Fewer Is Better Bullet Physics Engine 2.81 Test: Convex Trimesh LLVM Clang 3.7.1 LLVM Clang 3.8 GCC 5.3.1 GCC 6.0.0 20160125 0.2655 0.531 0.7965 1.062 1.3275 SE +/- 0.02, N = 3 SE +/- 0.01, N = 3 SE +/- 0.01, N = 3 SE +/- 0.00, N = 3 1.17 1.18 1.13 1.09 1. (CXX) g++ options: -O3 -march=native -rdynamic -lglut -lGL -lGLU
SciMark Computational Test: Composite OpenBenchmarking.org Mflops, More Is Better SciMark 2.0 Computational Test: Composite LLVM Clang 3.7.1 LLVM Clang 3.8 GCC 5.3.1 GCC 6.0.0 20160125 500 1000 1500 2000 2500 SE +/- 1.81, N = 4 SE +/- 6.89, N = 4 SE +/- 1.60, N = 4 SE +/- 1.20, N = 4 2531.78 2433.58 1581.41 1573.84 1. (CXX) g++ options: -O3 -march=native
SciMark Computational Test: Monte Carlo OpenBenchmarking.org Mflops, More Is Better SciMark 2.0 Computational Test: Monte Carlo LLVM Clang 3.7.1 LLVM Clang 3.8 GCC 5.3.1 GCC 6.0.0 20160125 160 320 480 640 800 SE +/- 1.44, N = 4 SE +/- 1.94, N = 4 SE +/- 2.36, N = 4 SE +/- 1.66, N = 4 627.96 284.07 735.64 737.18 1. (CXX) g++ options: -O3 -march=native
SciMark Computational Test: Fast Fourier Transform OpenBenchmarking.org Mflops, More Is Better SciMark 2.0 Computational Test: Fast Fourier Transform LLVM Clang 3.7.1 LLVM Clang 3.8 GCC 5.3.1 GCC 6.0.0 20160125 70 140 210 280 350 SE +/- 1.32, N = 4 SE +/- 1.25, N = 4 SE +/- 0.64, N = 4 SE +/- 0.71, N = 4 313.85 311.18 316.56 316.53 1. (CXX) g++ options: -O3 -march=native
SciMark Computational Test: Sparse Matrix Multiply OpenBenchmarking.org Mflops, More Is Better SciMark 2.0 Computational Test: Sparse Matrix Multiply LLVM Clang 3.7.1 LLVM Clang 3.8 GCC 5.3.1 GCC 6.0.0 20160125 600 1200 1800 2400 3000 SE +/- 5.98, N = 4 SE +/- 12.26, N = 4 SE +/- 3.08, N = 4 SE +/- 2.94, N = 4 2538.56 2538.51 2667.00 2610.33 1. (CXX) g++ options: -O3 -march=native
SciMark Computational Test: Dense LU Matrix Factorization OpenBenchmarking.org Mflops, More Is Better SciMark 2.0 Computational Test: Dense LU Matrix Factorization LLVM Clang 3.7.1 LLVM Clang 3.8 GCC 5.3.1 GCC 6.0.0 20160125 1700 3400 5100 6800 8500 SE +/- 21.73, N = 4 SE +/- 37.88, N = 4 SE +/- 4.62, N = 4 SE +/- 6.30, N = 4 7731.92 7604.30 3058.37 3077.51 1. (CXX) g++ options: -O3 -march=native
SciMark Computational Test: Jacobi Successive Over-Relaxation OpenBenchmarking.org Mflops, More Is Better SciMark 2.0 Computational Test: Jacobi Successive Over-Relaxation LLVM Clang 3.7.1 LLVM Clang 3.8 GCC 5.3.1 GCC 6.0.0 20160125 300 600 900 1200 1500 SE +/- 9.02, N = 4 SE +/- 5.76, N = 4 SE +/- 3.14, N = 4 SE +/- 1.05, N = 4 1446.61 1429.85 1129.46 1127.68 1. (CXX) g++ options: -O3 -march=native
FLAC Audio Encoding WAV To FLAC OpenBenchmarking.org Seconds, Fewer Is Better FLAC Audio Encoding 1.3.1 WAV To FLAC LLVM Clang 3.8 LLVM Clang 3.7.1 GCC 5.3.1 GCC 6.0.0 20160125 1.197 2.394 3.591 4.788 5.985 SE +/- 0.02, N = 5 SE +/- 0.02, N = 5 SE +/- 0.00, N = 5 SE +/- 0.00, N = 5 5.32 5.31 4.95 4.86 -fvisibility=hidden -fvisibility=hidden 1. (CXX) g++ options: -O3 -march=native -lm
LAME MP3 Encoding WAV To MP3 OpenBenchmarking.org Seconds, Fewer Is Better LAME MP3 Encoding 3.99.3 WAV To MP3 LLVM Clang 3.7.1 LLVM Clang 3.8 GCC 5.3.1 GCC 6.0.0 20160125 3 6 9 12 15 SE +/- 0.01, N = 5 SE +/- 0.04, N = 5 SE +/- 0.01, N = 5 SE +/- 0.01, N = 5 11.47 12.09 10.86 10.61 1. (CC) gcc options: -pipe -O3 -march=native -lm
Timed HMMer Search Pfam Database Search OpenBenchmarking.org Seconds, Fewer Is Better Timed HMMer Search 2.3.2 Pfam Database Search LLVM Clang 3.7.1 LLVM Clang 3.8 GCC 5.3.1 GCC 6.0.0 20160125 2 4 6 8 10 SE +/- 0.01, N = 3 SE +/- 0.02, N = 3 SE +/- 0.01, N = 3 SE +/- 0.01, N = 3 8.73 8.71 8.29 8.22 1. (CC) gcc options: -O3 -march=native -pthread -lhmmer -lsquid -lm
Himeno Benchmark Poisson Pressure Solver OpenBenchmarking.org MFLOPS, More Is Better Himeno Benchmark 3.0 Poisson Pressure Solver LLVM Clang 3.7.1 LLVM Clang 3.8 GCC 5.3.1 GCC 6.0.0 20160125 600 1200 1800 2400 3000 SE +/- 7.01, N = 3 SE +/- 0.86, N = 3 SE +/- 15.39, N = 3 SE +/- 10.87, N = 3 2236.78 1890.25 2628.81 2604.81 1. (CC) gcc options: -O3 -march=native -mavx2
Timed Apache Compilation Time To Compile OpenBenchmarking.org Seconds, Fewer Is Better Timed Apache Compilation 2.4.7 Time To Compile LLVM Clang 3.7.1 LLVM Clang 3.8 GCC 5.3.1 GCC 6.0.0 20160125 10 20 30 40 50 SE +/- 0.03, N = 3 SE +/- 0.09, N = 3 SE +/- 0.05, N = 3 SE +/- 0.07, N = 3 19.87 22.24 23.64 43.58
Stockfish Total Time OpenBenchmarking.org ms, Fewer Is Better Stockfish 2014-11-26 Total Time LLVM Clang 3.7.1 LLVM Clang 3.8 GCC 5.3.1 GCC 6.0.0 20160125 700 1400 2100 2800 3500 SE +/- 5.13, N = 3 SE +/- 5.36, N = 3 SE +/- 4.36, N = 3 SE +/- 9.94, N = 3 3324 3292 3210 3148 -flto -flto 1. (CXX) g++ options: -lpthread -O3 -march=native -fno-exceptions -fno-rtti -ansi -pedantic -msse -msse3 -mpopcnt
7-Zip Compression Compress Speed Test OpenBenchmarking.org MIPS, More Is Better 7-Zip Compression 9.20.1 Compress Speed Test LLVM Clang 3.7.1 LLVM Clang 3.8 GCC 5.3.1 GCC 6.0.0 20160125 5K 10K 15K 20K 25K SE +/- 178.26, N = 3 SE +/- 110.79, N = 3 SE +/- 229.23, N = 3 SE +/- 56.53, N = 3 23666 24057 23056 23715 1. (CXX) g++ options: -pipe -lpthread
Timed PHP Compilation Time To Compile OpenBenchmarking.org Seconds, Fewer Is Better Timed PHP Compilation 5.2.9 Time To Compile LLVM Clang 3.7.1 LLVM Clang 3.8 GCC 5.3.1 GCC 6.0.0 20160125 9 18 27 36 45 SE +/- 0.05, N = 3 SE +/- 0.05, N = 3 SE +/- 0.05, N = 3 SE +/- 0.04, N = 3 16.79 18.69 21.96 41.05 -lpthread 1. (CC) gcc options: -O3 -march=native -pedantic -ldl -lm
C-Ray Total Time OpenBenchmarking.org Seconds, Fewer Is Better C-Ray 1.1 Total Time LLVM Clang 3.7.1 LLVM Clang 3.8 GCC 5.3.1 GCC 6.0.0 20160125 6 12 18 24 30 SE +/- 0.02, N = 3 SE +/- 0.01, N = 3 SE +/- 0.03, N = 3 SE +/- 0.02, N = 3 25.72 25.94 14.67 14.83 1. (CC) gcc options: -lm -lpthread -O3 -march=native
Smallpt Global Illumination Renderer; 100 Samples OpenBenchmarking.org Seconds, Fewer Is Better Smallpt 1.0 Global Illumination Renderer; 100 Samples LLVM Clang 3.7.1 LLVM Clang 3.8 GCC 5.3.1 GCC 6.0.0 20160125 6 12 18 24 30 SE +/- 0.33, N = 3 SE +/- 0.00, N = 3 SE +/- 0.00, N = 3 SE +/- 0.33, N = 3 23 24 21 21 1. (CXX) g++ options: -fopenmp -O3 -march=native
Apache Benchmark Static Web Page Serving OpenBenchmarking.org Requests Per Second, More Is Better Apache Benchmark 2.4.7 Static Web Page Serving LLVM Clang 3.7.1 LLVM Clang 3.8 GCC 5.3.1 GCC 6.0.0 20160125 11K 22K 33K 44K 55K SE +/- 247.92, N = 3 SE +/- 283.69, N = 3 SE +/- 33.52, N = 3 SE +/- 78.30, N = 3 48798.85 48579.46 49743.62 49584.51 1. (CC) gcc options: -shared -fPIC -pthread -O3 -march=native
OpenSSL RSA 4096-bit Performance OpenBenchmarking.org Signs Per Second, More Is Better OpenSSL 1.0.1g RSA 4096-bit Performance LLVM Clang 3.7.1 LLVM Clang 3.8 GCC 5.3.1 GCC 6.0.0 20160125 150 300 450 600 750 SE +/- 0.72, N = 3 SE +/- 0.69, N = 3 SE +/- 0.10, N = 3 SE +/- 0.15, N = 3 678.53 677.23 694.00 693.40 1. (CC) gcc options: -m64 -O3 -lssl -lcrypto -ldl
Redis Test: GET OpenBenchmarking.org Requests Per Second, More Is Better Redis 3.0.1 Test: GET LLVM Clang 3.7.1 LLVM Clang 3.8 GCC 5.3.1 GCC 6.0.0 20160125 700K 1400K 2100K 2800K 3500K SE +/- 29057.84, N = 3 SE +/- 97365.18, N = 6 SE +/- 133050.46, N = 6 SE +/- 108149.76, N = 6 3096524.92 2823390.21 3112531.88 3021227.58 -std=gnu99 -pipe -g3 -O3 -funroll-loops -march=native 1. (CC) gcc options: -ggdb -rdynamic -lm -pthread -ldl
Redis Test: SET OpenBenchmarking.org Requests Per Second, More Is Better Redis 3.0.1 Test: SET LLVM Clang 3.7.1 LLVM Clang 3.8 GCC 5.3.1 GCC 6.0.0 20160125 500K 1000K 1500K 2000K 2500K SE +/- 20142.16, N = 3 SE +/- 32867.27, N = 3 SE +/- 31524.64, N = 4 SE +/- 45034.71, N = 6 2146299.50 2088730.67 2076119.06 2178042.15 -std=gnu99 -pipe -g3 -O3 -funroll-loops -march=native 1. (CC) gcc options: -ggdb -rdynamic -lm -pthread -ldl
PostgreSQL pgbench Scaling: Buffer Test - Test: Normal Load - Mode: Read Write OpenBenchmarking.org TPS, More Is Better PostgreSQL pgbench 9.4.3 Scaling: Buffer Test - Test: Normal Load - Mode: Read Write LLVM Clang 3.7.1 LLVM Clang 3.8 GCC 5.3.1 GCC 6.0.0 20160125 1400 2800 4200 5600 7000 SE +/- 117.87, N = 3 SE +/- 66.57, N = 3 SE +/- 75.13, N = 3 SE +/- 93.15, N = 3 6637.61 6598.18 6431.46 6421.59 -pthreads -mthreads -pthreads -mthreads 1. (CC) gcc options: -fno-strict-aliasing -fwrapv -O3 -march=native -pthread -lpgcommon -lpgport -lpq -lpthread -lrt -lcrypt -ldl -lm
PostgreSQL pgbench Scaling: Buffer Test - Test: Single Thread - Mode: Read Write OpenBenchmarking.org TPS, More Is Better PostgreSQL pgbench 9.4.3 Scaling: Buffer Test - Test: Single Thread - Mode: Read Write LLVM Clang 3.7.1 LLVM Clang 3.8 GCC 5.3.1 GCC 6.0.0 20160125 130 260 390 520 650 SE +/- 10.18, N = 4 SE +/- 2.91, N = 3 SE +/- 6.79, N = 3 SE +/- 4.20, N = 3 600.24 592.32 573.40 559.29 -pthreads -mthreads -pthreads -mthreads 1. (CC) gcc options: -fno-strict-aliasing -fwrapv -O3 -march=native -pthread -lpgcommon -lpgport -lpq -lpthread -lrt -lcrypt -ldl -lm
PostgreSQL pgbench Scaling: Buffer Test - Test: Heavy Contention - Mode: Read Write OpenBenchmarking.org TPS, More Is Better PostgreSQL pgbench 9.4.3 Scaling: Buffer Test - Test: Heavy Contention - Mode: Read Write LLVM Clang 3.7.1 LLVM Clang 3.8 GCC 5.3.1 GCC 6.0.0 20160125 2K 4K 6K 8K 10K SE +/- 39.32, N = 3 SE +/- 35.36, N = 3 SE +/- 61.24, N = 3 SE +/- 38.92, N = 3 7911.95 7902.49 7922.13 7950.75 -pthreads -mthreads -pthreads -mthreads 1. (CC) gcc options: -fno-strict-aliasing -fwrapv -O3 -march=native -pthread -lpgcommon -lpgport -lpq -lpthread -lrt -lcrypt -ldl -lm
Phoronix Test Suite v10.8.5