GCC 8.1 vs. LLVM Clang 6.0 vs. AMD AOCC Compiler Benchmarking

AMD EPYC 7601 32-Core compiler testing on Ubuntu Linux for a future article on Phoronix.com.

HTML result view exported from: https://openbenchmarking.org/result/1805172-AR-EPYCAMDCO85&sro.

GCC 8.1 vs. LLVM Clang 6.0 vs. AMD AOCC Compiler BenchmarkingProcessorMotherboardChipsetMemoryDiskGraphicsMonitorNetworkOSKernelDesktopDisplay DriverCompilerFile-SystemScreen ResolutionGCC 7.3.0GCC 8.1.0LLVM Clang 6.0.0AMD AOCC 1.2AMD EPYC 7601 32-Core @ 2.20GHz (32 Cores / 64 Threads)TYAN B8026T70AE24HR (V0.05.B10 BIOS)AMD Family 17h129024MB280GB INTEL SSDPE21D280GAASPEED ASPEED FamilyVE228Broadcom Limited NetXtreme BCM5720 Gigabit PCIeUbuntu 18.044.15.0-20-generic (x86_64)GNOME Shell 3.28.1modesetting 1.19.6GCC 7.3.0ext41024x768GCC 8.1.0Clang 6.0.0-1ubuntu21920x1080Clang 6.0.0OpenBenchmarking.orgEnvironment Details- CXXFLAGS=-O3-march=native CFLAGS=-O3-march=nativeCompiler Details- GCC 7.3.0: --disable-multilib --enable-checking=release- GCC 8.1.0: --disable-multilib --enable-checking=release- AMD AOCC 1.2: Optimized build with assertions; Default target: x86_64-unknown-linux-gnu; Host CPU: znver1 Processor Details- Scaling Governor: acpi-cpufreq ondemandSecurity Details- __user pointer sanitization + Full AMD retpoline Protection

GCC 8.1 vs. LLVM Clang 6.0 vs. AMD AOCC Compiler Benchmarkingmpcbench: Multi-Precision Benchmarkhmmer: Pfam Database Searchfhourstones: Complex Connect-4 Solvingscimark2: Compositescimark2: Monte Carloscimark2: Fast Fourier Transformscimark2: Sparse Matrix Multiplyscimark2: Dense LU Matrix Factorizationscimark2: Jacobi Successive Over-Relaxationtscp: AI Chess Performancegraphics-magick: Blurgraphics-magick: Sharpengraphics-magick: Resizinggraphics-magick: HWB Color Spacegraphics-magick: Local Adaptive Thresholdinghimeno: Poisson Pressure Solverebizzy: build-php: Time To Compilec-ray: Total Timesmallpt: Global Illumination Renderer; 100 Samplesstockfish: Total Timeaobench: 2048 x 2048 - Total Timebullet: Raytestsbullet: 3000 Fallbullet: 1000 Stackbullet: 1000 Convexbullet: 136 Ragdollsbullet: Prim Trimeshbullet: Convex Trimeshencode-flac: WAV To FLACencode-mp3: WAV To MP3redis: LPOPredis: SADDredis: LPUSHredis: GETredis: SETnginx: Static Web Page ServingGCC 7.3.0GCC 8.1.0LLVM Clang 6.0.0AMD AOCC 1.261537.2310393.531858.13195.68223.592400.054783.601687.76861938153187182208111965.46111160965.452.924489150.373.335.085.916.393.051.121.4712.2611.321702037.041397462.961085511.331626714.961281816.4423721.2761337.7110636.071929.63556.36223.942461.824718.951687.128515451531881852071101000.45110920072.002.514445150.743.095.005.745.343.051.121.3212.5010.601731144.831437758.661120554.291703998.461295530.8323446.0459537.4810731.271889.53552.95222.582425.934815.411430.789244351291581441731131061.031118750100.544.46430453.463.185.095.935.303.141.101.3311.1312.261744348.961362120.291070777.001601951.581236762.2923822.4159377.6011111.671902.20552.72222.252551.804753.511430.73919189130157147172114931.681085189167.694.38423050.993.185.095.935.293.131.101.3111.2012.141803447.311426677.661121084.831685855.711283809.9123548.83OpenBenchmarking.org

