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&rro.

GCC Clang Intel Skylake Compiler PerfProcessorMotherboardChipsetMemoryDiskGraphicsAudioMonitorNetworkOSKernelDesktopDisplay ServerDisplay DriverOpenGLCompilerFile-SystemScreen ResolutionGCC 4.9.3GCC 5.2.0GCC 6.0.0 20150830Clang 3.8 SVNClang 3.8 SVN OMPSR740_1509040-HA-GCCINTELS_compareIntel Core i5-6600K @ 3.50GHz (4 Cores)MSI Z170A GAMING PRO (MS-7984) v1.0Intel Sky Lake15360MB256GB TS256GSSD370SIntel Sky Lake (1150MHz)Realtek ALC1150DELL P2210HIntel ConnectionUbuntu 15.104.2.0-999-generic (x86_64) 20150901Xfce 4.12X Server 1.17.2intel 2.99.9173.3 Mesa 10.6.5GCC 4.9.3ext41920x1080GCC 5.2.0GCC 6.0.0 20150830Clang 3.8.0 (SVN 246796) + LLVM 3.8.0svn2 x Intel Xeon Silver 4214R @ 3.50GHz (24 Cores / 48 Threads)Yunke China 0DY2X0 (2.10.0 BIOS)Intel Sky Lake-E DMI3 Registers6 x 32 GB DDR4-3200MT/s HMA84GR7DJR4N-XN16001GB PERC H730P Adp + 480GB PERC H730P AdpMatrox G200eW32 x Intel I350 + 2 x Intel 82599ES 10-Gigabit SFI/SFP+CentOS Linux 73.10.0-1160.15.2.el7.x86_64 (x86_64)GCC 4.8.5 20150623xfs1024x768OpenBenchmarking.orgKernel 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: alwaysCompiler 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: 0x5003006Security 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 Perfsmallpt: Global Illumination Renderer; 100 Sampleshint: FLOATrodinia: OpenMP Streamclusterapache: Static Web Page Servingjohn-the-ripper: Traditional DESjohn-the-ripper: Blowfishjohn-the-ripper: MD5himeno: Poisson Pressure Solverrodinia: OpenMP LavaMDscimark2: Compositerodinia: OpenMP CFD Solverencode-flac: WAV To FLAChmmer: Pfam Database Searchc-ray: Total Timex264: H.264 Video Encodingencode-mp3: WAV To MP3scimark2: Jacobi Successive Over-Relaxationscimark2: Dense LU Matrix Factorizationscimark2: Sparse Matrix Multiplyscimark2: Fast Fourier Transformscimark2: Monte CarloGCC 4.9.3GCC 5.2.0GCC 6.0.0 20150830Clang 3.8 SVNClang 3.8 SVN OMPSR740_1509040-HA-GCCINTELS_compare28394717206.9135.2744411.00244840004755765442763.07215.671594.6665.984.939.3315.17169.1710.611125.202992.342739.39373.00743.3728402676204.8035.0141662.12250253334760770042744.76216.201594.0165.184.979.1615.11171.0910.771125.112968.232749.08372.76754.8628404526879.2335.0043039.62251413334782769022720.00215.721584.3363.274.949.2415.09171.2410.561125.232979.522693.95374.27750.18123293947985.31128.8444513.5362913331224166841976.57856.602467.10183.975.149.5234.59167.1711.331474.457111.792721.33383.76644.1531128.206283667122416670857.02184.63115361326865.9790521.71913327.92111214333349744423682332.66459648.9621478.4517.5447.2506.6224.202486.291003.602875.292429.50430.13653.74OpenBenchmarking.org

Smallpt

Global Illumination Renderer; 100 Samples

OpenBenchmarking.orgSeconds, Fewer Is BetterSmallpt 1.0Global Illumination Renderer; 100 SamplesSR740_1509040-HA-GCCINTELS_compareGCC 6.0.0 20150830GCC 5.2.0GCC 4.9.3Clang 3.8 SVN OMPClang 3.8 SVN306090120150SE +/- 12.87, N = 12SE +/- 0.33, N = 3SE +/- 0.33, N = 3SE +/- 0.33, N = 3SE +/- 0.33, N = 3SE +/- 0.33, N = 311528282831123-O3 -march=native-O3 -march=native-O3 -march=native-O3 -march=native -fopenmp=libomp -fno-exceptions-O3 -march=native1. (CXX) g++ options: -fopenmp

Hierarchical INTegration

