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&sro&grr.

Early GCC 7.0 vs. LLVM Clang 4.0 Benchmarking On Intel x86_64 LinuxProcessorMotherboardChipsetMemoryDiskGraphicsAudioMonitorNetworkOSKernelDesktopDisplay ServerDisplay DriverOpenGLCompilerFile-SystemScreen ResolutionGCC 5.4.0GCC 6.2.0GCC 7.0.0 20161127Clang 3.9.0Clang 4.0 SVNIntel Core i7-6800K @ 3.80GHz (12 Cores)MSI X99A WORKSTATION (MS-7A54) v1.0Intel Xeon E7 v4/Xeon16384MB120GB Samsung SSD 850 + 4 x 120GB TOSHIBA-TR150NVIDIA GeForce GTX TITAN X 12288MBRealtek ALC1150ASUS PB278Intel ConnectionUbuntu 16.104.8.0-28-generic (x86_64)Unity 7.5.0X Server 1.18.4nouveau 1.0.123.3 Mesa 12.0.3 Gallium 0.4GCC 5.4.0ext42560x1440GCC 6.2.0GCC 7.0.0 20161127Clang 3.9.0-1ubuntu1 + LLVM 3.9.0Clang 4.0.0-svn288274-1~exp1 + LLVM 4.0.0OpenBenchmarking.orgCompiler 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,rwProcessor Details- Scaling Governor: intel_pstate powersave

Early GCC 7.0 vs. LLVM Clang 4.0 Benchmarking On Intel x86_64 Linuxredis: SETredis: GETpgbench: Buffer Test - Heavy Contention - Read Writepgbench: Buffer Test - Single Thread - Read Writepgbench: Buffer Test - Normal Load - Read Writeopenssl: RSA 4096-bit Performanceencode-mp3: WAV To MP3c-ray: Total Timebuild-php: Time To Compilebuild-imagemagick: Time To Compileebizzy: Phoronix Test Suite v6.8.0m3himeno: Poisson Pressure Solvertscp: AI Chess Performancescimark2: Jacobi Successive Over-Relaxationscimark2: Dense LU Matrix Factorizationscimark2: Sparse Matrix Multiplyscimark2: Fast Fourier Transformscimark2: Monte Carloscimark2: Compositemafft: Multiple Sequence Alignmenthmmer: Pfam Database Searchfftw: Float + SSE - 2D FFT Size 4096sqlite: Default Test DirectoryGCC 5.4.0GCC 6.2.0GCC 7.0.0 20161127Clang 3.9.0Clang 4.0 SVN1576321.212063098.718761.90627.377958.56981.5310.5312.2118.9143.841896941816.2912678571210.942720.202590.28338.82642.131500.473.566.791380225.821412803.002152314.258683.69622.567946.48981.1010.5312.1519.7064.521889442213.1313237321211.242719.952562.90339.06578.411482.313.826.831444825.861338386.501906819.198677.26636.237988.08983.0310.4813.8619.7251.891863772190.5112146251208.503232.732475.93341.96601.841596.123.806.831413025.731485797.941998162.088694.84624.457932.28975.6013.5618.1320.3842.122072201687.1212217291816.335670.882865.19348.00268.972193.883.956.921339025.731236827.731687609.648787.78656.418077.95977.9012.1718.5518.0441.864209301712.2611778231839.035601.592401.83325.68323.492098.334.5711.621217626.04OpenBenchmarking.org

Redis

Test: SET

OpenBenchmarking.orgRequests Per Second, More Is BetterRedis 3.0.1Test: SETClang 3.9.0Clang 4.0 SVNGCC 5.4.0GCC 6.2.0GCC 7.0.0 20161127300K600K900K1200K1500KSE +/- 56182.94, N = 6SE +/- 46245.04, N = 6SE +/- 57176.48, N = 6SE +/- 74386.96, N = 6SE +/- 14086.60, N = 31485797.941236827.731576321.211412803.001338386.50-std=gnu99 -pipe -g3 -O3 -funroll-loops -march=native1. (CC) gcc options: -ggdb -rdynamic -lm -pthread -ldl

Redis

Test: GET

