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. GCC 5.4.0: Processor: Intel Core i7-6800K @ 3.80GHz (12 Cores), Motherboard: MSI X99A WORKSTATION (MS-7A54) v1.0, Chipset: Intel Xeon E7 v4/Xeon, Memory: 16384MB, Disk: 120GB Samsung SSD 850 + 4 x 120GB TOSHIBA-TR150, Graphics: NVIDIA GeForce GTX TITAN X 12288MB, Audio: Realtek ALC1150, Monitor: ASUS PB278, Network: Intel Connection OS: Ubuntu 16.10, Kernel: 4.8.0-28-generic (x86_64), Desktop: Unity 7.5.0, Display Server: X Server 1.18.4, Display Driver: nouveau 1.0.12, OpenGL: 3.3 Mesa 12.0.3 Gallium 0.4, Compiler: GCC 5.4.0, File-System: ext4, Screen Resolution: 2560x1440 GCC 6.2.0: Processor: Intel Core i7-6800K @ 3.80GHz (12 Cores), Motherboard: MSI X99A WORKSTATION (MS-7A54) v1.0, Chipset: Intel Xeon E7 v4/Xeon, Memory: 16384MB, Disk: 120GB Samsung SSD 850 + 4 x 120GB TOSHIBA-TR150, Graphics: NVIDIA GeForce GTX TITAN X 12288MB, Audio: Realtek ALC1150, Monitor: ASUS PB278, Network: Intel Connection OS: Ubuntu 16.10, Kernel: 4.8.0-28-generic (x86_64), Desktop: Unity 7.5.0, Display Server: X Server 1.18.4, Display Driver: nouveau 1.0.12, OpenGL: 3.3 Mesa 12.0.3 Gallium 0.4, Compiler: GCC 6.2.0, File-System: ext4, Screen Resolution: 2560x1440 GCC 7.0.0 20161127: Processor: Intel Core i7-6800K @ 3.80GHz (12 Cores), Motherboard: MSI X99A WORKSTATION (MS-7A54) v1.0, Chipset: Intel Xeon E7 v4/Xeon, Memory: 16384MB, Disk: 120GB Samsung SSD 850 + 4 x 120GB TOSHIBA-TR150, Graphics: NVIDIA GeForce GTX TITAN X 12288MB, Audio: Realtek ALC1150, Monitor: ASUS PB278, Network: Intel Connection OS: Ubuntu 16.10, Kernel: 4.8.0-28-generic (x86_64), Desktop: Unity 7.5.0, Display Server: X Server 1.18.4, Display Driver: nouveau 1.0.12, OpenGL: 3.3 Mesa 12.0.3 Gallium 0.4, Compiler: GCC 7.0.0 20161127, File-System: ext4, Screen Resolution: 2560x1440 Clang 3.9.0: Processor: Intel Core i7-6800K @ 3.80GHz (12 Cores), Motherboard: MSI X99A WORKSTATION (MS-7A54) v1.0, Chipset: Intel Xeon E7 v4/Xeon, Memory: 16384MB, Disk: 120GB Samsung SSD 850 + 4 x 120GB TOSHIBA-TR150, Graphics: NVIDIA GeForce GTX TITAN X 12288MB, Audio: Realtek ALC1150, Monitor: ASUS PB278, Network: Intel Connection OS: Ubuntu 16.10, Kernel: 4.8.0-28-generic (x86_64), Desktop: Unity 7.5.0, Display Server: X Server 1.18.4, Display Driver: nouveau 1.0.12, OpenGL: 3.3 Mesa 12.0.3 Gallium 0.4, Compiler: Clang 3.9.0-1ubuntu1 + LLVM 3.9.0, File-System: ext4, Screen Resolution: 2560x1440 Clang 4.0 SVN: Processor: Intel Core i7-6800K @ 3.80GHz (12 Cores), Motherboard: MSI X99A WORKSTATION (MS-7A54) v1.0, Chipset: Intel Xeon E7 v4/Xeon, Memory: 16384MB, Disk: 120GB Samsung SSD 850 + 4 x 120GB TOSHIBA-TR150, Graphics: NVIDIA GeForce GTX TITAN X 12288MB, Audio: Realtek ALC1150, Monitor: ASUS PB278, Network: Intel Connection OS: Ubuntu 16.10, Kernel: 4.8.0-28-generic (x86_64), Desktop: Unity 7.5.0, Display Server: X Server 1.18.4, Display Driver: nouveau 1.0.12, OpenGL: 3.3 Mesa 12.0.3 Gallium 0.4, Compiler: Clang 4.0.0-svn288274-1~exp1 + LLVM 4.0.0, File-System: ext4, Screen Resolution: 2560x1440 Timed HMMer Search 2.3.2 Pfam Database Search Seconds < Lower Is Better GCC 5.4.0 .......... 6.79 |============================== GCC 6.2.0 .......... 6.83 |============================== GCC 7.0.0 20161127 . 6.83 |============================== Clang 3.9.0 ........ 6.92 |============================== Clang 4.0 SVN ...... 11.62 |=================================================== Timed ImageMagick Compilation 6.9.0 Time To Compile Seconds < Lower Is Better GCC 5.4.0 .......... 43.84 |=================================== GCC 6.2.0 .......... 64.52 |=================================================== GCC 7.0.0 20161127 . 51.89 |========================================= Clang 3.9.0 ........ 42.12 |================================= Clang 4.0 SVN ...... 41.86 |================================= C-Ray 1.1 Total Time Seconds < Lower Is Better GCC 5.4.0 .......... 12.21 |================================== GCC 6.2.0 .......... 12.15 |================================= GCC 7.0.0 20161127 . 13.86 |====================================== Clang 3.9.0 ........ 18.13 |================================================== Clang 4.0 SVN ...... 18.55 |=================================================== SciMark 2.0 Computational Test: Jacobi Successive Over-Relaxation Mflops > Higher Is Better GCC 5.4.0 .......... 1210.94 |================================ GCC 6.2.0 .......... 1211.24 |================================ GCC 7.0.0 20161127 . 1208.50 |================================ Clang 3.9.0 ........ 1816.33 |================================================ Clang 4.0 SVN ...... 1839.03 |================================================= SciMark 2.0 Computational Test: Composite Mflops > Higher Is Better GCC 5.4.0 .......... 1500.47 |================================== GCC 6.2.0 .......... 1482.31 |================================= GCC 7.0.0 20161127 . 1596.12 |==================================== Clang 3.9.0 ........ 2193.88 |================================================= Clang 4.0 SVN ...... 2098.33 |=============================================== Himeno Benchmark 3.0 Poisson Pressure Solver MFLOPS > Higher Is Better GCC 5.4.0 .......... 1816.29 |======================================== GCC 6.2.0 .......... 2213.13 |================================================= GCC 7.0.0 20161127 . 2190.51 |================================================ Clang 3.9.0 ........ 1687.12 |===================================== Clang 4.0 SVN ...... 1712.26 |====================================== LAME MP3 Encoding 3.99.3 WAV To MP3 Seconds < Lower Is Better GCC 5.4.0 .......... 10.53 |======================================== GCC 6.2.0 .......... 10.53 |======================================== GCC 7.0.0 20161127 . 10.48 |======================================= Clang 3.9.0 ........ 13.56 |=================================================== Clang 4.0 SVN ...... 12.17 |============================================== Timed MAFFT Alignment 6.864 Multiple Sequence Alignment Seconds < Lower Is Better GCC 5.4.0 .......... 3.56 |========================================= GCC 6.2.0 .......... 3.82 |=========================================== GCC 7.0.0 20161127 . 3.80 |=========================================== Clang 3.9.0 ........ 3.95 |============================================= Clang 4.0 SVN ...... 4.57 |==================================================== FFTW 3.3.4 Build: Float + SSE - Size: 2D FFT Size 4096 Mflops > Higher Is Better GCC 5.4.0 .......... 13802 |================================================= GCC 6.2.0 .......... 14448 |=================================================== GCC 7.0.0 20161127 . 14130 |================================================== Clang 3.9.0 ........ 13390 |=============================================== Clang 4.0 SVN ...... 12176 |=========================================== Timed PHP Compilation 5.2.9 Time To Compile Seconds < Lower Is Better GCC 5.4.0 .......... 18.91 |=============================================== GCC 6.2.0 .......... 19.70 |================================================= GCC 7.0.0 20161127 . 19.72 |================================================= Clang 3.9.0 ........ 20.38 |=================================================== Clang 4.0 SVN ...... 18.04 |============================================= SciMark 2.0 Computational Test: Fast Fourier Transform Mflops > Higher Is Better GCC 5.4.0 .......... 338.82 |================================================= GCC 6.2.0 .......... 339.06 |================================================= GCC 7.0.0 20161127 . 341.96 |================================================= Clang 3.9.0 ........ 348.00 |================================================== Clang 4.0 SVN ...... 325.68 |=============================================== PostgreSQL pgbench 9.4.3 Scaling: Buffer Test - Test: Single Thread - Mode: Read Write TPS > Higher Is Better GCC 5.4.0 .......... 627.37 |================================================ GCC 6.2.0 .......... 622.56 |=============================================== GCC 7.0.0 20161127 . 636.23 |================================================ Clang 3.9.0 ........ 624.45 |================================================ Clang 4.0 SVN ...... 656.41 |================================================== PostgreSQL pgbench 9.4.3 Scaling: Buffer Test - Test: Normal Load - Mode: Read Write TPS > Higher Is Better GCC 5.4.0 .......... 7958.56 |================================================ GCC 6.2.0 .......... 7946.48 |================================================ GCC 7.0.0 20161127 . 7988.08 |================================================ Clang 3.9.0 ........ 7932.28 |================================================ Clang 4.0 SVN ...... 8077.95 |================================================= PostgreSQL pgbench 9.4.3 Scaling: Buffer Test - Test: Heavy Contention - Mode: Read Write TPS > Higher Is Better GCC 5.4.0 .......... 8761.90 |================================================= GCC 6.2.0 .......... 8683.69 |================================================ GCC 7.0.0 20161127 . 8677.26 |================================================ Clang 3.9.0 ........ 8694.84 |================================================ Clang 4.0 SVN ...... 8787.78 |================================================= SQLite 3.8.10.2 Test Target: Default Test Directory Seconds < Lower Is Better GCC 5.4.0 .......... 25.82 |=================================================== GCC 6.2.0 .......... 25.86 |=================================================== GCC 7.0.0 20161127 . 25.73 |================================================== Clang 3.9.0 ........ 25.73 |================================================== Clang 4.0 SVN ...... 26.04 |=================================================== OpenSSL 1.0.1g RSA 4096-bit Performance Signs Per Second > Higher Is Better GCC 5.4.0 .......... 981.53 |================================================== GCC 6.2.0 .......... 981.10 |================================================== GCC 7.0.0 20161127 . 983.03 |================================================== Clang 3.9.0 ........ 975.60 |================================================== Clang 4.0 SVN ...... 977.90 |================================================== Redis 3.0.1 Test: SET Requests Per Second > Higher Is Better GCC 5.4.0 .......... 1576321.21 |============================================== GCC 6.2.0 .......... 1412803.00 |========================================= GCC 7.0.0 20161127 . 1338386.50 |======================================= Clang 3.9.0 ........ 1485797.94 |=========================================== Clang 4.0 SVN ...... 1236827.73 |==================================== Redis 3.0.1 Test: GET Requests Per Second > Higher Is Better GCC 5.4.0 .......... 2063098.71 |============================================ GCC 6.2.0 .......... 2152314.25 |============================================== GCC 7.0.0 20161127 . 1906819.19 |========================================= Clang 3.9.0 ........ 1998162.08 |=========================================== Clang 4.0 SVN ...... 1687609.64 |==================================== ebizzy 0.3 Phoronix Test Suite v6.8.0m3 Records/s > Higher Is Better GCC 5.4.0 .......... 189694 |======================= GCC 6.2.0 .......... 188944 |====================== GCC 7.0.0 20161127 . 186377 |====================== Clang 3.9.0 ........ 207220 |========================= Clang 4.0 SVN ...... 420930 |================================================== TSCP 1.81 AI Chess Performance Nodes Per Second > Higher Is Better GCC 5.4.0 .......... 1267857 |=============================================== GCC 6.2.0 .......... 1323732 |================================================= GCC 7.0.0 20161127 . 1214625 |============================================= Clang 3.9.0 ........ 1221729 |============================================= Clang 4.0 SVN ...... 1177823 |============================================ SciMark 2.0 Computational Test: Dense LU Matrix Factorization Mflops > Higher Is Better GCC 5.4.0 .......... 2720.20 |======================== GCC 6.2.0 .......... 2719.95 |======================== GCC 7.0.0 20161127 . 3232.73 |============================ Clang 3.9.0 ........ 5670.88 |================================================= Clang 4.0 SVN ...... 5601.59 |================================================ SciMark 2.0 Computational Test: Sparse Matrix Multiply Mflops > Higher Is Better GCC 5.4.0 .......... 2590.28 |============================================ GCC 6.2.0 .......... 2562.90 |============================================ GCC 7.0.0 20161127 . 2475.93 |========================================== Clang 3.9.0 ........ 2865.19 |================================================= Clang 4.0 SVN ...... 2401.83 |========================================= SciMark 2.0 Computational Test: Monte Carlo Mflops > Higher Is Better GCC 5.4.0 .......... 642.13 |================================================== GCC 6.2.0 .......... 578.41 |============================================= GCC 7.0.0 20161127 . 601.84 |=============================================== Clang 3.9.0 ........ 268.97 |===================== Clang 4.0 SVN ...... 323.49 |=========================