Test: FLOAT

OpenBenchmarking.orgQUIPs, More Is BetterHierarchical INTegration 1.0Test: FLOATSR740_1509040-HA-GCCINTELS_compareGCC 6.0.0 20150830GCC 5.2.0GCC 4.9.3Clang 3.8 SVN90M180M270M360M450MSE +/- 144132.51, N = 3SE +/- 358895.73, N = 3SE +/- 279552.00, N = 3SE +/- 252594.71, N = 3SE +/- 129692.07, N = 3361326865.98404526879.23402676204.80394717206.91293947985.311. (CC) gcc options: -O3 -march=native -lm

Rodinia

Test: OpenMP Streamcluster

OpenBenchmarking.orgSeconds, Fewer Is BetterRodinia 2.4Test: OpenMP StreamclusterSR740_1509040-HA-GCCINTELS_compareGCC 6.0.0 20150830GCC 5.2.0GCC 4.9.3Clang 3.8 SVN OMPClang 3.8 SVN306090120150SE +/- 0.60, N = 15SE +/- 0.01, N = 3SE +/- 0.05, N = 3SE +/- 0.04, N = 3SE +/- 0.06, N = 3SE +/- 0.58, N = 321.7235.0035.0135.27128.20128.841. (CXX) g++ options: -O2 -lOpenCL

Apache Benchmark

Static Web Page Serving

OpenBenchmarking.orgRequests Per Second, More Is BetterApache Benchmark 2.4.7Static Web Page ServingSR740_1509040-HA-GCCINTELS_compareGCC 6.0.0 20150830GCC 5.2.0GCC 4.9.3Clang 3.8 SVN10K20K30K40K50KSE +/- 147.37, N = 3SE +/- 1006.67, N = 6SE +/- 288.36, N = 3SE +/- 154.80, N = 3SE +/- 388.92, N = 313327.9243039.6241662.1244411.0044513.53-O2-O3 -march=native-O3 -march=native-O3 -march=native-O3 -march=native1. (CC) gcc options: -shared -fPIC -pthread

John The Ripper

Test: Traditional DES

OpenBenchmarking.orgReal C/S, More Is BetterJohn The Ripper 1.8.0Test: Traditional DESSR740_1509040-HA-GCCINTELS_compareGCC 6.0.0 20150830GCC 5.2.0GCC 4.9.3Clang 3.8 SVN OMPClang 3.8 SVN20M40M60M80M100MSE +/- 245045.80, N = 3SE +/- 10397.65, N = 3SE +/- 72723.98, N = 3SE +/- 175214.15, N = 3SE +/- 666.67, N = 3SE +/- 2333.33, N = 3111214333251413332502533324484000628366762913331. (CC) gcc options: -fopenmp -lcrypt

John The Ripper

Test: Blowfish

OpenBenchmarking.orgReal C/S, More Is BetterJohn The Ripper 1.8.0Test: BlowfishSR740_1509040-HA-GCCINTELS_compareGCC 6.0.0 20150830GCC 5.2.0GCC 4.9.3Clang 3.8 SVN OMPClang 3.8 SVN7K14K21K28K35KSE +/- 72.22, N = 3SE +/- 1.67, N = 3SE +/- 4.10, N = 3SE +/- 3.00, N = 3SE +/- 1.86, N = 3SE +/- 0.67, N = 334974478247604755122412241. (CC) gcc options: -fopenmp -lcrypt

John The Ripper

Test: MD5

OpenBenchmarking.orgReal C/S, More Is BetterJohn The Ripper 1.8.0Test: MD5SR740_1509040-HA-GCCINTELS_compareGCC 6.0.0 20150830GCC 5.2.0GCC 4.9.3Clang 3.8 SVN OMPClang 3.8 SVN90K180K270K360K450KSE +/- 51.00, N = 3SE +/- 0.00, N = 3SE +/- 51.00, N = 3SE +/- 10.67, N = 3SE +/- 0.33, N = 344236876902770047654416670166841. (CC) gcc options: -fopenmp -lcrypt

Himeno Benchmark

Poisson Pressure Solver

OpenBenchmarking.orgMFLOPS, More Is BetterHimeno Benchmark 3.0Poisson Pressure SolverSR740_1509040-HA-GCCINTELS_compareGCC 6.0.0 20150830GCC 5.2.0GCC 4.9.3Clang 3.8 SVN6001200180024003000SE +/- 8.51, N = 3SE +/- 3.11, N = 3SE +/- 14.56, N = 3SE +/- 0.74, N = 3SE +/- 1.58, N = 32332.662720.002744.762763.071976.57-march=native-march=native-march=native-march=native1. (CC) gcc options: -O3

