Early GCC 7.0 vs. LLVM Clang 4.0 Benchmarking On Intel x86_64 Linux Intel Core i7-6800K testing of GCC 7.0 snapshot versus GCC 6.2 and GCC 5.4 then compared to LLVM Clang 3.9 and LLVM Clang 4.0 SVN from start of December. Tests by Michael Larabel for a future article on Phoronix.
HTML result view exported from: https://openbenchmarking.org/result/1612058-TA-LLVMCLANG83&grt&sor&export=txt .
Early GCC 7.0 vs. LLVM Clang 4.0 Benchmarking On Intel x86_64 Linux Processor Motherboard Chipset Memory Disk Graphics Audio Monitor Network OS Kernel Desktop Display Server Display Driver OpenGL Compiler File-System Screen Resolution GCC 5.4.0 GCC 6.2.0 GCC 7.0.0 20161127 Clang 3.9.0 Clang 4.0 SVN Intel Core i7-6800K @ 3.80GHz (12 Cores) MSI X99A WORKSTATION (MS-7A54) v1.0 Intel Xeon E7 v4/Xeon 16384MB 120GB Samsung SSD 850 + 4 x 120GB TOSHIBA-TR150 NVIDIA GeForce GTX TITAN X 12288MB Realtek ALC1150 ASUS PB278 Intel Connection Ubuntu 16.10 4.8.0-28-generic (x86_64) Unity 7.5.0 X Server 1.18.4 nouveau 1.0.12 3.3 Mesa 12.0.3 Gallium 0.4 GCC 5.4.0 ext4 2560x1440 GCC 6.2.0 GCC 7.0.0 20161127 Clang 3.9.0-1ubuntu1 + LLVM 3.9.0 Clang 4.0.0-svn288274-1~exp1 + LLVM 4.0.0 OpenBenchmarking.org Compiler Details - GCC 5.4.0, GCC 6.2.0, GCC 7.0.0 20161127: --disable-multilib --enable-checking=release --enable-languages=c,c++ Disk Details - DEADLINE / data=ordered,errors=remount-ro,relatime,rw Processor Details - Scaling Governor: intel_pstate powersave
Early GCC 7.0 vs. LLVM Clang 4.0 Benchmarking On Intel x86_64 Linux c-ray: Total Time ebizzy: Phoronix Test Suite v6.8.0m3 fftw: Float + SSE - 2D FFT Size 4096 himeno: Poisson Pressure Solver encode-mp3: WAV To MP3 openssl: RSA 4096-bit Performance pgbench: Buffer Test - Normal Load - Read Write pgbench: Buffer Test - Single Thread - Read Write pgbench: Buffer Test - Heavy Contention - Read Write redis: GET redis: SET scimark2: Composite scimark2: Monte Carlo scimark2: Fast Fourier Transform scimark2: Sparse Matrix Multiply scimark2: Dense LU Matrix Factorization scimark2: Jacobi Successive Over-Relaxation sqlite: Default Test Directory hmmer: Pfam Database Search build-imagemagick: Time To Compile mafft: Multiple Sequence Alignment build-php: Time To Compile tscp: AI Chess Performance GCC 5.4.0 GCC 6.2.0 GCC 7.0.0 20161127 Clang 3.9.0 Clang 4.0 SVN 12.21 189694 13802 1816.29 10.53 981.53 7958.56 627.37 8761.90 2063098.71 1576321.21 1500.47 642.13 338.82 2590.28 2720.20 1210.94 25.82 6.79 43.84 3.56 18.91 1267857 12.15 188944 14448 2213.13 10.53 981.10 7946.48 622.56 8683.69 2152314.25 1412803.00 1482.31 578.41 339.06 2562.90 2719.95 1211.24 25.86 6.83 64.52 3.82 19.70 1323732 13.86 186377 14130 2190.51 10.48 983.03 7988.08 636.23 8677.26 1906819.19 1338386.50 1596.12 601.84 341.96 2475.93 3232.73 1208.50 25.73 6.83 51.89 3.80 19.72 1214625 18.13 207220 13390 1687.12 13.56 975.60 7932.28 624.45 8694.84 1998162.08 1485797.94 2193.88 268.97 348.00 2865.19 5670.88 1816.33 25.73 6.92 42.12 3.95 20.38 1221729 18.55 420930 12176 1712.26 12.17 977.90 8077.95 656.41 8787.78 1687609.64 1236827.73 2098.33 323.49 325.68 2401.83 5601.59 1839.03 26.04 11.62 41.86 4.57 18.04 1177823 OpenBenchmarking.org
C-Ray Total Time OpenBenchmarking.org Seconds, Fewer Is Better C-Ray 1.1 Total Time GCC 6.2.0 GCC 5.4.0 GCC 7.0.0 20161127 Clang 3.9.0 Clang 4.0 SVN 5 10 15 20 25 SE +/- 0.01, N = 3 SE +/- 0.01, N = 3 SE +/- 0.02, N = 3 SE +/- 0.01, N = 3 SE +/- 0.01, N = 3 12.15 12.21 13.86 18.13 18.55 1. (CC) gcc options: -lm -lpthread -O3 -march=native
ebizzy Phoronix Test Suite v6.8.0m3 OpenBenchmarking.org Records/s, More Is Better ebizzy 0.3 Phoronix Test Suite v6.8.0m3 Clang 4.0 SVN Clang 3.9.0 GCC 5.4.0 GCC 6.2.0 GCC 7.0.0 20161127 90K 180K 270K 360K 450K SE +/- 590.05, N = 3 SE +/- 467.06, N = 3 SE +/- 5429.90, N = 6 SE +/- 472.32, N = 3 SE +/- 4882.08, N = 6 420930 207220 189694 188944 186377 1. (CC) gcc options: -pthread -lpthread -O3 -march=native
FFTW Build: Float + SSE - Size: 2D FFT Size 4096 OpenBenchmarking.org Mflops, More Is Better FFTW 3.3.4 Build: Float + SSE - Size: 2D FFT Size 4096 GCC 6.2.0 GCC 7.0.0 20161127 GCC 5.4.0 Clang 3.9.0 Clang 4.0 SVN 3K 6K 9K 12K 15K SE +/- 147.31, N = 5 SE +/- 41.05, N = 5 SE +/- 54.71, N = 5 SE +/- 130.03, N = 5 SE +/- 136.50, N = 5 14448 14130 13802 13390 12176 1. (CC) gcc options: -O3 -march=native -lm
Himeno Benchmark Poisson Pressure Solver OpenBenchmarking.org MFLOPS, More Is Better Himeno Benchmark 3.0 Poisson Pressure Solver GCC 6.2.0 GCC 7.0.0 20161127 GCC 5.4.0 Clang 4.0 SVN Clang 3.9.0 500 1000 1500 2000 2500 SE +/- 28.84, N = 3 SE +/- 0.19, N = 3 SE +/- 1.37, N = 3 SE +/- 28.28, N = 3 SE +/- 25.04, N = 5 2213.13 2190.51 1816.29 1712.26 1687.12 1. (CC) gcc options: -O3 -march=native -mavx2
LAME MP3 Encoding WAV To MP3 OpenBenchmarking.org Seconds, Fewer Is Better LAME MP3 Encoding 3.99.3 WAV To MP3 GCC 7.0.0 20161127 GCC 5.4.0 GCC 6.2.0 Clang 4.0 SVN Clang 3.9.0 3 6 9 12 15 SE +/- 0.02, N = 5 SE +/- 0.14, N = 5 SE +/- 0.01, N = 5 SE +/- 0.15, N = 8 SE +/- 0.01, N = 5 10.48 10.53 10.53 12.17 13.56 1. (CC) gcc options: -O3 -ffast-math -funroll-loops -fschedule-insns2 -fbranch-count-reg -fforce-addr -pipe -march=native -lm
OpenSSL RSA 4096-bit Performance OpenBenchmarking.org Signs Per Second, More Is Better OpenSSL 1.0.1g RSA 4096-bit Performance GCC 7.0.0 20161127 GCC 5.4.0 GCC 6.2.0 Clang 4.0 SVN Clang 3.9.0 200 400 600 800 1000 SE +/- 0.29, N = 3 SE +/- 3.40, N = 3 SE +/- 0.35, N = 3 SE +/- 0.45, N = 3 SE +/- 0.15, N = 3 983.03 981.53 981.10 977.90 975.60 1. (CC) gcc options: -m64 -O3 -lssl -lcrypto -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 Clang 4.0 SVN GCC 7.0.0 20161127 GCC 5.4.0 GCC 6.2.0 Clang 3.9.0 2K 4K 6K 8K 10K SE +/- 42.95, N = 3 SE +/- 31.36, N = 3 SE +/- 29.99, N = 3 SE +/- 41.91, N = 3 SE +/- 37.40, N = 3 8077.95 7988.08 7958.56 7946.48 7932.28 -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 Clang 4.0 SVN GCC 7.0.0 20161127 GCC 5.4.0 Clang 3.9.0 GCC 6.2.0 140 280 420 560 700 SE +/- 4.79, N = 3 SE +/- 2.77, N = 3 SE +/- 5.49, N = 3 SE +/- 10.71, N = 4 SE +/- 3.56, N = 3 656.41 636.23 627.37 624.45 622.56 -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 Clang 4.0 SVN GCC 5.4.0 Clang 3.9.0 GCC 6.2.0 GCC 7.0.0 20161127 2K 4K 6K 8K 10K SE +/- 53.05, N = 3 SE +/- 77.01, N = 3 SE +/- 56.41, N = 3 SE +/- 48.41, N = 3 SE +/- 31.43, N = 3 8787.78 8761.90 8694.84 8683.69 8677.26 -pthreads -mthreads -pthreads -mthreads 1. (CC) gcc options: -fno-strict-aliasing -fwrapv -O3 -march=native -pthread -lpgcommon -lpgport -lpq -lpthread -lrt -lcrypt -ldl -lm
Redis Test: GET OpenBenchmarking.org Requests Per Second, More Is Better Redis 3.0.1 Test: GET GCC 6.2.0 GCC 5.4.0 Clang 3.9.0 GCC 7.0.0 20161127 Clang 4.0 SVN 500K 1000K 1500K 2000K 2500K SE +/- 43300.91, N = 3 SE +/- 101610.92, N = 6 SE +/- 84913.76, N = 6 SE +/- 70859.43, N = 6 SE +/- 66082.79, N = 6 2152314.25 2063098.71 1998162.08 1906819.19 1687609.64 -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 GCC 5.4.0 Clang 3.9.0 GCC 6.2.0 GCC 7.0.0 20161127 Clang 4.0 SVN 300K 600K 900K 1200K 1500K SE +/- 57176.48, N = 6 SE +/- 56182.94, N = 6 SE +/- 74386.96, N = 6 SE +/- 14086.60, N = 3 SE +/- 46245.04, N = 6 1576321.21 1485797.94 1412803.00 1338386.50 1236827.73 -std=gnu99 -pipe -g3 -O3 -funroll-loops -march=native 1. (CC) gcc options: -ggdb -rdynamic -lm -pthread -ldl
SciMark Computational Test: Composite OpenBenchmarking.org Mflops, More Is Better SciMark 2.0 Computational Test: Composite Clang 3.9.0 Clang 4.0 SVN GCC 7.0.0 20161127 GCC 5.4.0 GCC 6.2.0 500 1000 1500 2000 2500 SE +/- 6.94, N = 4 SE +/- 23.61, N = 4 SE +/- 25.27, N = 8 SE +/- 1.02, N = 4 SE +/- 6.64, N = 4 2193.88 2098.33 1596.12 1500.47 1482.31 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 GCC 5.4.0 GCC 7.0.0 20161127 GCC 6.2.0 Clang 4.0 SVN Clang 3.9.0 140 280 420 560 700 SE +/- 0.01, N = 4 SE +/- 32.30, N = 4 SE +/- 36.88, N = 4 SE +/- 4.41, N = 4 SE +/- 0.02, N = 4 642.13 601.84 578.41 323.49 268.97 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 Clang 3.9.0 GCC 7.0.0 20161127 GCC 6.2.0 GCC 5.4.0 Clang 4.0 SVN 80 160 240 320 400 SE +/- 0.59, N = 4 SE +/- 0.91, N = 4 SE +/- 0.70, N = 4 SE +/- 0.66, N = 4 SE +/- 3.27, N = 4 348.00 341.96 339.06 338.82 325.68 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 Clang 3.9.0 GCC 5.4.0 GCC 6.2.0 GCC 7.0.0 20161127 Clang 4.0 SVN 600 1200 1800 2400 3000 SE +/- 3.08, N = 4 SE +/- 2.85, N = 4 SE +/- 3.29, N = 4 SE +/- 116.86, N = 4 SE +/- 27.44, N = 4 2865.19 2590.28 2562.90 2475.93 2401.83 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 Clang 3.9.0 Clang 4.0 SVN GCC 7.0.0 20161127 GCC 5.4.0 GCC 6.2.0 1200 2400 3600 4800 6000 SE +/- 32.49, N = 4 SE +/- 58.28, N = 4 SE +/- 105.82, N = 4 SE +/- 2.83, N = 4 SE +/- 2.50, N = 4 5670.88 5601.59 3232.73 2720.20 2719.95 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 Clang 4.0 SVN Clang 3.9.0 GCC 6.2.0 GCC 5.4.0 GCC 7.0.0 20161127 400 800 1200 1600 2000 SE +/- 25.10, N = 4 SE +/- 0.12, N = 4 SE +/- 0.08, N = 4 SE +/- 0.27, N = 4 SE +/- 1.69, N = 4 1839.03 1816.33 1211.24 1210.94 1208.50 1. (CXX) g++ options: -O3 -march=native
SQLite Test Target: Default Test Directory OpenBenchmarking.org Seconds, Fewer Is Better SQLite 3.8.10.2 Test Target: Default Test Directory GCC 7.0.0 20161127 Clang 3.9.0 GCC 5.4.0 GCC 6.2.0 Clang 4.0 SVN 6 12 18 24 30 SE +/- 0.26, N = 3 SE +/- 0.34, N = 3 SE +/- 0.15, N = 3 SE +/- 0.17, N = 3 SE +/- 0.04, N = 3 25.73 25.73 25.82 25.86 26.04 1. (CC) gcc options: -O3 -march=native -ldl -lpthread
Timed HMMer Search Pfam Database Search OpenBenchmarking.org Seconds, Fewer Is Better Timed HMMer Search 2.3.2 Pfam Database Search GCC 5.4.0 GCC 6.2.0 GCC 7.0.0 20161127 Clang 3.9.0 Clang 4.0 SVN 3 6 9 12 15 SE +/- 0.01, N = 3 SE +/- 0.01, N = 3 SE +/- 0.01, N = 3 SE +/- 0.01, N = 3 SE +/- 0.01, N = 3 6.79 6.83 6.83 6.92 11.62 1. (CC) gcc options: -O3 -march=native -pthread -lhmmer -lsquid -lm
Timed ImageMagick Compilation Time To Compile OpenBenchmarking.org Seconds, Fewer Is Better Timed ImageMagick Compilation 6.9.0 Time To Compile Clang 4.0 SVN Clang 3.9.0 GCC 5.4.0 GCC 7.0.0 20161127 GCC 6.2.0 14 28 42 56 70 SE +/- 0.01, N = 3 SE +/- 0.03, N = 3 SE +/- 0.21, N = 3 SE +/- 0.17, N = 3 SE +/- 0.14, N = 3 41.86 42.12 43.84 51.89 64.52
Timed MAFFT Alignment Multiple Sequence Alignment OpenBenchmarking.org Seconds, Fewer Is Better Timed MAFFT Alignment 6.864 Multiple Sequence Alignment GCC 5.4.0 GCC 7.0.0 20161127 GCC 6.2.0 Clang 3.9.0 Clang 4.0 SVN 1.0283 2.0566 3.0849 4.1132 5.1415 SE +/- 0.04, N = 3 SE +/- 0.07, N = 6 SE +/- 0.08, N = 6 SE +/- 0.03, N = 3 SE +/- 0.07, N = 6 3.56 3.80 3.82 3.95 4.57 1. (CC) gcc options: -O3 -lm -lpthread
Timed PHP Compilation Time To Compile OpenBenchmarking.org Seconds, Fewer Is Better Timed PHP Compilation 5.2.9 Time To Compile Clang 4.0 SVN GCC 5.4.0 GCC 6.2.0 GCC 7.0.0 20161127 Clang 3.9.0 5 10 15 20 25 SE +/- 0.04, N = 3 SE +/- 0.07, N = 3 SE +/- 0.09, N = 3 SE +/- 0.03, N = 3 SE +/- 0.19, N = 3 18.04 18.91 19.70 19.72 20.38 -lz -lz -lz -lz 1. (CC) gcc options: -O3 -march=native -pedantic -ldl -lm
TSCP AI Chess Performance OpenBenchmarking.org Nodes Per Second, More Is Better TSCP 1.81 AI Chess Performance GCC 6.2.0 GCC 5.4.0 Clang 3.9.0 GCC 7.0.0 20161127 Clang 4.0 SVN 300K 600K 900K 1200K 1500K SE +/- 22912.67, N = 3 SE +/- 13238.20, N = 5 SE +/- 30092.30, N = 10 SE +/- 23083.56, N = 10 SE +/- 15337.47, N = 10 1323732 1267857 1221729 1214625 1177823 1. (CC) gcc options: -O3 -march=native
Phoronix Test Suite v10.8.5