GNU MPC

Multi-Precision Benchmark

OpenBenchmarking.orgGlobal Score, More Is BetterGNU MPC 1.1.0Multi-Precision BenchmarkAMD AOCC 1.2GCC 7.3.0GCC 8.1.0LLVM Clang 6.0.013002600390052006500SE +/- 53.33, N = 3SE +/- 8.82, N = 3SE +/- 21.86, N = 3SE +/- 31.80, N = 35937615361335953-lm-lm1. (CC) gcc options: -O3 -march=native -MT -MD -MP -MF

Timed HMMer Search

Pfam Database Search

OpenBenchmarking.orgSeconds, Fewer Is BetterTimed HMMer Search 2.3.2Pfam Database SearchAMD AOCC 1.2GCC 7.3.0GCC 8.1.0LLVM Clang 6.0.0246810SE +/- 0.03, N = 3SE +/- 0.05, N = 3SE +/- 0.01, N = 3SE +/- 0.12, N = 37.607.237.717.481. (CC) gcc options: -O3 -march=native -pthread -lhmmer -lsquid -lm

Fhourstones

Complex Connect-4 Solving

OpenBenchmarking.orgKpos / sec, More Is BetterFhourstones 3.1Complex Connect-4 SolvingAMD AOCC 1.2GCC 7.3.0GCC 8.1.0LLVM Clang 6.0.02K4K6K8K10KSE +/- 37.83, N = 3SE +/- 15.39, N = 3SE +/- 61.87, N = 3SE +/- 19.51, N = 311111.6710393.5310636.0710731.271. (CC) gcc options: -O3

SciMark

Computational Test: Composite

OpenBenchmarking.orgMflops, More Is BetterSciMark 2.0Computational Test: CompositeAMD AOCC 1.2GCC 7.3.0GCC 8.1.0LLVM Clang 6.0.0400800120016002000SE +/- 16.47, N = 3SE +/- 4.82, N = 3SE +/- 14.22, N = 3SE +/- 3.19, N = 31902.201858.131929.631889.531. (CC) gcc options: -O3 -march=native -lm

SciMark

Computational Test: Monte Carlo

OpenBenchmarking.orgMflops, More Is BetterSciMark 2.0Computational Test: Monte CarloAMD AOCC 1.2GCC 7.3.0GCC 8.1.0LLVM Clang 6.0.0120240360480600SE +/- 0.24, N = 3SE +/- 0.03, N = 3SE +/- 0.10, N = 3SE +/- 0.11, N = 3552.72195.68556.36552.951. (CC) gcc options: -O3 -march=native -lm

SciMark

Computational Test: Fast Fourier Transform

OpenBenchmarking.orgMflops, More Is BetterSciMark 2.0Computational Test: Fast Fourier TransformAMD AOCC 1.2GCC 7.3.0GCC 8.1.0LLVM Clang 6.0.050100150200250SE +/- 0.25, N = 3SE +/- 0.05, N = 3SE +/- 0.33, N = 3SE +/- 0.57, N = 3222.25223.59223.94222.581. (CC) gcc options: -O3 -march=native -lm

SciMark

Computational Test: Sparse Matrix Multiply

OpenBenchmarking.orgMflops, More Is BetterSciMark 2.0Computational Test: Sparse Matrix MultiplyAMD AOCC 1.2GCC 7.3.0GCC 8.1.0LLVM Clang 6.0.05001000150020002500SE +/- 14.61, N = 3SE +/- 10.04, N = 3SE +/- 11.25, N = 3SE +/- 17.46, N = 32551.802400.052461.822425.931. (CC) gcc options: -O3 -march=native -lm

SciMark

Computational Test: Dense LU Matrix Factorization