Rodinia

Test: OpenMP LavaMD

OpenBenchmarking.orgSeconds, Fewer Is BetterRodinia 2.4Test: OpenMP LavaMDSR740_1509040-HA-GCCINTELS_compareGCC 6.0.0 20150830GCC 5.2.0GCC 4.9.3Clang 3.8 SVN OMPClang 3.8 SVN2004006008001000SE +/- 0.09, N = 3SE +/- 0.14, N = 3SE +/- 0.09, N = 3SE +/- 0.20, N = 3SE +/- 0.35, N = 3SE +/- 0.10, N = 348.96215.72216.20215.67857.02856.601. (CXX) g++ options: -O2 -lOpenCL

SciMark

Computational Test: Composite

OpenBenchmarking.orgMflops, More Is BetterSciMark 2.0Computational Test: CompositeSR740_1509040-HA-GCCINTELS_compareGCC 6.0.0 20150830GCC 5.2.0GCC 4.9.3Clang 3.8 SVN5001000150020002500SE +/- 5.81, N = 4SE +/- 0.86, N = 4SE +/- 1.66, N = 4SE +/- 0.46, N = 4SE +/- 1.28, N = 41478.451584.331594.011594.662467.10-O3 -march=native-O3 -march=native-O3 -march=native-O3 -march=native1. (CXX) g++ options:

Rodinia

Test: OpenMP CFD Solver

OpenBenchmarking.orgSeconds, Fewer Is BetterRodinia 2.4Test: OpenMP CFD SolverSR740_1509040-HA-GCCINTELS_compareGCC 6.0.0 20150830GCC 5.2.0GCC 4.9.3Clang 3.8 SVN OMPClang 3.8 SVN4080120160200SE +/- 0.11, N = 3SE +/- 0.63, N = 3SE +/- 0.19, N = 3SE +/- 0.21, N = 3SE +/- 0.62, N = 3SE +/- 0.19, N = 317.5463.2765.1865.98184.63183.971. (CXX) g++ options: -O2 -lOpenCL

FLAC Audio Encoding

WAV To FLAC

OpenBenchmarking.orgSeconds, Fewer Is BetterFLAC Audio Encoding 1.3.1WAV To FLACSR740_1509040-HA-GCCINTELS_compareGCC 6.0.0 20150830GCC 5.2.0GCC 4.9.3Clang 3.8 SVN246810SE +/- 0.037, N = 5SE +/- 0.002, N = 5SE +/- 0.002, N = 5SE +/- 0.002, N = 5SE +/- 0.003, N = 57.2504.9404.9704.9305.140-O2 -fvisibility=hidden-O3 -march=native -fvisibility=hidden-O3 -march=native -fvisibility=hidden-O3 -march=native -fvisibility=hidden-O3 -march=native -logg1. (CXX) g++ options: -lm

Timed HMMer Search

Pfam Database Search

OpenBenchmarking.orgSeconds, Fewer Is BetterTimed HMMer Search 2.3.2Pfam Database SearchSR740_1509040-HA-GCCINTELS_compareGCC 6.0.0 20150830GCC 5.2.0GCC 4.9.3Clang 3.8 SVN3691215SE +/- 0.019, N = 3SE +/- 0.056, N = 3SE +/- 0.003, N = 3SE +/- 0.047, N = 3SE +/- 0.031, N = 36.6229.2409.1609.3309.520-O2-O3 -march=native-O3 -march=native-O3 -march=native-O3 -march=native1. (CC) gcc options: -pthread -lhmmer -lsquid -lm

C-Ray

Total Time

OpenBenchmarking.orgSeconds, Fewer Is BetterC-Ray 1.1Total TimeSR740_1509040-HA-GCCINTELS_compareGCC 6.0.0 20150830GCC 5.2.0GCC 4.9.3Clang 3.8 SVN816243240SE +/- 0.014, N = 3SE +/- 0.003, N = 3SE +/- 0.002, N = 3SE +/- 0.012, N = 3SE +/- 0.010, N = 34.20215.09015.11015.17034.590-march=native-march=native-march=native-march=native1. (CC) gcc options: -lm -lpthread -O3

x264

H.264 Video Encoding

