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. GCC 7.3.0: Processor: AMD EPYC 7601 32-Core @ 2.20GHz (32 Cores / 64 Threads), Motherboard: TYAN B8026T70AE24HR (V0.05.B10 BIOS), Chipset: AMD Family 17h, Memory: 129024MB, Disk: 280GB INTEL SSDPE21D280GA, Graphics: ASPEED ASPEED Family, Monitor: VE228, Network: Broadcom Limited NetXtreme BCM5720 Gigabit PCIe OS: Ubuntu 18.04, Kernel: 4.15.0-20-generic (x86_64), Desktop: GNOME Shell 3.28.1, Display Driver: modesetting 1.19.6, Compiler: GCC 7.3.0, File-System: ext4, Screen Resolution: 1024x768 GCC 8.1.0: Processor: AMD EPYC 7601 32-Core @ 2.20GHz (32 Cores / 64 Threads), Motherboard: TYAN B8026T70AE24HR (V0.05.B10 BIOS), Chipset: AMD Family 17h, Memory: 129024MB, Disk: 280GB INTEL SSDPE21D280GA, Graphics: ASPEED ASPEED Family, Monitor: VE228, Network: Broadcom Limited NetXtreme BCM5720 Gigabit PCIe OS: Ubuntu 18.04, Kernel: 4.15.0-20-generic (x86_64), Desktop: GNOME Shell 3.28.1, Display Driver: modesetting 1.19.6, Compiler: GCC 8.1.0, File-System: ext4, Screen Resolution: 1024x768 LLVM Clang 6.0.0: Processor: AMD EPYC 7601 32-Core @ 2.20GHz (32 Cores / 64 Threads), Motherboard: TYAN B8026T70AE24HR (V0.05.B10 BIOS), Chipset: AMD Family 17h, Memory: 129024MB, Disk: 280GB INTEL SSDPE21D280GA, Graphics: ASPEED ASPEED Family, Monitor: VE228, Network: Broadcom Limited NetXtreme BCM5720 Gigabit PCIe OS: Ubuntu 18.04, Kernel: 4.15.0-20-generic (x86_64), Desktop: GNOME Shell 3.28.1, Display Driver: modesetting 1.19.6, Compiler: Clang 6.0.0-1ubuntu2, File-System: ext4, Screen Resolution: 1920x1080 AMD AOCC 1.2: Processor: AMD EPYC 7601 32-Core @ 2.20GHz (32 Cores / 64 Threads), Motherboard: TYAN B8026T70AE24HR (V0.05.B10 BIOS), Chipset: AMD Family 17h, Memory: 129024MB, Disk: 280GB INTEL SSDPE21D280GA, Graphics: ASPEED ASPEED Family, Monitor: VE228, Network: Broadcom Limited NetXtreme BCM5720 Gigabit PCIe OS: Ubuntu 18.04, Kernel: 4.15.0-20-generic (x86_64), Desktop: GNOME Shell 3.28.1, Display Driver: modesetting 1.19.6, Compiler: Clang 6.0.0, File-System: ext4, Screen Resolution: 1920x1080 GNU MPC 1.1.0 Multi-Precision Benchmark Global Score > Higher Is Better GCC 7.3.0 ........ 6153 |====================================================== GCC 8.1.0 ........ 6133 |====================================================== LLVM Clang 6.0.0 . 5953 |==================================================== AMD AOCC 1.2 ..... 5937 |==================================================== Timed HMMer Search 2.3.2 Pfam Database Search Seconds < Lower Is Better GCC 7.3.0 ........ 7.23 |=================================================== GCC 8.1.0 ........ 7.71 |====================================================== LLVM Clang 6.0.0 . 7.48 |==================================================== AMD AOCC 1.2 ..... 7.60 |===================================================== Fhourstones 3.1 Complex Connect-4 Solving Kpos / sec > Higher Is Better GCC 7.3.0 ........ 10393.53 |=============================================== GCC 8.1.0 ........ 10636.07 |================================================ LLVM Clang 6.0.0 . 10731.27 |================================================ AMD AOCC 1.2 ..... 11111.67 |================================================== SciMark 2.0 Computational Test: Composite Mflops > Higher Is Better GCC 7.3.0 ........ 1858.13 |================================================= GCC 8.1.0 ........ 1929.63 |=================================================== LLVM Clang 6.0.0 . 1889.53 |================================================== AMD AOCC 1.2 ..... 1902.20 |================================================== SciMark 2.0 Computational Test: Monte Carlo Mflops > Higher Is Better GCC 7.3.0 ........ 195.68 |================== GCC 8.1.0 ........ 556.36 |==================================================== LLVM Clang 6.0.0 . 552.95 |==================================================== AMD AOCC 1.2 ..... 552.72 |==================================================== SciMark 2.0 Computational Test: Fast Fourier Transform Mflops > Higher Is Better GCC 7.3.0 ........ 223.59 |==================================================== GCC 8.1.0 ........ 223.94 |==================================================== LLVM Clang 6.0.0 . 222.58 |==================================================== AMD AOCC 1.2 ..... 222.25 |==================================================== SciMark 2.0 Computational Test: Sparse Matrix Multiply Mflops > Higher Is Better GCC 7.3.0 ........ 2400.05 |================================================ GCC 8.1.0 ........ 2461.82 |================================================= LLVM Clang 6.0.0 . 2425.93 |================================================ AMD AOCC 1.2 ..... 2551.80 |=================================================== SciMark 2.0 Computational Test: Dense LU Matrix Factorization Mflops > Higher Is Better GCC 7.3.0 ........ 4783.60 |=================================================== GCC 8.1.0 ........ 4718.95 |================================================== LLVM Clang 6.0.0 . 4815.41 |=================================================== AMD AOCC 1.2 ..... 4753.51 |================================================== SciMark 2.0 Computational Test: Jacobi Successive Over-Relaxation Mflops > Higher Is Better GCC 7.3.0 ........ 1687.76 |=================================================== GCC 8.1.0 ........ 1687.12 |=================================================== LLVM Clang 6.0.0 . 1430.78 |=========================================== AMD AOCC 1.2 ..... 1430.73 |=========================================== TSCP 1.81 AI Chess Performance Nodes Per Second > Higher Is Better GCC 7.3.0 ........ 861938 |================================================ GCC 8.1.0 ........ 851545 |================================================ LLVM Clang 6.0.0 . 924435 |==================================================== AMD AOCC 1.2 ..... 919189 |==================================================== GraphicsMagick 1.3.28 Operation: Blur Iterations Per Minute > Higher Is Better GCC 7.3.0 ........ 153 |======================================================= GCC 8.1.0 ........ 153 |======================================================= LLVM Clang 6.0.0 . 129 |============================================== AMD AOCC 1.2 ..... 130 |=============================================== GraphicsMagick 1.3.28 Operation: Sharpen Iterations Per Minute > Higher Is Better GCC 7.3.0 ........ 187 |======================================================= GCC 8.1.0 ........ 188 |======================================================= LLVM Clang 6.0.0 . 158 |============================================== AMD AOCC 1.2 ..... 157 |============================================== GraphicsMagick 1.3.28 Operation: Resizing Iterations Per Minute > Higher Is Better GCC 7.3.0 ........ 182 |====================================================== GCC 8.1.0 ........ 185 |======================================================= LLVM Clang 6.0.0 . 144 |=========================================== AMD AOCC 1.2 ..... 147 |============================================ GraphicsMagick 1.3.28 Operation: HWB Color Space Iterations Per Minute > Higher Is Better GCC 7.3.0 ........ 208 |======================================================= GCC 8.1.0 ........ 207 |======================================================= LLVM Clang 6.0.0 . 173 |============================================== AMD AOCC 1.2 ..... 172 |============================================= GraphicsMagick 1.3.28 Operation: Local Adaptive Thresholding Iterations Per Minute > Higher Is Better GCC 7.3.0 ........ 111 |====================================================== GCC 8.1.0 ........ 110 |===================================================== LLVM Clang 6.0.0 . 113 |======================================================= AMD AOCC 1.2 ..... 114 |======================================================= Himeno Benchmark 3.0 Poisson Pressure Solver MFLOPS > Higher Is Better GCC 7.3.0 ........ 965.46 |============================================== GCC 8.1.0 ........ 1000.45 |================================================ LLVM Clang 6.0.0 . 1061.03 |=================================================== AMD AOCC 1.2 ..... 931.68 |============================================= ebizzy 0.3 Records/s > Higher Is Better GCC 7.3.0 ........ 1111609 |=================================================== GCC 8.1.0 ........ 1109200 |=================================================== LLVM Clang 6.0.0 . 1118750 |=================================================== AMD AOCC 1.2 ..... 1085189 |================================================= Timed PHP Compilation 7.1.9 Time To Compile Seconds < Lower Is Better GCC 7.3.0 ........ 65.45 |==================== GCC 8.1.0 ........ 72.00 |====================== LLVM Clang 6.0.0 . 100.54 |=============================== AMD AOCC 1.2 ..... 167.69 |==================================================== C-Ray 1.1 Total Time Seconds < Lower Is Better GCC 7.3.0 ........ 2.92 |=================================== GCC 8.1.0 ........ 2.51 |============================== LLVM Clang 6.0.0 . 4.46 |====================================================== AMD AOCC 1.2 ..... 4.38 |===================================================== Smallpt 1.0 Global Illumination Renderer; 100 Samples Seconds < Lower Is Better GCC 7.3.0 . 4 |================================================================ GCC 8.1.0 . 4 |================================================================ Stockfish 2014-11-26 Total Time ms < Lower Is Better GCC 7.3.0 ........ 4891 |====================================================== GCC 8.1.0 ........ 4451 |================================================= LLVM Clang 6.0.0 . 4304 |================================================ AMD AOCC 1.2 ..... 4230 |=============================================== AOBench Size: 2048 x 2048 - Total Time Seconds < Lower Is Better GCC 7.3.0 ........ 50.37 |================================================== GCC 8.1.0 ........ 50.74 |================================================== LLVM Clang 6.0.0 . 53.46 |===================================================== AMD AOCC 1.2 ..... 50.99 |=================================================== Bullet Physics Engine 2.81 Test: Raytests Seconds < Lower Is Better GCC 7.3.0 ........ 3.33 |====================================================== GCC 8.1.0 ........ 3.09 |================================================== LLVM Clang 6.0.0 . 3.18 |==================================================== AMD AOCC 1.2 ..... 3.18 |==================================================== Bullet Physics Engine 2.81 Test: 3000 Fall Seconds < Lower Is Better GCC 7.3.0 ........ 5.08 |====================================================== GCC 8.1.0 ........ 5.00 |===================================================== LLVM Clang 6.0.0 . 5.09 |====================================================== AMD AOCC 1.2 ..... 5.09 |====================================================== Bullet Physics Engine 2.81 Test: 1000 Stack Seconds < Lower Is Better GCC 7.3.0 ........ 5.91 |====================================================== GCC 8.1.0 ........ 5.74 |==================================================== LLVM Clang 6.0.0 . 5.93 |====================================================== AMD AOCC 1.2 ..... 5.93 |====================================================== Bullet Physics Engine 2.81 Test: 1000 Convex Seconds < Lower Is Better GCC 7.3.0 ........ 6.39 |====================================================== GCC 8.1.0 ........ 5.34 |============================================= LLVM Clang 6.0.0 . 5.30 |============================================= AMD AOCC 1.2 ..... 5.29 |============================================= Bullet Physics Engine 2.81 Test: 136 Ragdolls Seconds < Lower Is Better GCC 7.3.0 ........ 3.05 |==================================================== GCC 8.1.0 ........ 3.05 |==================================================== LLVM Clang 6.0.0 . 3.14 |====================================================== AMD AOCC 1.2 ..... 3.13 |====================================================== Bullet Physics Engine 2.81 Test: Prim Trimesh Seconds < Lower Is Better GCC 7.3.0 ........ 1.12 |====================================================== GCC 8.1.0 ........ 1.12 |====================================================== LLVM Clang 6.0.0 . 1.10 |===================================================== AMD AOCC 1.2 ..... 1.10 |===================================================== Bullet Physics Engine 2.81 Test: Convex Trimesh Seconds < Lower Is Better GCC 7.3.0 ........ 1.47 |====================================================== GCC 8.1.0 ........ 1.32 |================================================ LLVM Clang 6.0.0 . 1.33 |================================================= AMD AOCC 1.2 ..... 1.31 |================================================ FLAC Audio Encoding 1.3.2 WAV To FLAC Seconds < Lower Is Better GCC 7.3.0 ........ 12.26 |==================================================== GCC 8.1.0 ........ 12.50 |===================================================== LLVM Clang 6.0.0 . 11.13 |=============================================== AMD AOCC 1.2 ..... 11.20 |=============================================== LAME MP3 Encoding 3.100 WAV To MP3 Seconds < Lower Is Better GCC 7.3.0 ........ 11.32 |================================================= GCC 8.1.0 ........ 10.60 |============================================== LLVM Clang 6.0.0 . 12.26 |===================================================== AMD AOCC 1.2 ..... 12.14 |==================================================== Redis 4.0.8 Test: LPOP Requests Per Second > Higher Is Better GCC 7.3.0 ........ 1702037.04 |============================================= GCC 8.1.0 ........ 1731144.83 |============================================== LLVM Clang 6.0.0 . 1744348.96 |============================================== AMD AOCC 1.2 ..... 1803447.31 |================================================ Redis 4.0.8 Test: SADD Requests Per Second > Higher Is Better GCC 7.3.0 ........ 1397462.96 |=============================================== GCC 8.1.0 ........ 1437758.66 |================================================ LLVM Clang 6.0.0 . 1362120.29 |============================================= AMD AOCC 1.2 ..... 1426677.66 |================================================ Redis 4.0.8 Test: LPUSH Requests Per Second > Higher Is Better GCC 7.3.0 ........ 1085511.33 |============================================== GCC 8.1.0 ........ 1120554.29 |================================================ LLVM Clang 6.0.0 . 1070777.00 |============================================== AMD AOCC 1.2 ..... 1121084.83 |================================================ Redis 4.0.8 Test: GET Requests Per Second > Higher Is Better GCC 7.3.0 ........ 1626714.96 |============================================== GCC 8.1.0 ........ 1703998.46 |================================================ LLVM Clang 6.0.0 . 1601951.58 |============================================= AMD AOCC 1.2 ..... 1685855.71 |=============================================== Redis 4.0.8 Test: SET Requests Per Second > Higher Is Better GCC 7.3.0 ........ 1281816.44 |=============================================== GCC 8.1.0 ........ 1295530.83 |================================================ LLVM Clang 6.0.0 . 1236762.29 |============================================== AMD AOCC 1.2 ..... 1283809.91 |================================================ NGINX Benchmark 1.9.9 Static Web Page Serving Requests Per Second > Higher Is Better GCC 7.3.0 ........ 23721.27 |================================================== GCC 8.1.0 ........ 23446.04 |================================================= LLVM Clang 6.0.0 . 23822.41 |================================================== AMD AOCC 1.2 ..... 23548.83 |=================================================