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&grs&rdt .
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 c-ray: Total Time rodinia: OpenMP Streamcluster smallpt: Global Illumination Renderer; 100 Samples apache: Static Web Page Serving john-the-ripper: Blowfish john-the-ripper: MD5 x264: H.264 Video Encoding scimark2: Dense LU Matrix Factorization john-the-ripper: Traditional DES rodinia: OpenMP LavaMD rodinia: OpenMP CFD Solver scimark2: Composite encode-flac: WAV To FLAC scimark2: Jacobi Successive Over-Relaxation hmmer: Pfam Database Search himeno: Poisson Pressure Solver hint: FLOAT scimark2: Monte Carlo scimark2: Fast Fourier Transform scimark2: Sparse Matrix Multiply encode-mp3: WAV To MP3 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 15.17 35.27 28 44411.00 4755 76544 169.17 2992.34 24484000 215.67 65.98 1594.66 4.93 1125.20 9.33 2763.07 394717206.91 743.37 373.00 2739.39 10.61 15.11 35.01 28 41662.12 4760 77004 171.09 2968.23 25025333 216.20 65.18 1594.01 4.97 1125.11 9.16 2744.76 402676204.80 754.86 372.76 2749.08 10.77 15.09 35.00 28 43039.62 4782 76902 171.24 2979.52 25141333 215.72 63.27 1584.33 4.94 1125.23 9.24 2720.00 404526879.23 750.18 374.27 2693.95 10.56 34.59 128.84 123 44513.53 1224 16684 167.17 7111.79 6291333 856.60 183.97 2467.10 5.14 1474.45 9.52 1976.57 293947985.31 644.15 383.76 2721.33 11.33 128.20 31 1224 16670 6283667 857.02 184.63 4.202 21.719 115 13327.92 34974 442368 486.29 2875.29 111214333 48.962 17.544 1478.45 7.250 1003.60 6.622 2332.664596 361326865.97905 653.74 430.13 2429.50 OpenBenchmarking.org
C-Ray Total Time OpenBenchmarking.org Seconds, Fewer Is Better C-Ray 1.1 Total Time GCC 4.9.3 GCC 5.2.0 GCC 6.0.0 20150830 Clang 3.8 SVN SR740_1509040-HA-GCCINTELS_compare 8 16 24 32 40 SE +/- 0.012, N = 3 SE +/- 0.002, N = 3 SE +/- 0.003, N = 3 SE +/- 0.010, N = 3 SE +/- 0.014, N = 3 15.170 15.110 15.090 34.590 4.202 -march=native -march=native -march=native -march=native 1. (CC) gcc options: -lm -lpthread -O3
Rodinia Test: OpenMP Streamcluster OpenBenchmarking.org Seconds, Fewer Is Better Rodinia 2.4 Test: OpenMP Streamcluster 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 30 60 90 120 150 SE +/- 0.04, N = 3 SE +/- 0.05, N = 3 SE +/- 0.01, N = 3 SE +/- 0.58, N = 3 SE +/- 0.06, N = 3 SE +/- 0.60, N = 15 35.27 35.01 35.00 128.84 128.20 21.72 1. (CXX) g++ options: -O2 -lOpenCL
Smallpt Global Illumination Renderer; 100 Samples OpenBenchmarking.org Seconds, Fewer Is Better Smallpt 1.0 Global Illumination Renderer; 100 Samples 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 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 28 28 28 123 31 115 -O3 -march=native -O3 -march=native -O3 -march=native -O3 -march=native -O3 -march=native -fopenmp=libomp -fno-exceptions 1. (CXX) g++ options: -fopenmp
Apache Benchmark Static Web Page Serving OpenBenchmarking.org Requests Per Second, More Is Better Apache Benchmark 2.4.7 Static Web Page Serving GCC 4.9.3 GCC 5.2.0 GCC 6.0.0 20150830 Clang 3.8 SVN SR740_1509040-HA-GCCINTELS_compare 10K 20K 30K 40K 50K SE +/- 154.80, N = 3 SE +/- 288.36, N = 3 SE +/- 1006.67, N = 6 SE +/- 388.92, N = 3 SE +/- 147.37, N = 3 44411.00 41662.12 43039.62 44513.53 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: Blowfish OpenBenchmarking.org Real C/S, More Is Better John The Ripper 1.8.0 Test: Blowfish 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 7K 14K 21K 28K 35K SE +/- 3.00, N = 3 SE +/- 4.10, N = 3 SE +/- 1.67, N = 3 SE +/- 0.67, N = 3 SE +/- 1.86, N = 3 SE +/- 72.22, N = 3 4755 4760 4782 1224 1224 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 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 90K 180K 270K 360K 450K SE +/- 51.00, N = 3 SE +/- 0.00, N = 3 SE +/- 51.00, N = 3 SE +/- 0.33, N = 3 SE +/- 10.67, N = 3 76544 77004 76902 16684 16670 442368 1. (CC) gcc options: -fopenmp -lcrypt
x264 H.264 Video Encoding OpenBenchmarking.org Frames Per Second, More Is Better x264 2014-08-30 H.264 Video Encoding GCC 4.9.3 GCC 5.2.0 GCC 6.0.0 20150830 Clang 3.8 SVN SR740_1509040-HA-GCCINTELS_compare 110 220 330 440 550 SE +/- 0.56, N = 5 SE +/- 0.39, N = 5 SE +/- 0.43, N = 5 SE +/- 0.27, N = 5 SE +/- 2.04, N = 5 169.17 171.09 171.24 167.17 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
SciMark Computational Test: Dense LU Matrix Factorization OpenBenchmarking.org Mflops, More Is Better SciMark 2.0 Computational Test: Dense LU Matrix Factorization GCC 4.9.3 GCC 5.2.0 GCC 6.0.0 20150830 Clang 3.8 SVN SR740_1509040-HA-GCCINTELS_compare 1500 3000 4500 6000 7500 SE +/- 0.38, N = 4 SE +/- 7.45, N = 4 SE +/- 2.56, N = 4 SE +/- 5.00, N = 4 SE +/- 12.94, N = 4 2992.34 2968.23 2979.52 7111.79 2875.29 -O3 -march=native -O3 -march=native -O3 -march=native -O3 -march=native 1. (CXX) g++ options:
John The Ripper Test: Traditional DES OpenBenchmarking.org Real C/S, More Is Better John The Ripper 1.8.0 Test: Traditional DES 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 20M 40M 60M 80M 100M SE +/- 175214.15, N = 3 SE +/- 72723.98, N = 3 SE +/- 10397.65, N = 3 SE +/- 2333.33, N = 3 SE +/- 666.67, N = 3 SE +/- 245045.80, N = 3 24484000 25025333 25141333 6291333 6283667 111214333 1. (CC) gcc options: -fopenmp -lcrypt
Rodinia Test: OpenMP LavaMD OpenBenchmarking.org Seconds, Fewer Is Better Rodinia 2.4 Test: OpenMP LavaMD 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 200 400 600 800 1000 SE +/- 0.20, N = 3 SE +/- 0.09, N = 3 SE +/- 0.14, N = 3 SE +/- 0.10, N = 3 SE +/- 0.35, N = 3 SE +/- 0.09, N = 3 215.67 216.20 215.72 856.60 857.02 48.96 1. (CXX) g++ options: -O2 -lOpenCL
Rodinia Test: OpenMP CFD Solver OpenBenchmarking.org Seconds, Fewer Is Better Rodinia 2.4 Test: OpenMP CFD Solver 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 40 80 120 160 200 SE +/- 0.21, N = 3 SE +/- 0.19, N = 3 SE +/- 0.63, N = 3 SE +/- 0.19, N = 3 SE +/- 0.62, N = 3 SE +/- 0.11, N = 3 65.98 65.18 63.27 183.97 184.63 17.54 1. (CXX) g++ options: -O2 -lOpenCL
SciMark Computational Test: Composite OpenBenchmarking.org Mflops, More Is Better SciMark 2.0 Computational Test: Composite GCC 4.9.3 GCC 5.2.0 GCC 6.0.0 20150830 Clang 3.8 SVN SR740_1509040-HA-GCCINTELS_compare 500 1000 1500 2000 2500 SE +/- 0.46, N = 4 SE +/- 1.66, N = 4 SE +/- 0.86, N = 4 SE +/- 1.28, N = 4 SE +/- 5.81, N = 4 1594.66 1594.01 1584.33 2467.10 1478.45 -O3 -march=native -O3 -march=native -O3 -march=native -O3 -march=native 1. (CXX) g++ options:
FLAC Audio Encoding WAV To FLAC OpenBenchmarking.org Seconds, Fewer Is Better FLAC Audio Encoding 1.3.1 WAV To FLAC GCC 4.9.3 GCC 5.2.0 GCC 6.0.0 20150830 Clang 3.8 SVN SR740_1509040-HA-GCCINTELS_compare 2 4 6 8 10 SE +/- 0.002, N = 5 SE +/- 0.002, N = 5 SE +/- 0.002, N = 5 SE +/- 0.003, N = 5 SE +/- 0.037, N = 5 4.930 4.970 4.940 5.140 7.250 -O3 -march=native -fvisibility=hidden -O3 -march=native -fvisibility=hidden -O3 -march=native -fvisibility=hidden -O3 -march=native -logg -O2 -fvisibility=hidden 1. (CXX) g++ options: -lm
SciMark Computational Test: Jacobi Successive Over-Relaxation OpenBenchmarking.org Mflops, More Is Better SciMark 2.0 Computational Test: Jacobi Successive Over-Relaxation GCC 4.9.3 GCC 5.2.0 GCC 6.0.0 20150830 Clang 3.8 SVN SR740_1509040-HA-GCCINTELS_compare 300 600 900 1200 1500 SE +/- 0.12, N = 4 SE +/- 0.03, N = 4 SE +/- 0.01, N = 4 SE +/- 0.06, N = 4 SE +/- 3.88, N = 4 1125.20 1125.11 1125.23 1474.45 1003.60 -O3 -march=native -O3 -march=native -O3 -march=native -O3 -march=native 1. (CXX) g++ options:
Timed HMMer Search Pfam Database Search OpenBenchmarking.org Seconds, Fewer Is Better Timed HMMer Search 2.3.2 Pfam Database Search GCC 4.9.3 GCC 5.2.0 GCC 6.0.0 20150830 Clang 3.8 SVN SR740_1509040-HA-GCCINTELS_compare 3 6 9 12 15 SE +/- 0.047, N = 3 SE +/- 0.003, N = 3 SE +/- 0.056, N = 3 SE +/- 0.031, N = 3 SE +/- 0.019, N = 3 9.330 9.160 9.240 9.520 6.622 -O3 -march=native -O3 -march=native -O3 -march=native -O3 -march=native -O2 1. (CC) gcc options: -pthread -lhmmer -lsquid -lm
Himeno Benchmark Poisson Pressure Solver OpenBenchmarking.org MFLOPS, More Is Better Himeno Benchmark 3.0 Poisson Pressure Solver GCC 4.9.3 GCC 5.2.0 GCC 6.0.0 20150830 Clang 3.8 SVN SR740_1509040-HA-GCCINTELS_compare 600 1200 1800 2400 3000 SE +/- 0.74, N = 3 SE +/- 14.56, N = 3 SE +/- 3.11, N = 3 SE +/- 1.58, N = 3 SE +/- 8.51, N = 3 2763.07 2744.76 2720.00 1976.57 2332.66 -march=native -march=native -march=native -march=native 1. (CC) gcc options: -O3
Hierarchical INTegration Test: FLOAT OpenBenchmarking.org QUIPs, More Is Better Hierarchical INTegration 1.0 Test: FLOAT GCC 4.9.3 GCC 5.2.0 GCC 6.0.0 20150830 Clang 3.8 SVN SR740_1509040-HA-GCCINTELS_compare 90M 180M 270M 360M 450M SE +/- 252594.71, N = 3 SE +/- 279552.00, N = 3 SE +/- 358895.73, N = 3 SE +/- 129692.07, N = 3 SE +/- 144132.51, N = 3 394717206.91 402676204.80 404526879.23 293947985.31 361326865.98 1. (CC) gcc options: -O3 -march=native -lm
SciMark Computational Test: Monte Carlo OpenBenchmarking.org Mflops, More Is Better SciMark 2.0 Computational Test: Monte Carlo GCC 4.9.3 GCC 5.2.0 GCC 6.0.0 20150830 Clang 3.8 SVN SR740_1509040-HA-GCCINTELS_compare 160 320 480 640 800 SE +/- 0.01, N = 4 SE +/- 0.02, N = 4 SE +/- 0.00, N = 4 SE +/- 0.05, N = 4 SE +/- 1.90, N = 4 743.37 754.86 750.18 644.15 653.74 -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 GCC 4.9.3 GCC 5.2.0 GCC 6.0.0 20150830 Clang 3.8 SVN SR740_1509040-HA-GCCINTELS_compare 90 180 270 360 450 SE +/- 1.15, N = 4 SE +/- 0.57, N = 4 SE +/- 0.67, N = 4 SE +/- 0.82, N = 4 SE +/- 4.85, N = 4 373.00 372.76 374.27 383.76 430.13 -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 GCC 4.9.3 GCC 5.2.0 GCC 6.0.0 20150830 Clang 3.8 SVN SR740_1509040-HA-GCCINTELS_compare 600 1200 1800 2400 3000 SE +/- 2.49, N = 4 SE +/- 1.46, N = 4 SE +/- 2.13, N = 3 SE +/- 2.25, N = 4 SE +/- 19.09, N = 4 2739.39 2749.08 2693.95 2721.33 2429.50 -O3 -march=native -O3 -march=native -O3 -march=native -O3 -march=native 1. (CXX) g++ options:
LAME MP3 Encoding WAV To MP3 OpenBenchmarking.org Seconds, Fewer Is Better LAME MP3 Encoding 3.99.3 WAV To MP3 GCC 4.9.3 GCC 5.2.0 GCC 6.0.0 20150830 Clang 3.8 SVN 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 10.61 10.77 10.56 11.33 1. (CC) gcc options: -pipe -O3 -march=native -lm
Phoronix Test Suite v10.8.4