OpenBenchmarking.orgRequests Per Second, More Is BetterRedis 3.0.1Test: GETClang 3.9.0Clang 4.0 SVNGCC 5.4.0GCC 6.2.0GCC 7.0.0 20161127500K1000K1500K2000K2500KSE +/- 84913.76, N = 6SE +/- 66082.79, N = 6SE +/- 101610.92, N = 6SE +/- 43300.91, N = 3SE +/- 70859.43, N = 61998162.081687609.642063098.712152314.251906819.19-std=gnu99 -pipe -g3 -O3 -funroll-loops -march=native1. (CC) gcc options: -ggdb -rdynamic -lm -pthread -ldl

PostgreSQL pgbench

Scaling: Buffer Test - Test: Heavy Contention - Mode: Read Write

OpenBenchmarking.orgTPS, More Is BetterPostgreSQL pgbench 9.4.3Scaling: Buffer Test - Test: Heavy Contention - Mode: Read WriteClang 3.9.0Clang 4.0 SVNGCC 5.4.0GCC 6.2.0GCC 7.0.0 201611272K4K6K8K10KSE +/- 56.41, N = 3SE +/- 53.05, N = 3SE +/- 77.01, N = 3SE +/- 48.41, N = 3SE +/- 31.43, N = 38694.848787.788761.908683.698677.26-pthreads -mthreads-pthreads -mthreads1. (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.orgTPS, More Is BetterPostgreSQL pgbench 9.4.3Scaling: Buffer Test - Test: Single Thread - Mode: Read WriteClang 3.9.0Clang 4.0 SVNGCC 5.4.0GCC 6.2.0GCC 7.0.0 20161127140280420560700SE +/- 10.71, N = 4SE +/- 4.79, N = 3SE +/- 5.49, N = 3SE +/- 3.56, N = 3SE +/- 2.77, N = 3624.45656.41627.37622.56636.23-pthreads -mthreads-pthreads -mthreads1. (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: Normal Load - Mode: Read Write

OpenBenchmarking.orgTPS, More Is BetterPostgreSQL pgbench 9.4.3Scaling: Buffer Test - Test: Normal Load - Mode: Read WriteClang 3.9.0Clang 4.0 SVNGCC 5.4.0GCC 6.2.0GCC 7.0.0 201611272K4K6K8K10KSE +/- 37.40, N = 3SE +/- 42.95, N = 3SE +/- 29.99, N = 3SE +/- 41.91, N = 3SE +/- 31.36, N = 37932.288077.957958.567946.487988.08-pthreads -mthreads-pthreads -mthreads1. (CC) gcc options: -fno-strict-aliasing -fwrapv -O3 -march=native -pthread -lpgcommon -lpgport -lpq -lpthread -lrt -lcrypt -ldl -lm

OpenSSL

RSA 4096-bit Performance

OpenBenchmarking.orgSigns Per Second, More Is BetterOpenSSL 1.0.1gRSA 4096-bit PerformanceClang 3.9.0Clang 4.0 SVNGCC 5.4.0GCC 6.2.0GCC 7.0.0 201611272004006008001000SE +/- 0.15, N = 3SE +/- 0.45, N = 3SE +/- 3.40, N = 3SE +/- 0.35, N = 3SE +/- 0.29, N = 3975.60977.90981.53981.10983.031. (CC) gcc options: -m64 -O3 -lssl -lcrypto -ldl

LAME MP3 Encoding

WAV To MP3

OpenBenchmarking.orgSeconds, Fewer Is BetterLAME MP3 Encoding 3.99.3WAV To MP3Clang 3.9.0Clang 4.0 SVNGCC 5.4.0GCC 6.2.0GCC 7.0.0 201611273691215SE +/- 0.01, N = 5SE +/- 0.15, N = 8SE +/- 0.14, N = 5SE +/- 0.01, N = 5SE +/- 0.02, N = 513.5612.1710.5310.5310.481. (CC) gcc options: -O3 -ffast-math -funroll-loops -fschedule-insns2 -fbranch-count-reg -fforce-addr -pipe -march=native -lm

C-Ray

Total Time

OpenBenchmarking.orgSeconds, Fewer Is BetterC-Ray 1.1Total TimeClang 3.9.0Clang 4.0 SVNGCC 5.4.0GCC 6.2.0GCC 7.0.0 20161127510152025SE +/- 0.01, N = 3SE +/- 0.01, N = 3SE +/- 0.01, N = 3SE +/- 0.01, N = 3SE +/- 0.02, N = 318.1318.5512.2112.1513.861. (CC) gcc options: -lm -lpthread -O3 -march=native

Timed PHP Compilation

Time To Compile

OpenBenchmarking.orgSeconds, Fewer Is BetterTimed PHP Compilation 5.2.9Time To CompileClang 3.9.0Clang 4.0 SVNGCC 5.4.0GCC 6.2.0GCC 7.0.0 20161127510152025SE +/- 0.19, N = 3SE +/- 0.04, N = 3SE +/- 0.07, N = 3SE +/- 0.09, N = 3SE +/- 0.03, N = 320.3818.0418.9119.7019.72-lz-lz-lz-lz1. (CC) gcc options: -O3 -march=native -pedantic -ldl -lm

Timed ImageMagick Compilation

Time To Compile

OpenBenchmarking.orgSeconds, Fewer Is BetterTimed ImageMagick Compilation 6.9.0Time To CompileClang 3.9.0Clang 4.0 SVNGCC 5.4.0GCC 6.2.0GCC 7.0.0 201611271428425670SE +/- 0.03, N = 3SE +/- 0.01, N = 3SE +/- 0.21, N = 3SE +/- 0.14, N = 3SE +/- 0.17, N = 342.1241.8643.8464.5251.89

ebizzy

Phoronix Test Suite v6.8.0m3

OpenBenchmarking.orgRecords/s, More Is Betterebizzy 0.3Phoronix Test Suite v6.8.0m3Clang 3.9.0Clang 4.0 SVNGCC 5.4.0GCC 6.2.0GCC 7.0.0 2016112790K180K270K360K450KSE +/- 467.06, N = 3SE +/- 590.05, N = 3SE +/- 5429.90, N = 6SE +/- 472.32, N = 3SE +/- 4882.08, N = 62072204209301896941889441863771. (CC) gcc options: -pthread -lpthread -O3 -march=native

Himeno Benchmark

Poisson Pressure Solver

OpenBenchmarking.orgMFLOPS, More Is BetterHimeno Benchmark 3.0Poisson Pressure SolverClang 3.9.0Clang 4.0 SVNGCC 5.4.0GCC 6.2.0GCC 7.0.0 201611275001000150020002500SE +/- 25.04, N = 5SE +/- 28.28, N = 3SE +/- 1.37, N = 3SE +/- 28.84, N = 3SE +/- 0.19, N = 31687.121712.261816.292213.132190.511. (CC) gcc options: -O3 -march=native -mavx2

TSCP

AI Chess Performance

OpenBenchmarking.orgNodes Per Second, More Is BetterTSCP 1.81AI Chess PerformanceClang 3.9.0Clang 4.0 SVNGCC 5.4.0GCC 6.2.0GCC 7.0.0 20161127300K600K900K1200K1500KSE +/- 30092.30, N = 10SE +/- 15337.47, N = 10SE +/- 13238.20, N = 5SE +/- 22912.67, N = 3SE +/- 23083.56, N = 10122172911778231267857132373212146251. (CC) gcc options: -O3 -march=native

SciMark

Computational Test: Jacobi Successive Over-Relaxation

OpenBenchmarking.orgMflops, More Is BetterSciMark 2.0Computational Test: Jacobi Successive Over-RelaxationClang 3.9.0Clang 4.0 SVNGCC 5.4.0GCC 6.2.0GCC 7.0.0 20161127400800120016002000SE +/- 0.12, N = 4SE +/- 25.10, N = 4SE +/- 0.27, N = 4SE +/- 0.08, N = 4SE +/- 1.69, N = 41816.331839.031210.941211.241208.501. (CXX) g++ options: -O3 -march=native

SciMark

Computational Test: Dense LU Matrix Factorization

OpenBenchmarking.orgMflops, More Is BetterSciMark 2.0Computational Test: Dense LU Matrix FactorizationClang 3.9.0Clang 4.0 SVNGCC 5.4.0GCC 6.2.0GCC 7.0.0 2016112712002400360048006000SE +/- 32.49, N = 4SE +/- 58.28, N = 4SE +/- 2.83, N = 4SE +/- 2.50, N = 4SE +/- 105.82, N = 45670.885601.592720.202719.953232.731. (CXX) g++ options: -O3 -march=native

SciMark

Computational Test: Sparse Matrix Multiply

OpenBenchmarking.orgMflops, More Is BetterSciMark 2.0Computational Test: Sparse Matrix MultiplyClang 3.9.0Clang 4.0 SVNGCC 5.4.0GCC 6.2.0GCC 7.0.0 201611276001200180024003000SE +/- 3.08, N = 4SE +/- 27.44, N = 4SE +/- 2.85, N = 4SE +/- 3.29, N = 4SE +/- 116.86, N = 42865.192401.832590.282562.902475.931. (CXX) g++ options: -O3 -march=native

SciMark

Computational Test: Fast Fourier Transform

OpenBenchmarking.orgMflops, More Is BetterSciMark 2.0Computational Test: Fast Fourier TransformClang 3.9.0Clang 4.0 SVNGCC 5.4.0GCC 6.2.0GCC 7.0.0 2016112780160240320400SE +/- 0.59, N = 4SE +/- 3.27, N = 4SE +/- 0.66, N = 4SE +/- 0.70, N = 4SE +/- 0.91, N = 4348.00325.68338.82339.06341.961. (CXX) g++ options: -O3 -march=native

SciMark

Computational Test: Monte Carlo

OpenBenchmarking.orgMflops, More Is BetterSciMark 2.0Computational Test: Monte CarloClang 3.9.0Clang 4.0 SVNGCC 5.4.0GCC 6.2.0GCC 7.0.0 20161127140280420560700SE +/- 0.02, N = 4SE +/- 4.41, N = 4SE +/- 0.01, N = 4SE +/- 36.88, N = 4SE +/- 32.30, N = 4268.97323.49642.13578.41601.841. (CXX) g++ options: -O3 -march=native

SciMark

Computational Test: Composite

OpenBenchmarking.orgMflops, More Is BetterSciMark 2.0Computational Test: CompositeClang 3.9.0Clang 4.0 SVNGCC 5.4.0GCC 6.2.0GCC 7.0.0 201611275001000150020002500SE +/- 6.94, N = 4SE +/- 23.61, N = 4SE +/- 1.02, N = 4SE +/- 6.64, N = 4SE +/- 25.27, N = 82193.882098.331500.471482.311596.121. (CXX) g++ options: -O3 -march=native

Timed MAFFT Alignment

Multiple Sequence Alignment

OpenBenchmarking.orgSeconds, Fewer Is BetterTimed MAFFT Alignment 6.864Multiple Sequence AlignmentClang 3.9.0Clang 4.0 SVNGCC 5.4.0GCC 6.2.0GCC 7.0.0 201611271.02832.05663.08494.11325.1415SE +/- 0.03, N = 3SE +/- 0.07, N = 6SE +/- 0.04, N = 3SE +/- 0.08, N = 6SE +/- 0.07, N = 63.954.573.563.823.801. (CC) gcc options: -O3 -lm -lpthread

Timed HMMer Search

Pfam Database Search

OpenBenchmarking.orgSeconds, Fewer Is BetterTimed HMMer Search 2.3.2Pfam Database SearchClang 3.9.0Clang 4.0 SVNGCC 5.4.0GCC 6.2.0GCC 7.0.0 201611273691215SE +/- 0.01, N = 3SE +/- 0.01, N = 3SE +/- 0.01, N = 3SE +/- 0.01, N = 3SE +/- 0.01, N = 36.9211.626.796.836.831. (CC) gcc options: -O3 -march=native -pthread -lhmmer -lsquid -lm

FFTW

Build: Float + SSE - Size: 2D FFT Size 4096

OpenBenchmarking.orgMflops, More Is BetterFFTW 3.3.4Build: Float + SSE - Size: 2D FFT Size 4096Clang 3.9.0Clang 4.0 SVNGCC 5.4.0GCC 6.2.0GCC 7.0.0 201611273K6K9K12K15KSE +/- 130.03, N = 5SE +/- 136.50, N = 5SE +/- 54.71, N = 5SE +/- 147.31, N = 5SE +/- 41.05, N = 513390121761380214448141301. (CC) gcc options: -O3 -march=native -lm

SQLite

Test Target: Default Test Directory

OpenBenchmarking.orgSeconds, Fewer Is BetterSQLite 3.8.10.2Test Target: Default Test DirectoryClang 3.9.0Clang 4.0 SVNGCC 5.4.0GCC 6.2.0GCC 7.0.0 20161127612182430SE +/- 0.34, N = 3SE +/- 0.04, N = 3SE +/- 0.15, N = 3SE +/- 0.17, N = 3SE +/- 0.26, N = 325.7326.0425.8225.8625.731. (CC) gcc options: -O3 -march=native -ldl -lpthread


Phoronix Test Suite v10.8.4