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.

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 BenchmarkGCC 7.3.0GCC 8.1.0LLVM Clang 6.0.0AMD AOCC 1.213002600390052006500SE +/- 8.82, N = 3SE +/- 21.86, N = 3SE +/- 31.80, N = 3SE +/- 53.33, N = 36153613359535937-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 SearchGCC 7.3.0GCC 8.1.0LLVM Clang 6.0.0AMD AOCC 1.2246810SE +/- 0.05, N = 3SE +/- 0.01, N = 3SE +/- 0.12, N = 3SE +/- 0.03, N = 37.237.717.487.601. (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 SolvingGCC 7.3.0GCC 8.1.0LLVM Clang 6.0.0AMD AOCC 1.22K4K6K8K10KSE +/- 15.39, N = 3SE +/- 61.87, N = 3SE +/- 19.51, N = 3SE +/- 37.83, N = 310393.5310636.0710731.2711111.671. (CC) gcc options: -O3

SciMark

Computational Test: Composite

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

SciMark

Computational Test: Monte Carlo

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

SciMark

Computational Test: Fast Fourier Transform

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

SciMark

Computational Test: Sparse Matrix Multiply

OpenBenchmarking.orgMflops, More Is BetterSciMark 2.0Computational Test: Sparse Matrix MultiplyGCC 7.3.0GCC 8.1.0LLVM Clang 6.0.0AMD AOCC 1.25001000150020002500SE +/- 10.04, N = 3SE +/- 11.25, N = 3SE +/- 17.46, N = 3SE +/- 14.61, N = 32400.052461.822425.932551.801. (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 FactorizationGCC 7.3.0GCC 8.1.0LLVM Clang 6.0.0AMD AOCC 1.210002000300040005000SE +/- 31.46, N = 3SE +/- 82.51, N = 3SE +/- 1.42, N = 3SE +/- 71.93, N = 34783.604718.954815.414753.511. (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-RelaxationGCC 7.3.0GCC 8.1.0LLVM Clang 6.0.0AMD AOCC 1.2400800120016002000SE +/- 0.27, N = 3SE +/- 0.65, N = 3SE +/- 0.02, N = 3SE +/- 0.26, N = 31687.761687.121430.781430.731. (CC) gcc options: -O3 -march=native -lm

TSCP

AI Chess Performance

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

GraphicsMagick

Operation: Blur

OpenBenchmarking.orgIterations Per Minute, More Is BetterGraphicsMagick 1.3.28Operation: BlurGCC 7.3.0GCC 8.1.0LLVM Clang 6.0.0AMD AOCC 1.2306090120150153153129130-ldl-ldl-lomp-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: SharpenGCC 7.3.0GCC 8.1.0LLVM Clang 6.0.0AMD AOCC 1.24080120160200SE +/- 0.33, N = 3SE +/- 0.67, N = 3SE +/- 0.33, N = 3187188158157-ldl-ldl-lomp-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: ResizingGCC 7.3.0GCC 8.1.0LLVM Clang 6.0.0AMD AOCC 1.24080120160200SE +/- 1.00, N = 3SE +/- 1.20, N = 3SE +/- 0.67, N = 3SE +/- 1.45, N = 3182185144147-ldl-ldl-lomp-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 SpaceGCC 7.3.0GCC 8.1.0LLVM Clang 6.0.0AMD AOCC 1.250100150200250SE +/- 0.33, N = 3208207173172-ldl-ldl-lomp-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 ThresholdingGCC 7.3.0GCC 8.1.0LLVM Clang 6.0.0AMD AOCC 1.2306090120150111110113114-ldl-ldl-lomp-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 SolverGCC 7.3.0GCC 8.1.0LLVM Clang 6.0.0AMD AOCC 1.22004006008001000SE +/- 2.06, N = 3SE +/- 2.35, N = 3SE +/- 0.92, N = 3SE +/- 1.16, N = 3965.461000.451061.03931.681. (CC) gcc options: -O3 -march=native -mavx2

ebizzy

OpenBenchmarking.orgRecords/s, More Is Betterebizzy 0.3GCC 7.3.0GCC 8.1.0LLVM Clang 6.0.0AMD AOCC 1.2200K400K600K800K1000KSE +/- 36638.31, N = 6SE +/- 21678.08, N = 3SE +/- 19995.15, N = 6SE +/- 16471.67, N = 511116091109200111875010851891. (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 CompileGCC 7.3.0GCC 8.1.0LLVM Clang 6.0.0AMD AOCC 1.24080120160200SE +/- 0.81, N = 3SE +/- 0.71, N = 3SE +/- 0.19, N = 3SE +/- 0.29, N = 365.4572.00100.54167.691. (CC) gcc options: -O3 -march=native -pedantic -ldl -lz -lm

C-Ray

Total Time

OpenBenchmarking.orgSeconds, Fewer Is BetterC-Ray 1.1Total TimeGCC 7.3.0GCC 8.1.0LLVM Clang 6.0.0AMD AOCC 1.21.00352.0073.01054.0145.0175SE +/- 0.02, N = 3SE +/- 0.01, N = 3SE +/- 0.02, N = 3SE +/- 0.00, N = 32.922.514.464.381. (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 TimeGCC 7.3.0GCC 8.1.0LLVM Clang 6.0.0AMD AOCC 1.210002000300040005000SE +/- 119.39, N = 6SE +/- 2.91, N = 3SE +/- 1.45, N = 34891445143044230-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 TimeGCC 7.3.0GCC 8.1.0LLVM Clang 6.0.0AMD AOCC 1.21224364860SE +/- 0.01, N = 3SE +/- 0.00, N = 3SE +/- 0.01, N = 3SE +/- 0.00, N = 350.3750.7453.4650.991. (CC) gcc options: -lm -O3 -march=native

Bullet Physics Engine

Test: Raytests

OpenBenchmarking.orgSeconds, Fewer Is BetterBullet Physics Engine 2.81Test: RaytestsGCC 7.3.0GCC 8.1.0LLVM Clang 6.0.0AMD AOCC 1.20.74931.49862.24792.99723.7465SE +/- 0.00, N = 3SE +/- 0.00, N = 3SE +/- 0.00, N = 3SE +/- 0.00, N = 33.333.093.183.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 FallGCC 7.3.0GCC 8.1.0LLVM Clang 6.0.0AMD AOCC 1.21.14532.29063.43594.58125.7265SE +/- 0.00, N = 3SE +/- 0.00, N = 3SE +/- 0.00, N = 3SE +/- 0.01, N = 35.085.005.095.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 StackGCC 7.3.0GCC 8.1.0LLVM Clang 6.0.0AMD AOCC 1.21.33432.66864.00295.33726.6715SE +/- 0.00, N = 3SE +/- 0.01, N = 3SE +/- 0.01, N = 3SE +/- 0.01, N = 35.915.745.935.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 ConvexGCC 7.3.0GCC 8.1.0LLVM Clang 6.0.0AMD AOCC 1.2246810SE +/- 0.02, N = 3SE +/- 0.00, N = 3SE +/- 0.00, N = 3SE +/- 0.03, N = 36.395.345.305.29-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 RagdollsGCC 7.3.0GCC 8.1.0LLVM Clang 6.0.0AMD AOCC 1.20.70651.4132.11952.8263.5325SE +/- 0.00, N = 3SE +/- 0.00, N = 3SE +/- 0.00, N = 3SE +/- 0.00, N = 33.053.053.143.13-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 TrimeshGCC 7.3.0GCC 8.1.0LLVM Clang 6.0.0AMD AOCC 1.20.2520.5040.7561.0081.26SE +/- 0.00, N = 3SE +/- 0.00, N = 3SE +/- 0.00, N = 3SE +/- 0.00, N = 31.121.121.101.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 TrimeshGCC 7.3.0GCC 8.1.0LLVM Clang 6.0.0AMD AOCC 1.20.33080.66160.99241.32321.654SE +/- 0.00, N = 3SE +/- 0.00, N = 3SE +/- 0.00, N = 3SE +/- 0.00, N = 31.471.321.331.31-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 FLACGCC 7.3.0GCC 8.1.0LLVM Clang 6.0.0AMD AOCC 1.23691215SE +/- 0.01, N = 5SE +/- 0.05, N = 5SE +/- 0.01, N = 5SE +/- 0.01, N = 512.2612.5011.1311.20-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 MP3GCC 7.3.0GCC 8.1.0LLVM Clang 6.0.0AMD AOCC 1.23691215SE +/- 0.04, N = 3SE +/- 0.00, N = 3SE +/- 0.01, N = 3SE +/- 0.00, N = 311.3210.6012.2612.14-pipe-pipe1. (CC) gcc options: -O3 -march=native -lm

Redis

Test: LPOP

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

Redis

Test: SADD

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

Redis

Test: LPUSH

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

Redis

Test: GET

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

Redis

Test: SET

OpenBenchmarking.orgRequests Per Second, More Is BetterRedis 4.0.8Test: SETGCC 7.3.0GCC 8.1.0LLVM Clang 6.0.0AMD AOCC 1.2300K600K900K1200K1500KSE +/- 20900.08, N = 4SE +/- 11251.03, N = 3SE +/- 20475.77, N = 3SE +/- 20211.45, N = 41281816.441295530.831236762.291283809.911. (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 ServingGCC 7.3.0GCC 8.1.0LLVM Clang 6.0.0AMD AOCC 1.25K10K15K20K25KSE +/- 74.40, N = 3SE +/- 192.31, N = 3SE +/- 20.42, N = 3SE +/- 32.89, N = 323721.2723446.0423822.4123548.831. (CC) gcc options: -lpthread -lcrypt -lz -O3 -march=native


Phoronix Test Suite v10.8.4