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&grw&sor&rro .
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 tscp: AI Chess Performance scimark2: Composite scimark2: Monte Carlo scimark2: Fast Fourier Transform scimark2: Sparse Matrix Multiply scimark2: Dense LU Matrix Factorization scimark2: Jacobi Successive Over-Relaxation encode-mp3: WAV To MP3 fftw: Float + SSE - 2D FFT Size 4096 hmmer: Pfam Database Search mafft: Multiple Sequence Alignment himeno: Poisson Pressure Solver build-imagemagick: Time To Compile build-php: Time To Compile c-ray: Total Time openssl: RSA 4096-bit Performance redis: GET redis: SET sqlite: Default Test Directory pgbench: Buffer Test - Normal Load - Read Write pgbench: Buffer Test - Single Thread - Read Write pgbench: Buffer Test - Heavy Contention - Read Write ebizzy: Phoronix Test Suite v6.8.0m3 GCC 5.4.0 GCC 6.2.0 GCC 7.0.0 20161127 Clang 3.9.0 Clang 4.0 SVN 1267857 1500.47 642.13 338.82 2590.28 2720.20 1210.94 10.53 13802 6.79 3.56 1816.29 43.84 18.91 12.21 981.53 2063098.71 1576321.21 25.82 7958.56 627.37 8761.90 189694 1323732 1482.31 578.41 339.06 2562.90 2719.95 1211.24 10.53 14448 6.83 3.82 2213.13 64.52 19.70 12.15 981.10 2152314.25 1412803.00 25.86 7946.48 622.56 8683.69 188944 1214625 1596.12 601.84 341.96 2475.93 3232.73 1208.50 10.48 14130 6.83 3.80 2190.51 51.89 19.72 13.86 983.03 1906819.19 1338386.50 25.73 7988.08 636.23 8677.26 186377 1221729 2193.88 268.97 348.00 2865.19 5670.88 1816.33 13.56 13390 6.92 3.95 1687.12 42.12 20.38 18.13 975.60 1998162.08 1485797.94 25.73 7932.28 624.45 8694.84 207220 1177823 2098.33 323.49 325.68 2401.83 5601.59 1839.03 12.17 12176 11.62 4.57 1712.26 41.86 18.04 18.55 977.90 1687609.64 1236827.73 26.04 8077.95 656.41 8787.78 420930 OpenBenchmarking.org
TSCP AI Chess Performance OpenBenchmarking.org Nodes Per Second, More Is Better TSCP 1.81 AI Chess Performance Clang 4.0 SVN GCC 7.0.0 20161127 Clang 3.9.0 GCC 5.4.0 GCC 6.2.0 300K 600K 900K 1200K 1500K SE +/- 15337.47, N = 10 SE +/- 23083.56, N = 10 SE +/- 30092.30, N = 10 SE +/- 13238.20, N = 5 SE +/- 22912.67, N = 3 1177823 1214625 1221729 1267857 1323732 1. (CC) gcc options: -O3 -march=native
SciMark Computational Test: Composite OpenBenchmarking.org Mflops, More Is Better SciMark 2.0 Computational Test: Composite GCC 6.2.0 GCC 5.4.0 GCC 7.0.0 20161127 Clang 4.0 SVN Clang 3.9.0 500 1000 1500 2000 2500 SE +/- 6.64, N = 4 SE +/- 1.02, N = 4 SE +/- 25.27, N = 8 SE +/- 23.61, N = 4 SE +/- 6.94, N = 4 1482.31 1500.47 1596.12 2098.33 2193.88 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 Clang 3.9.0 Clang 4.0 SVN GCC 6.2.0 GCC 7.0.0 20161127 GCC 5.4.0 140 280 420 560 700 SE +/- 0.02, N = 4 SE +/- 4.41, N = 4 SE +/- 36.88, N = 4 SE +/- 32.30, N = 4 SE +/- 0.01, N = 4 268.97 323.49 578.41 601.84 642.13 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 4.0 SVN GCC 5.4.0 GCC 6.2.0 GCC 7.0.0 20161127 Clang 3.9.0 80 160 240 320 400 SE +/- 3.27, N = 4 SE +/- 0.66, N = 4 SE +/- 0.70, N = 4 SE +/- 0.91, N = 4 SE +/- 0.59, N = 4 325.68 338.82 339.06 341.96 348.00 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 4.0 SVN GCC 7.0.0 20161127 GCC 6.2.0 GCC 5.4.0 Clang 3.9.0 600 1200 1800 2400 3000 SE +/- 27.44, N = 4 SE +/- 116.86, N = 4 SE +/- 3.29, N = 4 SE +/- 2.85, N = 4 SE +/- 3.08, N = 4 2401.83 2475.93 2562.90 2590.28 2865.19 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 GCC 6.2.0 GCC 5.4.0 GCC 7.0.0 20161127 Clang 4.0 SVN Clang 3.9.0 1200 2400 3600 4800 6000 SE +/- 2.50, N = 4 SE +/- 2.83, N = 4 SE +/- 105.82, N = 4 SE +/- 58.28, N = 4 SE +/- 32.49, N = 4 2719.95 2720.20 3232.73 5601.59 5670.88 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 GCC 7.0.0 20161127 GCC 5.4.0 GCC 6.2.0 Clang 3.9.0 Clang 4.0 SVN 400 800 1200 1600 2000 SE +/- 1.69, N = 4 SE +/- 0.27, N = 4 SE +/- 0.08, N = 4 SE +/- 0.12, N = 4 SE +/- 25.10, N = 4 1208.50 1210.94 1211.24 1816.33 1839.03 1. (CXX) g++ options: -O3 -march=native
LAME MP3 Encoding WAV To MP3 OpenBenchmarking.org Seconds, Fewer Is Better LAME MP3 Encoding 3.99.3 WAV To MP3 Clang 3.9.0 Clang 4.0 SVN GCC 6.2.0 GCC 5.4.0 GCC 7.0.0 20161127 3 6 9 12 15 SE +/- 0.01, N = 5 SE +/- 0.15, N = 8 SE +/- 0.01, N = 5 SE +/- 0.14, N = 5 SE +/- 0.02, N = 5 13.56 12.17 10.53 10.53 10.48 1. (CC) gcc options: -O3 -ffast-math -funroll-loops -fschedule-insns2 -fbranch-count-reg -fforce-addr -pipe -march=native -lm
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 Clang 4.0 SVN Clang 3.9.0 GCC 5.4.0 GCC 7.0.0 20161127 GCC 6.2.0 3K 6K 9K 12K 15K SE +/- 136.50, N = 5 SE +/- 130.03, N = 5 SE +/- 54.71, N = 5 SE +/- 41.05, N = 5 SE +/- 147.31, N = 5 12176 13390 13802 14130 14448 1. (CC) gcc options: -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 Clang 4.0 SVN Clang 3.9.0 GCC 7.0.0 20161127 GCC 6.2.0 GCC 5.4.0 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 11.62 6.92 6.83 6.83 6.79 1. (CC) gcc options: -O3 -march=native -pthread -lhmmer -lsquid -lm
Timed MAFFT Alignment Multiple Sequence Alignment OpenBenchmarking.org Seconds, Fewer Is Better Timed MAFFT Alignment 6.864 Multiple Sequence Alignment Clang 4.0 SVN Clang 3.9.0 GCC 6.2.0 GCC 7.0.0 20161127 GCC 5.4.0 1.0283 2.0566 3.0849 4.1132 5.1415 SE +/- 0.07, N = 6 SE +/- 0.03, N = 3 SE +/- 0.08, N = 6 SE +/- 0.07, N = 6 SE +/- 0.04, N = 3 4.57 3.95 3.82 3.80 3.56 1. (CC) gcc options: -O3 -lm -lpthread
Himeno Benchmark Poisson Pressure Solver OpenBenchmarking.org MFLOPS, More Is Better Himeno Benchmark 3.0 Poisson Pressure Solver Clang 3.9.0 Clang 4.0 SVN GCC 5.4.0 GCC 7.0.0 20161127 GCC 6.2.0 500 1000 1500 2000 2500 SE +/- 25.04, N = 5 SE +/- 28.28, N = 3 SE +/- 1.37, N = 3 SE +/- 0.19, N = 3 SE +/- 28.84, N = 3 1687.12 1712.26 1816.29 2190.51 2213.13 1. (CC) gcc options: -O3 -march=native -mavx2
Timed ImageMagick Compilation Time To Compile OpenBenchmarking.org Seconds, Fewer Is Better Timed ImageMagick Compilation 6.9.0 Time To Compile GCC 6.2.0 GCC 7.0.0 20161127 GCC 5.4.0 Clang 3.9.0 Clang 4.0 SVN 14 28 42 56 70 SE +/- 0.14, N = 3 SE +/- 0.17, N = 3 SE +/- 0.21, N = 3 SE +/- 0.03, N = 3 SE +/- 0.01, N = 3 64.52 51.89 43.84 42.12 41.86
Timed PHP Compilation Time To Compile OpenBenchmarking.org Seconds, Fewer Is Better Timed PHP Compilation 5.2.9 Time To Compile Clang 3.9.0 GCC 7.0.0 20161127 GCC 6.2.0 GCC 5.4.0 Clang 4.0 SVN 5 10 15 20 25 SE +/- 0.19, N = 3 SE +/- 0.03, N = 3 SE +/- 0.09, N = 3 SE +/- 0.07, N = 3 SE +/- 0.04, N = 3 20.38 19.72 19.70 18.91 18.04 -lz -lz -lz -lz 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 Clang 4.0 SVN Clang 3.9.0 GCC 7.0.0 20161127 GCC 5.4.0 GCC 6.2.0 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 18.55 18.13 13.86 12.21 12.15 1. (CC) gcc options: -lm -lpthread -O3 -march=native
OpenSSL RSA 4096-bit Performance OpenBenchmarking.org Signs Per Second, More Is Better OpenSSL 1.0.1g RSA 4096-bit Performance Clang 3.9.0 Clang 4.0 SVN GCC 6.2.0 GCC 5.4.0 GCC 7.0.0 20161127 200 400 600 800 1000 SE +/- 0.15, N = 3 SE +/- 0.45, N = 3 SE +/- 0.35, N = 3 SE +/- 3.40, N = 3 SE +/- 0.29, N = 3 975.60 977.90 981.10 981.53 983.03 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 Clang 4.0 SVN GCC 7.0.0 20161127 Clang 3.9.0 GCC 5.4.0 GCC 6.2.0 500K 1000K 1500K 2000K 2500K SE +/- 66082.79, N = 6 SE +/- 70859.43, N = 6 SE +/- 84913.76, N = 6 SE +/- 101610.92, N = 6 SE +/- 43300.91, N = 3 1687609.64 1906819.19 1998162.08 2063098.71 2152314.25 -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 Clang 4.0 SVN GCC 7.0.0 20161127 GCC 6.2.0 Clang 3.9.0 GCC 5.4.0 300K 600K 900K 1200K 1500K SE +/- 46245.04, N = 6 SE +/- 14086.60, N = 3 SE +/- 74386.96, N = 6 SE +/- 56182.94, N = 6 SE +/- 57176.48, N = 6 1236827.73 1338386.50 1412803.00 1485797.94 1576321.21 -std=gnu99 -pipe -g3 -O3 -funroll-loops -march=native 1. (CC) gcc options: -ggdb -rdynamic -lm -pthread -ldl
SQLite Test Target: Default Test Directory OpenBenchmarking.org Seconds, Fewer Is Better SQLite 3.8.10.2 Test Target: Default Test Directory Clang 4.0 SVN GCC 6.2.0 GCC 5.4.0 Clang 3.9.0 GCC 7.0.0 20161127 6 12 18 24 30 SE +/- 0.04, N = 3 SE +/- 0.17, N = 3 SE +/- 0.15, N = 3 SE +/- 0.34, N = 3 SE +/- 0.26, N = 3 26.04 25.86 25.82 25.73 25.73 1. (CC) gcc options: -O3 -march=native -ldl -lpthread
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 3.9.0 GCC 6.2.0 GCC 5.4.0 GCC 7.0.0 20161127 Clang 4.0 SVN 2K 4K 6K 8K 10K SE +/- 37.40, N = 3 SE +/- 41.91, N = 3 SE +/- 29.99, N = 3 SE +/- 31.36, N = 3 SE +/- 42.95, N = 3 7932.28 7946.48 7958.56 7988.08 8077.95 -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 GCC 6.2.0 Clang 3.9.0 GCC 5.4.0 GCC 7.0.0 20161127 Clang 4.0 SVN 140 280 420 560 700 SE +/- 3.56, N = 3 SE +/- 10.71, N = 4 SE +/- 5.49, N = 3 SE +/- 2.77, N = 3 SE +/- 4.79, N = 3 622.56 624.45 627.37 636.23 656.41 -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 GCC 7.0.0 20161127 GCC 6.2.0 Clang 3.9.0 GCC 5.4.0 Clang 4.0 SVN 2K 4K 6K 8K 10K SE +/- 31.43, N = 3 SE +/- 48.41, N = 3 SE +/- 56.41, N = 3 SE +/- 77.01, N = 3 SE +/- 53.05, N = 3 8677.26 8683.69 8694.84 8761.90 8787.78 -pthreads -mthreads -pthreads -mthreads 1. (CC) gcc options: -fno-strict-aliasing -fwrapv -O3 -march=native -pthread -lpgcommon -lpgport -lpq -lpthread -lrt -lcrypt -ldl -lm
ebizzy Phoronix Test Suite v6.8.0m3 OpenBenchmarking.org Records/s, More Is Better ebizzy 0.3 Phoronix Test Suite v6.8.0m3 GCC 7.0.0 20161127 GCC 6.2.0 GCC 5.4.0 Clang 3.9.0 Clang 4.0 SVN 90K 180K 270K 360K 450K SE +/- 4882.08, N = 6 SE +/- 472.32, N = 3 SE +/- 5429.90, N = 6 SE +/- 467.06, N = 3 SE +/- 590.05, N = 3 186377 188944 189694 207220 420930 1. (CC) gcc options: -pthread -lpthread -O3 -march=native
Phoronix Test Suite v10.8.5