OpenBenchmarking.orgMflops, More Is BetterSciMark 2.0Computational Test: Dense LU Matrix FactorizationAMD AOCC 1.2GCC 7.3.0GCC 8.1.0LLVM Clang 6.0.010002000300040005000SE +/- 71.93, N = 3SE +/- 31.46, N = 3SE +/- 82.51, N = 3SE +/- 1.42, N = 34753.514783.604718.954815.411. (CC) gcc options: -O3 -march=native -lm

SciMark

Computational Test: Jacobi Successive Over-Relaxation

OpenBenchmarking.orgMflops, More Is BetterSciMark 2.0Computational Test: Jacobi Successive Over-RelaxationAMD AOCC 1.2GCC 7.3.0GCC 8.1.0LLVM Clang 6.0.0400800120016002000SE +/- 0.26, N = 3SE +/- 0.27, N = 3SE +/- 0.65, N = 3SE +/- 0.02, N = 31430.731687.761687.121430.781. (CC) gcc options: -O3 -march=native -lm

TSCP

AI Chess Performance

OpenBenchmarking.orgNodes Per Second, More Is BetterTSCP 1.81AI Chess PerformanceAMD AOCC 1.2GCC 7.3.0GCC 8.1.0LLVM Clang 6.0.0200K400K600K800K1000KSE +/- 306.40, N = 5SE +/- 426.59, N = 5SE +/- 768.11, N = 5SE +/- 310.60, N = 59191898619388515459244351. (CC) gcc options: -O3 -march=native

GraphicsMagick

Operation: Blur

OpenBenchmarking.orgIterations Per Minute, More Is BetterGraphicsMagick 1.3.28Operation: BlurAMD AOCC 1.2GCC 7.3.0GCC 8.1.0LLVM Clang 6.0.0306090120150130153153129-lomp-ldl-ldl-lomp1. (CC) gcc options: -fopenmp -O3 -march=native -pthread -lXext -lSM -lICE -lX11 -lz -lm -lpthread

GraphicsMagick

Operation: Sharpen

OpenBenchmarking.orgIterations Per Minute, More Is BetterGraphicsMagick 1.3.28Operation: SharpenAMD AOCC 1.2GCC 7.3.0GCC 8.1.0LLVM Clang 6.0.04080120160200SE +/- 0.33, N = 3SE +/- 0.33, N = 3SE +/- 0.67, N = 3157187188158-lomp-ldl-ldl-lomp1. (CC) gcc options: -fopenmp -O3 -march=native -pthread -lXext -lSM -lICE -lX11 -lz -lm -lpthread

GraphicsMagick

Operation: Resizing

OpenBenchmarking.orgIterations Per Minute, More Is BetterGraphicsMagick 1.3.28Operation: ResizingAMD AOCC 1.2GCC 7.3.0GCC 8.1.0LLVM Clang 6.0.04080120160200SE +/- 1.45, N = 3SE +/- 1.00, N = 3SE +/- 1.20, N = 3SE +/- 0.67, N = 3147182185144-lomp-ldl-ldl-lomp1. (CC) gcc options: -fopenmp -O3 -march=native -pthread -lXext -lSM -lICE -lX11 -lz -lm -lpthread

GraphicsMagick

Operation: HWB Color Space

OpenBenchmarking.orgIterations Per Minute, More Is BetterGraphicsMagick 1.3.28Operation: HWB Color SpaceAMD AOCC 1.2GCC 7.3.0GCC 8.1.0LLVM Clang 6.0.050100150200250SE +/- 0.33, N = 3172208207173-lomp-ldl-ldl-lomp1. (CC) gcc options: -fopenmp -O3 -march=native -pthread -lXext -lSM -lICE -lX11 -lz -lm -lpthread

GraphicsMagick

Operation: Local Adaptive Thresholding

OpenBenchmarking.orgIterations Per Minute, More Is BetterGraphicsMagick 1.3.28Operation: Local Adaptive ThresholdingAMD AOCC 1.2GCC 7.3.0GCC 8.1.0LLVM Clang 6.0.0306090120150114111110113-lomp-ldl-ldl-lomp1. (CC) gcc options: -fopenmp -O3 -march=native -pthread -lXext -lSM -lICE -lX11 -lz -lm -lpthread

Himeno Benchmark

