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.

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 Linuxsqlite: Default Test Directoryfftw: Float + SSE - 2D FFT Size 4096hmmer: Pfam Database Searchmafft: Multiple Sequence Alignmentscimark2: Compositescimark2: Monte Carloscimark2: Fast Fourier Transformscimark2: Sparse Matrix Multiplyscimark2: Dense LU Matrix Factorizationscimark2: Jacobi Successive Over-Relaxationtscp: AI Chess Performancehimeno: Poisson Pressure Solverebizzy: Phoronix Test Suite v6.8.0m3build-imagemagick: Time To Compilebuild-php: Time To Compilec-ray: Total Timeencode-mp3: WAV To MP3openssl: RSA 4096-bit Performancepgbench: Buffer Test - Normal Load - Read Writepgbench: Buffer Test - Single Thread - Read Writepgbench: Buffer Test - Heavy Contention - Read Writeredis: GETredis: SETGCC 5.4.0GCC 6.2.0GCC 7.0.0 20161127Clang 3.9.0Clang 4.0 SVN25.82138026.793.561500.47642.13338.822590.282720.201210.9412678571816.2918969443.8418.9112.2110.53981.537958.56627.378761.902063098.711576321.2125.86144486.833.821482.31578.41339.062562.902719.951211.2413237322213.1318894464.5219.7012.1510.53981.107946.48622.568683.692152314.251412803.0025.73141306.833.801596.12601.84341.962475.933232.731208.5012146252190.5118637751.8919.7213.8610.48983.037988.08636.238677.261906819.191338386.5025.73133906.923.952193.88268.97348.002865.195670.881816.3312217291687.1220722042.1220.3818.1313.56975.607932.28624.458694.841998162.081485797.9426.041217611.624.572098.33323.49325.682401.835601.591839.0311778231712.2642093041.8618.0418.5512.17977.908077.95656.418787.781687609.641236827.73OpenBenchmarking.org

SQLite

Test Target: Default Test Directory

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

FFTW

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

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

Timed HMMer Search

Pfam Database Search

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

Timed MAFFT Alignment

Multiple Sequence Alignment

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

SciMark

Computational Test: Composite

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

SciMark

Computational Test: Monte Carlo

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

SciMark

Computational Test: Fast Fourier Transform

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

SciMark

Computational Test: Sparse Matrix Multiply

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

SciMark

Computational Test: Dense LU Matrix Factorization

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

SciMark

Computational Test: Jacobi Successive Over-Relaxation

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

TSCP

AI Chess Performance

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

Himeno Benchmark

Poisson Pressure Solver

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

ebizzy

Phoronix Test Suite v6.8.0m3

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

Timed ImageMagick Compilation

Time To Compile

OpenBenchmarking.orgSeconds, Fewer Is BetterTimed ImageMagick Compilation 6.9.0Time To CompileGCC 5.4.0GCC 6.2.0GCC 7.0.0 20161127Clang 3.9.0Clang 4.0 SVN1428425670SE +/- 0.21, N = 3SE +/- 0.14, N = 3SE +/- 0.17, N = 3SE +/- 0.03, N = 3SE +/- 0.01, N = 343.8464.5251.8942.1241.86

Timed PHP Compilation

Time To Compile

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

C-Ray

Total Time

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

LAME MP3 Encoding

WAV To MP3

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

OpenSSL

RSA 4096-bit Performance

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

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 WriteGCC 5.4.0GCC 6.2.0GCC 7.0.0 20161127Clang 3.9.0Clang 4.0 SVN2K4K6K8K10KSE +/- 29.99, N = 3SE +/- 41.91, N = 3SE +/- 31.36, N = 3SE +/- 37.40, N = 3SE +/- 42.95, N = 37958.567946.487988.087932.288077.95-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 WriteGCC 5.4.0GCC 6.2.0GCC 7.0.0 20161127Clang 3.9.0Clang 4.0 SVN140280420560700SE +/- 5.49, N = 3SE +/- 3.56, N = 3SE +/- 2.77, N = 3SE +/- 10.71, N = 4SE +/- 4.79, N = 3627.37622.56636.23624.45656.41-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: Heavy Contention - Mode: Read Write

OpenBenchmarking.orgTPS, More Is BetterPostgreSQL pgbench 9.4.3Scaling: Buffer Test - Test: Heavy Contention - Mode: Read WriteGCC 5.4.0GCC 6.2.0GCC 7.0.0 20161127Clang 3.9.0Clang 4.0 SVN2K4K6K8K10KSE +/- 77.01, N = 3SE +/- 48.41, N = 3SE +/- 31.43, N = 3SE +/- 56.41, N = 3SE +/- 53.05, N = 38761.908683.698677.268694.848787.78-pthreads -mthreads-pthreads -mthreads1. (CC) gcc options: -fno-strict-aliasing -fwrapv -O3 -march=native -pthread -lpgcommon -lpgport -lpq -lpthread -lrt -lcrypt -ldl -lm

Redis

Test: GET

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

Redis

Test: SET

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


Phoronix Test Suite v10.8.4