GCC vs. LLVM Clang on Intel Core i5 Skylake system. Benchmarks by Michael Larabel for a future article on Phoronix.
Compare your own system(s) to this result file with the
Phoronix Test Suite by running the command:
phoronix-test-suite benchmark 2103154-HA-1509040HA49 GCC Clang Intel Skylake Compiler Perf - Phoronix Test Suite GCC Clang Intel Skylake Compiler Perf GCC vs. LLVM Clang on Intel Core i5 Skylake system. Benchmarks by Michael Larabel for a future article on Phoronix.
HTML result view exported from: https://openbenchmarking.org/result/2103154-HA-1509040HA49&grr&sro .
GCC Clang Intel Skylake Compiler Perf Processor Motherboard Chipset Memory Disk Graphics Audio Monitor Network OS Kernel Desktop Display Server Display Driver OpenGL Compiler File-System Screen Resolution GCC 4.9.3 GCC 5.2.0 GCC 6.0.0 20150830 Clang 3.8 SVN Clang 3.8 SVN OMP SR740_1509040-HA-GCCINTELS_compare Intel Core i5-6600K @ 3.50GHz (4 Cores) MSI Z170A GAMING PRO (MS-7984) v1.0 Intel Sky Lake 15360MB 256GB TS256GSSD370S Intel Sky Lake (1150MHz) Realtek ALC1150 DELL P2210H Intel Connection Ubuntu 15.10 4.2.0-999-generic (x86_64) 20150901 Xfce 4.12 X Server 1.17.2 intel 2.99.917 3.3 Mesa 10.6.5 GCC 4.9.3 ext4 1920x1080 GCC 5.2.0 GCC 6.0.0 20150830 Clang 3.8.0 (SVN 246796) + LLVM 3.8.0svn 2 x Intel Xeon Silver 4214R @ 3.50GHz (24 Cores / 48 Threads) Yunke China 0DY2X0 (2.10.0 BIOS) Intel Sky Lake-E DMI3 Registers 6 x 32 GB DDR4-3200MT/s HMA84GR7DJR4N-XN 16001GB PERC H730P Adp + 480GB PERC H730P Adp Matrox G200eW3 2 x Intel I350 + 2 x Intel 82599ES 10-Gigabit SFI/SFP+ CentOS Linux 7 3.10.0-1160.15.2.el7.x86_64 (x86_64) GCC 4.8.5 20150623 xfs 1024x768 OpenBenchmarking.org Kernel Details - GCC 4.9.3: i915.preliminary_hw_support=1 - GCC 5.2.0: i915.preliminary_hw_support=1 - GCC 6.0.0 20150830: i915.preliminary_hw_support=1 - Clang 3.8 SVN: i915.preliminary_hw_support=1 - Clang 3.8 SVN OMP: i915.preliminary_hw_support=1 - SR740_1509040-HA-GCCINTELS_compare: Transparent Huge Pages: always Compiler Details - GCC 4.9.3: --disable-multilib --enable-checking=release --enable-languages=c,c++ - GCC 5.2.0: --disable-multilib --enable-checking=release --enable-languages=c,c++ - GCC 6.0.0 20150830: --disable-multilib --enable-checking=release --enable-languages=c,c++ - Clang 3.8 SVN: Optimized build; Built Sep 3 2015 (15:42:57); Default target: x86_64-unknown-linux-gnu; Host CPU: skylake - Clang 3.8 SVN OMP: Optimized build; Built Sep 3 2015 (15:42:57); Default target: x86_64-unknown-linux-gnu; Host CPU: skylake - SR740_1509040-HA-GCCINTELS_compare: --build=x86_64-redhat-linux --disable-libgcj --disable-libunwind-exceptions --enable-__cxa_atexit --enable-bootstrap --enable-checking=release --enable-gnu-indirect-function --enable-gnu-unique-object --enable-initfini-array --enable-languages=c,c++,objc,obj-c++,java,fortran,ada,go,lto --enable-plugin --enable-shared --enable-threads=posix --mandir=/usr/share/man --with-arch_32=x86-64 --with-linker-hash-style=gnu --with-tune=generic Processor Details - GCC 4.9.3: Scaling Governor: acpi-cpufreq ondemand - GCC 5.2.0: Scaling Governor: acpi-cpufreq ondemand - GCC 6.0.0 20150830: Scaling Governor: acpi-cpufreq ondemand - Clang 3.8 SVN: Scaling Governor: acpi-cpufreq ondemand - Clang 3.8 SVN OMP: Scaling Governor: acpi-cpufreq ondemand - SR740_1509040-HA-GCCINTELS_compare: Scaling Governor: intel_pstate performance - CPU Microcode: 0x5003006 Security Details - SR740_1509040-HA-GCCINTELS_compare: SELinux + itlb_multihit: KVM: Mitigation of Split huge pages + l1tf: Not affected + mds: Not affected + meltdown: Not affected + spec_store_bypass: Mitigation of SSB disabled via prctl and seccomp + spectre_v1: Mitigation of Load fences usercopy/swapgs barriers and __user pointer sanitization + spectre_v2: Mitigation of Full retpoline IBPB + srbds: Not affected + tsx_async_abort: Mitigation of Clear buffers; SMT vulnerable
GCC Clang Intel Skylake Compiler Perf smallpt: Global Illumination Renderer; 100 Samples hint: FLOAT rodinia: OpenMP Streamcluster apache: Static Web Page Serving john-the-ripper: Traditional DES john-the-ripper: Blowfish john-the-ripper: MD5 himeno: Poisson Pressure Solver rodinia: OpenMP LavaMD scimark2: Composite rodinia: OpenMP CFD Solver encode-flac: WAV To FLAC hmmer: Pfam Database Search c-ray: Total Time x264: H.264 Video Encoding encode-mp3: WAV To MP3 scimark2: Jacobi Successive Over-Relaxation scimark2: Dense LU Matrix Factorization scimark2: Sparse Matrix Multiply scimark2: Fast Fourier Transform scimark2: Monte Carlo GCC 4.9.3 GCC 5.2.0 GCC 6.0.0 20150830 Clang 3.8 SVN Clang 3.8 SVN OMP SR740_1509040-HA-GCCINTELS_compare 28 394717206.91 35.27 44411.00 24484000 4755 76544 2763.07 215.67 1594.66 65.98 4.93 9.33 15.17 169.17 10.61 1125.20 2992.34 2739.39 373.00 743.37 28 402676204.80 35.01 41662.12 25025333 4760 77004 2744.76 216.20 1594.01 65.18 4.97 9.16 15.11 171.09 10.77 1125.11 2968.23 2749.08 372.76 754.86 28 404526879.23 35.00 43039.62 25141333 4782 76902 2720.00 215.72 1584.33 63.27 4.94 9.24 15.09 171.24 10.56 1125.23 2979.52 2693.95 374.27 750.18 123 293947985.31 128.84 44513.53 6291333 1224 16684 1976.57 856.60 2467.10 183.97 5.14 9.52 34.59 167.17 11.33 1474.45 7111.79 2721.33 383.76 644.15 31 128.20 6283667 1224 16670 857.02 184.63 115 361326865.97905 21.719 13327.92 111214333 34974 442368 2332.664596 48.962 1478.45 17.544 7.250 6.622 4.202 486.29 1003.60 2875.29 2429.50 430.13 653.74 OpenBenchmarking.org
Smallpt Global Illumination Renderer; 100 Samples OpenBenchmarking.org Seconds, Fewer Is Better Smallpt 1.0 Global Illumination Renderer; 100 Samples Clang 3.8 SVN Clang 3.8 SVN OMP GCC 4.9.3 GCC 5.2.0 GCC 6.0.0 20150830 SR740_1509040-HA-GCCINTELS_compare 30 60 90 120 150 SE +/- 0.33, N = 3 SE +/- 0.33, N = 3 SE +/- 0.33, N = 3 SE +/- 0.33, N = 3 SE +/- 0.33, N = 3 SE +/- 12.87, N = 12 123 31 28 28 28 115 -O3 -march=native -O3 -march=native -fopenmp=libomp -fno-exceptions -O3 -march=native -O3 -march=native -O3 -march=native 1. (CXX) g++ options: -fopenmp
Hierarchical INTegration Test: FLOAT OpenBenchmarking.org QUIPs, More Is Better Hierarchical INTegration 1.0 Test: FLOAT Clang 3.8 SVN GCC 4.9.3 GCC 5.2.0 GCC 6.0.0 20150830 SR740_1509040-HA-GCCINTELS_compare 90M 180M 270M 360M 450M SE +/- 129692.07, N = 3 SE +/- 252594.71, N = 3 SE +/- 279552.00, N = 3 SE +/- 358895.73, N = 3 SE +/- 144132.51, N = 3 293947985.31 394717206.91 402676204.80 404526879.23 361326865.98 1. (CC) gcc options: -O3 -march=native -lm
Rodinia Test: OpenMP Streamcluster OpenBenchmarking.org Seconds, Fewer Is Better Rodinia 2.4 Test: OpenMP Streamcluster Clang 3.8 SVN Clang 3.8 SVN OMP GCC 4.9.3 GCC 5.2.0 GCC 6.0.0 20150830 SR740_1509040-HA-GCCINTELS_compare 30 60 90 120 150 SE +/- 0.58, N = 3 SE +/- 0.06, N = 3 SE +/- 0.04, N = 3 SE +/- 0.05, N = 3 SE +/- 0.01, N = 3 SE +/- 0.60, N = 15 128.84 128.20 35.27 35.01 35.00 21.72 1. (CXX) g++ options: -O2 -lOpenCL
Apache Benchmark Static Web Page Serving OpenBenchmarking.org Requests Per Second, More Is Better Apache Benchmark 2.4.7 Static Web Page Serving Clang 3.8 SVN GCC 4.9.3 GCC 5.2.0 GCC 6.0.0 20150830 SR740_1509040-HA-GCCINTELS_compare 10K 20K 30K 40K 50K SE +/- 388.92, N = 3 SE +/- 154.80, N = 3 SE +/- 288.36, N = 3 SE +/- 1006.67, N = 6 SE +/- 147.37, N = 3 44513.53 44411.00 41662.12 43039.62 13327.92 -O3 -march=native -O3 -march=native -O3 -march=native -O3 -march=native -O2 1. (CC) gcc options: -shared -fPIC -pthread
John The Ripper Test: Traditional DES OpenBenchmarking.org Real C/S, More Is Better John The Ripper 1.8.0 Test: Traditional DES Clang 3.8 SVN Clang 3.8 SVN OMP GCC 4.9.3 GCC 5.2.0 GCC 6.0.0 20150830 SR740_1509040-HA-GCCINTELS_compare 20M 40M 60M 80M 100M SE +/- 2333.33, N = 3 SE +/- 666.67, N = 3 SE +/- 175214.15, N = 3 SE +/- 72723.98, N = 3 SE +/- 10397.65, N = 3 SE +/- 245045.80, N = 3 6291333 6283667 24484000 25025333 25141333 111214333 1. (CC) gcc options: -fopenmp -lcrypt
John The Ripper Test: Blowfish OpenBenchmarking.org Real C/S, More Is Better John The Ripper 1.8.0 Test: Blowfish Clang 3.8 SVN Clang 3.8 SVN OMP GCC 4.9.3 GCC 5.2.0 GCC 6.0.0 20150830 SR740_1509040-HA-GCCINTELS_compare 7K 14K 21K 28K 35K SE +/- 0.67, N = 3 SE +/- 1.86, N = 3 SE +/- 3.00, N = 3 SE +/- 4.10, N = 3 SE +/- 1.67, N = 3 SE +/- 72.22, N = 3 1224 1224 4755 4760 4782 34974 1. (CC) gcc options: -fopenmp -lcrypt
John The Ripper Test: MD5 OpenBenchmarking.org Real C/S, More Is Better John The Ripper 1.8.0 Test: MD5 Clang 3.8 SVN Clang 3.8 SVN OMP GCC 4.9.3 GCC 5.2.0 GCC 6.0.0 20150830 SR740_1509040-HA-GCCINTELS_compare 90K 180K 270K 360K 450K SE +/- 0.33, N = 3 SE +/- 10.67, N = 3 SE +/- 51.00, N = 3 SE +/- 0.00, N = 3 SE +/- 51.00, N = 3 16684 16670 76544 77004 76902 442368 1. (CC) gcc options: -fopenmp -lcrypt
Himeno Benchmark Poisson Pressure Solver OpenBenchmarking.org MFLOPS, More Is Better Himeno Benchmark 3.0 Poisson Pressure Solver Clang 3.8 SVN GCC 4.9.3 GCC 5.2.0 GCC 6.0.0 20150830 SR740_1509040-HA-GCCINTELS_compare 600 1200 1800 2400 3000 SE +/- 1.58, N = 3 SE +/- 0.74, N = 3 SE +/- 14.56, N = 3 SE +/- 3.11, N = 3 SE +/- 8.51, N = 3 1976.57 2763.07 2744.76 2720.00 2332.66 -march=native -march=native -march=native -march=native 1. (CC) gcc options: -O3
Rodinia Test: OpenMP LavaMD OpenBenchmarking.org Seconds, Fewer Is Better Rodinia 2.4 Test: OpenMP LavaMD Clang 3.8 SVN Clang 3.8 SVN OMP GCC 4.9.3 GCC 5.2.0 GCC 6.0.0 20150830 SR740_1509040-HA-GCCINTELS_compare 200 400 600 800 1000 SE +/- 0.10, N = 3 SE +/- 0.35, N = 3 SE +/- 0.20, N = 3 SE +/- 0.09, N = 3 SE +/- 0.14, N = 3 SE +/- 0.09, N = 3 856.60 857.02 215.67 216.20 215.72 48.96 1. (CXX) g++ options: -O2 -lOpenCL
SciMark Computational Test: Composite OpenBenchmarking.org Mflops, More Is Better SciMark 2.0 Computational Test: Composite Clang 3.8 SVN GCC 4.9.3 GCC 5.2.0 GCC 6.0.0 20150830 SR740_1509040-HA-GCCINTELS_compare 500 1000 1500 2000 2500 SE +/- 1.28, N = 4 SE +/- 0.46, N = 4 SE +/- 1.66, N = 4 SE +/- 0.86, N = 4 SE +/- 5.81, N = 4 2467.10 1594.66 1594.01 1584.33 1478.45 -O3 -march=native -O3 -march=native -O3 -march=native -O3 -march=native 1. (CXX) g++ options:
Rodinia Test: OpenMP CFD Solver OpenBenchmarking.org Seconds, Fewer Is Better Rodinia 2.4 Test: OpenMP CFD Solver Clang 3.8 SVN Clang 3.8 SVN OMP GCC 4.9.3 GCC 5.2.0 GCC 6.0.0 20150830 SR740_1509040-HA-GCCINTELS_compare 40 80 120 160 200 SE +/- 0.19, N = 3 SE +/- 0.62, N = 3 SE +/- 0.21, N = 3 SE +/- 0.19, N = 3 SE +/- 0.63, N = 3 SE +/- 0.11, N = 3 183.97 184.63 65.98 65.18 63.27 17.54 1. (CXX) g++ options: -O2 -lOpenCL
FLAC Audio Encoding WAV To FLAC OpenBenchmarking.org Seconds, Fewer Is Better FLAC Audio Encoding 1.3.1 WAV To FLAC Clang 3.8 SVN GCC 4.9.3 GCC 5.2.0 GCC 6.0.0 20150830 SR740_1509040-HA-GCCINTELS_compare 2 4 6 8 10 SE +/- 0.003, N = 5 SE +/- 0.002, N = 5 SE +/- 0.002, N = 5 SE +/- 0.002, N = 5 SE +/- 0.037, N = 5 5.140 4.930 4.970 4.940 7.250 -O3 -march=native -logg -O3 -march=native -fvisibility=hidden -O3 -march=native -fvisibility=hidden -O3 -march=native -fvisibility=hidden -O2 -fvisibility=hidden 1. (CXX) g++ options: -lm
Timed HMMer Search Pfam Database Search OpenBenchmarking.org Seconds, Fewer Is Better Timed HMMer Search 2.3.2 Pfam Database Search Clang 3.8 SVN GCC 4.9.3 GCC 5.2.0 GCC 6.0.0 20150830 SR740_1509040-HA-GCCINTELS_compare 3 6 9 12 15 SE +/- 0.031, N = 3 SE +/- 0.047, N = 3 SE +/- 0.003, N = 3 SE +/- 0.056, N = 3 SE +/- 0.019, N = 3 9.520 9.330 9.160 9.240 6.622 -O3 -march=native -O3 -march=native -O3 -march=native -O3 -march=native -O2 1. (CC) gcc options: -pthread -lhmmer -lsquid -lm
C-Ray Total Time OpenBenchmarking.org Seconds, Fewer Is Better C-Ray 1.1 Total Time Clang 3.8 SVN GCC 4.9.3 GCC 5.2.0 GCC 6.0.0 20150830 SR740_1509040-HA-GCCINTELS_compare 8 16 24 32 40 SE +/- 0.010, N = 3 SE +/- 0.012, N = 3 SE +/- 0.002, N = 3 SE +/- 0.003, N = 3 SE +/- 0.014, N = 3 34.590 15.170 15.110 15.090 4.202 -march=native -march=native -march=native -march=native 1. (CC) gcc options: -lm -lpthread -O3
x264 H.264 Video Encoding OpenBenchmarking.org Frames Per Second, More Is Better x264 2014-08-30 H.264 Video Encoding Clang 3.8 SVN GCC 4.9.3 GCC 5.2.0 GCC 6.0.0 20150830 SR740_1509040-HA-GCCINTELS_compare 110 220 330 440 550 SE +/- 0.27, N = 5 SE +/- 0.56, N = 5 SE +/- 0.39, N = 5 SE +/- 0.43, N = 5 SE +/- 2.04, N = 5 167.17 169.17 171.09 171.24 486.29 -march=native -march=native -march=native -march=native 1. (CC) gcc options: -ldl -m64 -lm -lpthread -O3 -ffast-math -std=gnu99 -fomit-frame-pointer -fno-tree-vectorize
LAME MP3 Encoding WAV To MP3 OpenBenchmarking.org Seconds, Fewer Is Better LAME MP3 Encoding 3.99.3 WAV To MP3 Clang 3.8 SVN GCC 4.9.3 GCC 5.2.0 GCC 6.0.0 20150830 3 6 9 12 15 SE +/- 0.00, N = 5 SE +/- 0.00, N = 5 SE +/- 0.00, N = 5 SE +/- 0.00, N = 5 11.33 10.61 10.77 10.56 1. (CC) gcc options: -pipe -O3 -march=native -lm
SciMark Computational Test: Jacobi Successive Over-Relaxation OpenBenchmarking.org Mflops, More Is Better SciMark 2.0 Computational Test: Jacobi Successive Over-Relaxation Clang 3.8 SVN GCC 4.9.3 GCC 5.2.0 GCC 6.0.0 20150830 SR740_1509040-HA-GCCINTELS_compare 300 600 900 1200 1500 SE +/- 0.06, N = 4 SE +/- 0.12, N = 4 SE +/- 0.03, N = 4 SE +/- 0.01, N = 4 SE +/- 3.88, N = 4 1474.45 1125.20 1125.11 1125.23 1003.60 -O3 -march=native -O3 -march=native -O3 -march=native -O3 -march=native 1. (CXX) g++ options:
SciMark Computational Test: Dense LU Matrix Factorization OpenBenchmarking.org Mflops, More Is Better SciMark 2.0 Computational Test: Dense LU Matrix Factorization Clang 3.8 SVN GCC 4.9.3 GCC 5.2.0 GCC 6.0.0 20150830 SR740_1509040-HA-GCCINTELS_compare 1500 3000 4500 6000 7500 SE +/- 5.00, N = 4 SE +/- 0.38, N = 4 SE +/- 7.45, N = 4 SE +/- 2.56, N = 4 SE +/- 12.94, N = 4 7111.79 2992.34 2968.23 2979.52 2875.29 -O3 -march=native -O3 -march=native -O3 -march=native -O3 -march=native 1. (CXX) g++ options:
SciMark Computational Test: Sparse Matrix Multiply OpenBenchmarking.org Mflops, More Is Better SciMark 2.0 Computational Test: Sparse Matrix Multiply Clang 3.8 SVN GCC 4.9.3 GCC 5.2.0 GCC 6.0.0 20150830 SR740_1509040-HA-GCCINTELS_compare 600 1200 1800 2400 3000 SE +/- 2.25, N = 4 SE +/- 2.49, N = 4 SE +/- 1.46, N = 4 SE +/- 2.13, N = 3 SE +/- 19.09, N = 4 2721.33 2739.39 2749.08 2693.95 2429.50 -O3 -march=native -O3 -march=native -O3 -march=native -O3 -march=native 1. (CXX) g++ options:
SciMark Computational Test: Fast Fourier Transform OpenBenchmarking.org Mflops, More Is Better SciMark 2.0 Computational Test: Fast Fourier Transform Clang 3.8 SVN GCC 4.9.3 GCC 5.2.0 GCC 6.0.0 20150830 SR740_1509040-HA-GCCINTELS_compare 90 180 270 360 450 SE +/- 0.82, N = 4 SE +/- 1.15, N = 4 SE +/- 0.57, N = 4 SE +/- 0.67, N = 4 SE +/- 4.85, N = 4 383.76 373.00 372.76 374.27 430.13 -O3 -march=native -O3 -march=native -O3 -march=native -O3 -march=native 1. (CXX) g++ options:
SciMark Computational Test: Monte Carlo OpenBenchmarking.org Mflops, More Is Better SciMark 2.0 Computational Test: Monte Carlo Clang 3.8 SVN GCC 4.9.3 GCC 5.2.0 GCC 6.0.0 20150830 SR740_1509040-HA-GCCINTELS_compare 160 320 480 640 800 SE +/- 0.05, N = 4 SE +/- 0.01, N = 4 SE +/- 0.02, N = 4 SE +/- 0.00, N = 4 SE +/- 1.90, N = 4 644.15 743.37 754.86 750.18 653.74 -O3 -march=native -O3 -march=native -O3 -march=native -O3 -march=native 1. (CXX) g++ options:
Phoronix Test Suite v10.8.4