Poisson Pressure Solver

OpenBenchmarking.orgMFLOPS, More Is BetterHimeno Benchmark 3.0Poisson Pressure SolverAMD AOCC 1.2GCC 7.3.0GCC 8.1.0LLVM Clang 6.0.02004006008001000SE +/- 1.16, N = 3SE +/- 2.06, N = 3SE +/- 2.35, N = 3SE +/- 0.92, N = 3931.68965.461000.451061.031. (CC) gcc options: -O3 -march=native -mavx2

ebizzy

OpenBenchmarking.orgRecords/s, More Is Betterebizzy 0.3AMD AOCC 1.2GCC 7.3.0GCC 8.1.0LLVM Clang 6.0.0200K400K600K800K1000KSE +/- 16471.67, N = 5SE +/- 36638.31, N = 6SE +/- 21678.08, N = 3SE +/- 19995.15, N = 610851891111609110920011187501. (CC) gcc options: -pthread -lpthread -O3 -march=native

Timed PHP Compilation

Time To Compile

OpenBenchmarking.orgSeconds, Fewer Is BetterTimed PHP Compilation 7.1.9Time To CompileAMD AOCC 1.2GCC 7.3.0GCC 8.1.0LLVM Clang 6.0.04080120160200SE +/- 0.29, N = 3SE +/- 0.81, N = 3SE +/- 0.71, N = 3SE +/- 0.19, N = 3167.6965.4572.00100.541. (CC) gcc options: -O3 -march=native -pedantic -ldl -lz -lm

C-Ray

Total Time

OpenBenchmarking.orgSeconds, Fewer Is BetterC-Ray 1.1Total TimeAMD AOCC 1.2GCC 7.3.0GCC 8.1.0LLVM Clang 6.0.01.00352.0073.01054.0145.0175SE +/- 0.00, N = 3SE +/- 0.02, N = 3SE +/- 0.01, N = 3SE +/- 0.02, N = 34.382.922.514.461. (CC) gcc options: -lm -lpthread -O3 -march=native

Smallpt

Global Illumination Renderer; 100 Samples

OpenBenchmarking.orgSeconds, Fewer Is BetterSmallpt 1.0Global Illumination Renderer; 100 SamplesGCC 7.3.0GCC 8.1.00.91.82.73.64.5SE +/- 0.17, N = 6SE +/- 0.22, N = 6441. (CXX) g++ options: -fopenmp -O3 -march=native

Stockfish

Total Time

OpenBenchmarking.orgms, Fewer Is BetterStockfish 2014-11-26Total TimeAMD AOCC 1.2GCC 7.3.0GCC 8.1.0LLVM Clang 6.0.010002000300040005000SE +/- 119.39, N = 6SE +/- 2.91, N = 3SE +/- 1.45, N = 34230489144514304-flto-flto1. (CXX) g++ options: -lpthread -O3 -march=native -fno-exceptions -fno-rtti -ansi -pedantic -msse -msse3 -mpopcnt

AOBench

Size: 2048 x 2048 - Total Time

OpenBenchmarking.orgSeconds, Fewer Is BetterAOBenchSize: 2048 x 2048 - Total TimeAMD AOCC 1.2GCC 7.3.0GCC 8.1.0LLVM Clang 6.0.01224364860SE +/- 0.00, N = 3SE +/- 0.01, N = 3SE +/- 0.00, N = 3SE +/- 0.01, N = 350.9950.3750.7453.461. (CC) gcc options: -lm -O3 -march=native

Bullet Physics Engine

Test: Raytests

OpenBenchmarking.orgSeconds, Fewer Is BetterBullet Physics Engine 2.81Test: RaytestsAMD AOCC 1.2GCC 7.3.0GCC 8.1.0LLVM Clang 6.0.00.74931.49862.24792.99723.7465SE +/- 0.00, N = 3SE +/- 0.00, N = 3SE +/- 0.00, N = 3SE +/- 0.00, N = 33.183.333.093.18-lglut -lGL -lGLU-lglut -lGL -lGLU1. (CXX) g++ options: -O3 -march=native -rdynamic