OpenBenchmarking.orgFrames Per Second, More Is Betterx264 2014-08-30H.264 Video EncodingSR740_1509040-HA-GCCINTELS_compareGCC 6.0.0 20150830GCC 5.2.0GCC 4.9.3Clang 3.8 SVN110220330440550SE +/- 2.04, N = 5SE +/- 0.43, N = 5SE +/- 0.39, N = 5SE +/- 0.56, N = 5SE +/- 0.27, N = 5486.29171.24171.09169.17167.17-march=native-march=native-march=native-march=native1. (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.orgSeconds, Fewer Is BetterLAME MP3 Encoding 3.99.3WAV To MP3GCC 6.0.0 20150830GCC 5.2.0GCC 4.9.3Clang 3.8 SVN3691215SE +/- 0.00, N = 5SE +/- 0.00, N = 5SE +/- 0.00, N = 5SE +/- 0.00, N = 510.5610.7710.6111.331. (CC) gcc options: -pipe -O3 -march=native -lm

SciMark

Computational Test: Jacobi Successive Over-Relaxation

OpenBenchmarking.orgMflops, More Is BetterSciMark 2.0Computational Test: Jacobi Successive Over-RelaxationSR740_1509040-HA-GCCINTELS_compareGCC 6.0.0 20150830GCC 5.2.0GCC 4.9.3Clang 3.8 SVN30060090012001500SE +/- 3.88, N = 4SE +/- 0.01, N = 4SE +/- 0.03, N = 4SE +/- 0.12, N = 4SE +/- 0.06, N = 41003.601125.231125.111125.201474.45-O3 -march=native-O3 -march=native-O3 -march=native-O3 -march=native1. (CXX) g++ options:

SciMark

Computational Test: Dense LU Matrix Factorization

OpenBenchmarking.orgMflops, More Is BetterSciMark 2.0Computational Test: Dense LU Matrix FactorizationSR740_1509040-HA-GCCINTELS_compareGCC 6.0.0 20150830GCC 5.2.0GCC 4.9.3Clang 3.8 SVN15003000450060007500SE +/- 12.94, N = 4SE +/- 2.56, N = 4SE +/- 7.45, N = 4SE +/- 0.38, N = 4SE +/- 5.00, N = 42875.292979.522968.232992.347111.79-O3 -march=native-O3 -march=native-O3 -march=native-O3 -march=native1. (CXX) g++ options:

SciMark

Computational Test: Sparse Matrix Multiply

OpenBenchmarking.orgMflops, More Is BetterSciMark 2.0Computational Test: Sparse Matrix MultiplySR740_1509040-HA-GCCINTELS_compareGCC 6.0.0 20150830GCC 5.2.0GCC 4.9.3Clang 3.8 SVN6001200180024003000SE +/- 19.09, N = 4SE +/- 2.13, N = 3SE +/- 1.46, N = 4SE +/- 2.49, N = 4SE +/- 2.25, N = 42429.502693.952749.082739.392721.33-O3 -march=native-O3 -march=native-O3 -march=native-O3 -march=native1. (CXX) g++ options:

SciMark

Computational Test: Fast Fourier Transform

OpenBenchmarking.orgMflops, More Is BetterSciMark 2.0Computational Test: Fast Fourier TransformSR740_1509040-HA-GCCINTELS_compareGCC 6.0.0 20150830GCC 5.2.0GCC 4.9.3Clang 3.8 SVN90180270360450SE +/- 4.85, N = 4SE +/- 0.67, N = 4SE +/- 0.57, N = 4SE +/- 1.15, N = 4SE +/- 0.82, N = 4430.13374.27372.76373.00383.76-O3 -march=native-O3 -march=native-O3 -march=native-O3 -march=native1. (CXX) g++ options:

SciMark

Computational Test: Monte Carlo

OpenBenchmarking.orgMflops, More Is BetterSciMark 2.0Computational Test: Monte CarloSR740_1509040-HA-GCCINTELS_compareGCC 6.0.0 20150830GCC 5.2.0GCC 4.9.3Clang 3.8 SVN160320480640800SE +/- 1.90, N = 4SE +/- 0.00, N = 4SE +/- 0.02, N = 4SE +/- 0.01, N = 4SE +/- 0.05, N = 4653.74750.18754.86743.37644.15-O3 -march=native-O3 -march=native-O3 -march=native-O3 -march=native1. (CXX) g++ options:


Phoronix Test Suite v10.8.5