Bullet Physics Engine

Test: 3000 Fall

OpenBenchmarking.orgSeconds, Fewer Is BetterBullet Physics Engine 2.81Test: 3000 FallAMD AOCC 1.2GCC 7.3.0GCC 8.1.0LLVM Clang 6.0.01.14532.29063.43594.58125.7265SE +/- 0.01, N = 3SE +/- 0.00, N = 3SE +/- 0.00, N = 3SE +/- 0.00, N = 35.095.085.005.09-lglut -lGL -lGLU-lglut -lGL -lGLU1. (CXX) g++ options: -O3 -march=native -rdynamic

Bullet Physics Engine

Test: 1000 Stack

OpenBenchmarking.orgSeconds, Fewer Is BetterBullet Physics Engine 2.81Test: 1000 StackAMD AOCC 1.2GCC 7.3.0GCC 8.1.0LLVM Clang 6.0.01.33432.66864.00295.33726.6715SE +/- 0.01, N = 3SE +/- 0.00, N = 3SE +/- 0.01, N = 3SE +/- 0.01, N = 35.935.915.745.93-lglut -lGL -lGLU-lglut -lGL -lGLU1. (CXX) g++ options: -O3 -march=native -rdynamic

Bullet Physics Engine

Test: 1000 Convex

OpenBenchmarking.orgSeconds, Fewer Is BetterBullet Physics Engine 2.81Test: 1000 ConvexAMD AOCC 1.2GCC 7.3.0GCC 8.1.0LLVM Clang 6.0.0246810SE +/- 0.03, N = 3SE +/- 0.02, N = 3SE +/- 0.00, N = 3SE +/- 0.00, N = 35.296.395.345.30-lglut -lGL -lGLU-lglut -lGL -lGLU1. (CXX) g++ options: -O3 -march=native -rdynamic

Bullet Physics Engine

Test: 136 Ragdolls

OpenBenchmarking.orgSeconds, Fewer Is BetterBullet Physics Engine 2.81Test: 136 RagdollsAMD AOCC 1.2GCC 7.3.0GCC 8.1.0LLVM Clang 6.0.00.70651.4132.11952.8263.5325SE +/- 0.00, N = 3SE +/- 0.00, N = 3SE +/- 0.00, N = 3SE +/- 0.00, N = 33.133.053.053.14-lglut -lGL -lGLU-lglut -lGL -lGLU1. (CXX) g++ options: -O3 -march=native -rdynamic

Bullet Physics Engine

Test: Prim Trimesh

OpenBenchmarking.orgSeconds, Fewer Is BetterBullet Physics Engine 2.81Test: Prim TrimeshAMD AOCC 1.2GCC 7.3.0GCC 8.1.0LLVM Clang 6.0.00.2520.5040.7561.0081.26SE +/- 0.00, N = 3SE +/- 0.00, N = 3SE +/- 0.00, N = 3SE +/- 0.00, N = 31.101.121.121.10-lglut -lGL -lGLU-lglut -lGL -lGLU1. (CXX) g++ options: -O3 -march=native -rdynamic

Bullet Physics Engine

Test: Convex Trimesh

OpenBenchmarking.orgSeconds, Fewer Is BetterBullet Physics Engine 2.81Test: Convex TrimeshAMD AOCC 1.2GCC 7.3.0GCC 8.1.0LLVM Clang 6.0.00.33080.66160.99241.32321.654SE +/- 0.00, N = 3SE +/- 0.00, N = 3SE +/- 0.00, N = 3SE +/- 0.00, N = 31.311.471.321.33-lglut -lGL -lGLU-lglut -lGL -lGLU1. (CXX) g++ options: -O3 -march=native -rdynamic

FLAC Audio Encoding

WAV To FLAC

OpenBenchmarking.orgSeconds, Fewer Is BetterFLAC Audio Encoding 1.3.2WAV To FLACAMD AOCC 1.2GCC 7.3.0GCC 8.1.0LLVM Clang 6.0.03691215SE +/- 0.01, N = 5SE +/- 0.01, N = 5SE +/- 0.05, N = 5SE +/- 0.01, N = 511.2012.2612.5011.13-fvisibility=hidden-fvisibility=hidden1. (CXX) g++ options: -O3 -march=native -lm

LAME MP3 Encoding

WAV To MP3

OpenBenchmarking.orgSeconds, Fewer Is BetterLAME MP3 Encoding 3.100WAV To MP3AMD AOCC 1.2GCC 7.3.0GCC 8.1.0LLVM Clang 6.0.03691215SE +/- 0.00, N = 3SE +/- 0.04, N = 3SE +/- 0.00, N = 3SE +/- 0.01, N = 312.1411.3210.6012.26-pipe-pipe1. (CC) gcc options: -O3 -march=native -lm

Redis

Test: LPOP

OpenBenchmarking.orgRequests Per Second, More Is BetterRedis 4.0.8Test: LPOPAMD AOCC 1.2GCC 7.3.0GCC 8.1.0LLVM Clang 6.0.0400K800K1200K1600K2000KSE +/- 46995.15, N = 6SE +/- 18193.07, N = 3SE +/- 6081.54, N = 3SE +/- 30575.95, N = 61803447.311702037.041731144.831744348.961. (CC) gcc options: -ggdb -rdynamic -lm -ldl -pthread

Redis

Test: SADD

OpenBenchmarking.orgRequests Per Second, More Is BetterRedis 4.0.8Test: SADDAMD AOCC 1.2GCC 7.3.0GCC 8.1.0LLVM Clang 6.0.0300K600K900K1200K1500KSE +/- 10103.96, N = 3SE +/- 10723.47, N = 3SE +/- 14427.84, N = 3SE +/- 15278.14, N = 31426677.661397462.961437758.661362120.291. (CC) gcc options: -ggdb -rdynamic -lm -ldl -pthread

Redis

Test: LPUSH

OpenBenchmarking.orgRequests Per Second, More Is BetterRedis 4.0.8Test: LPUSHAMD AOCC 1.2GCC 7.3.0GCC 8.1.0LLVM Clang 6.0.0200K400K600K800K1000KSE +/- 16997.05, N = 6SE +/- 8347.62, N = 3SE +/- 20454.85, N = 3SE +/- 7769.06, N = 31121084.831085511.331120554.291070777.001. (CC) gcc options: -ggdb -rdynamic -lm -ldl -pthread

Redis

Test: GET

OpenBenchmarking.orgRequests Per Second, More Is BetterRedis 4.0.8Test: GETAMD AOCC 1.2GCC 7.3.0GCC 8.1.0LLVM Clang 6.0.0400K800K1200K1600K2000KSE +/- 19714.35, N = 3SE +/- 23677.82, N = 3SE +/- 18842.01, N = 3SE +/- 13904.74, N = 31685855.711626714.961703998.461601951.581. (CC) gcc options: -ggdb -rdynamic -lm -ldl -pthread

Redis

Test: SET

OpenBenchmarking.orgRequests Per Second, More Is BetterRedis 4.0.8Test: SETAMD AOCC 1.2GCC 7.3.0GCC 8.1.0LLVM Clang 6.0.0300K600K900K1200K1500KSE +/- 20211.45, N = 4SE +/- 20900.08, N = 4SE +/- 11251.03, N = 3SE +/- 20475.77, N = 31283809.911281816.441295530.831236762.291. (CC) gcc options: -ggdb -rdynamic -lm -ldl -pthread

NGINX Benchmark

Static Web Page Serving

OpenBenchmarking.orgRequests Per Second, More Is BetterNGINX Benchmark 1.9.9Static Web Page ServingAMD AOCC 1.2GCC 7.3.0GCC 8.1.0LLVM Clang 6.0.05K10K15K20K25KSE +/- 32.89, N = 3SE +/- 74.40, N = 3SE +/- 192.31, N = 3SE +/- 20.42, N = 323548.8323721.2723446.0423822.411. (CC) gcc options: -lpthread -lcrypt -lz -O3 -march=native


Phoronix Test Suite v10.8.4