LLVM Clang vs. GCC vs. AOCC - AMD Threadripper AMD Ryzen Threadripper 1950X compiler benchmarks on Ubuntu Linux for a future article on Phoronix. Clang 6.0.0: Processor: AMD Ryzen Threadripper 1950X 16-Core @ 3.40GHz (16 Cores / 32 Threads), Motherboard: Gigabyte X399 AORUS Gaming 7 (F3g BIOS), Chipset: AMD Family 17h, Memory: 16384MB, Disk: 120GB Force MP500, Graphics: MSI AMD Radeon R7 370 / R9 270/370 OEM 4096MB, Audio: Realtek ALC1220, Monitor: VE228, Network: Qualcomm Atheros Killer E2500 Gigabit + Intel Wireless 8265 / 8275 OS: Ubuntu 18.04, Kernel: 4.17.0-999-generic (x86_64) 20180518, Desktop: GNOME Shell 3.28.1, Display Driver: modesetting 1.19.6, Compiler: Clang 6.0.0-1ubuntu2, File-System: ext4, Screen Resolution: 1920x1080 Clang 5.0.1: Processor: AMD Ryzen Threadripper 1950X 16-Core @ 3.40GHz (16 Cores / 32 Threads), Motherboard: Gigabyte X399 AORUS Gaming 7 (F3g BIOS), Chipset: AMD Family 17h, Memory: 16384MB, Disk: 120GB Force MP500, Graphics: MSI AMD Radeon R7 370 / R9 270/370 OEM 4096MB, Audio: Realtek ALC1220, Monitor: VE228, Network: Qualcomm Atheros Killer E2500 Gigabit + Intel Wireless 8265 / 8275 OS: Ubuntu 18.04, Kernel: 4.17.0-999-generic (x86_64) 20180518, Desktop: GNOME Shell 3.28.1, Display Driver: modesetting 1.19.6, Compiler: Clang 5.0.1-4, File-System: ext4, Screen Resolution: 1920x1080 AMD AOCC 1.2: Processor: AMD Ryzen Threadripper 1950X 16-Core @ 3.40GHz (16 Cores / 32 Threads), Motherboard: Gigabyte X399 AORUS Gaming 7 (F3g BIOS), Chipset: AMD Family 17h, Memory: 16384MB, Disk: 120GB Force MP500, Graphics: MSI AMD Radeon R7 370 / R9 270/370 OEM 4096MB, Audio: Realtek ALC1220, Monitor: VE228, Network: Qualcomm Atheros Killer E2500 Gigabit + Intel Wireless 8265 / 8275 OS: Ubuntu 18.04, Kernel: 4.17.0-999-generic (x86_64) 20180518, Desktop: GNOME Shell 3.28.1, Display Driver: modesetting 1.19.6, Compiler: Clang 6.0.0, File-System: ext4, Screen Resolution: 1920x1080 GCC 7.3.0: Processor: AMD Ryzen Threadripper 1950X 16-Core @ 3.40GHz (16 Cores / 32 Threads), Motherboard: Gigabyte X399 AORUS Gaming 7 (F3g BIOS), Chipset: AMD Family 17h, Memory: 16384MB, Disk: 120GB Force MP500, Graphics: MSI AMD Radeon R7 370 / R9 270/370 OEM 4096MB, Audio: Realtek ALC1220, Monitor: VE228, Network: Qualcomm Atheros Killer E2500 Gigabit + Intel Wireless 8265 / 8275 OS: Ubuntu 18.04, Kernel: 4.17.0-999-generic (x86_64) 20180518, Desktop: GNOME Shell 3.28.1, Display Driver: modesetting 1.19.6, Compiler: GCC 7.3.0, File-System: ext4, Screen Resolution: 1920x1080 Clang 7.0 SVN: Processor: AMD Ryzen Threadripper 1950X 16-Core @ 3.40GHz (16 Cores / 32 Threads), Motherboard: Gigabyte X399 AORUS Gaming 7 (F3g BIOS), Chipset: AMD Family 17h, Memory: 16384MB, Disk: 120GB Force MP500, Graphics: MSI AMD Radeon R7 370 / R9 270/370 OEM, Audio: Realtek ALC1220, Monitor: VE228, Network: Qualcomm Atheros Killer E2500 Gigabit + Intel Wireless 8265 / 8275 OS: Ubuntu 18.04, Kernel: 4.17.0-999-generic (x86_64) 20180518, Desktop: GNOME Shell 3.28.1, Display Driver: modesetting 1.19.6, Compiler: Clang 7.0.0-, File-System: ext4, Screen Resolution: 1920x1080 GCC 8.1.0: Processor: AMD Ryzen Threadripper 1950X 16-Core @ 3.40GHz (16 Cores / 32 Threads), Motherboard: Gigabyte X399 AORUS Gaming 7 (F3g BIOS), Chipset: AMD Family 17h, Memory: 16384MB, Disk: 120GB Force MP500, Graphics: MSI AMD Radeon R7 370 / R9 270/370 OEM, Audio: Realtek ALC1220, Monitor: VE228, Network: Qualcomm Atheros Killer E2500 Gigabit + Intel Wireless 8265 / 8275 OS: Ubuntu 18.04, Kernel: 4.17.0-999-generic (x86_64) 20180518, Desktop: GNOME Shell 3.28.1, Display Driver: modesetting 1.19.6, Compiler: GCC 8.1.0, File-System: ext4, Screen Resolution: 1920x1080 AOCC 1.2 - 2 dimm: Processor: AMD Ryzen Threadripper 1950X 16-Core @ 3.40GHz (16 Cores / 32 Threads), Motherboard: ASUS PRIME X399-A (0601 BIOS), Chipset: AMD Family 17h, Memory: 16384MB, Disk: 240GB Radeon R7 + 16GB USB Flash Drive, Graphics: NVIDIA GeForce GTX 1080 8192MB, Audio: Realtek ALC1220, Monitor: DELL U2414H, Network: Intel I211 Gigabit Connection OS: Ubuntu 18.04, Kernel: 4.17.0-041700-lowlatency (x86_64), Compiler: GCC 4.8.2 + Clang 6.0.0, File-System: ext4, Screen Resolution: 1920x1080 FFTW 3.3.6 Build: Float + SSE - Size: 2D FFT Size 128 Mflops > Higher Is Better Clang 6.0.0 ....... 32214 |=================================================== Clang 5.0.1 ....... 32078 |=================================================== AMD AOCC 1.2 ...... 32840 |==================================================== GCC 7.3.0 ......... 32011 |=================================================== Clang 7.0 SVN ..... 31854 |================================================== GCC 8.1.0 ......... 31432 |================================================== AOCC 1.2 - 2 dimm . 31469 |================================================== FFTW 3.3.6 Build: Float + SSE - Size: 2D FFT Size 1024 Mflops > Higher Is Better Clang 6.0.0 ....... 20954 |========================================= Clang 5.0.1 ....... 21016 |========================================== AMD AOCC 1.2 ...... 25594 |=================================================== GCC 7.3.0 ......... 26023 |=================================================== Clang 7.0 SVN ..... 25005 |================================================= GCC 8.1.0 ......... 26323 |==================================================== AOCC 1.2 - 2 dimm . 24228 |================================================ FFTW 3.3.6 Build: Float + SSE - Size: 2D FFT Size 4096 Mflops > Higher Is Better Clang 6.0.0 ....... 14870 |=============================================== Clang 5.0.1 ....... 15795 |================================================== AMD AOCC 1.2 ...... 15799 |================================================== GCC 7.3.0 ......... 16142 |=================================================== Clang 7.0 SVN ..... 15293 |================================================ GCC 8.1.0 ......... 16439 |==================================================== AOCC 1.2 - 2 dimm . 15954 |================================================== Timed HMMer Search 2.3.2 Pfam Database Search Seconds < Lower Is Better Clang 6.0.0 ....... 5.86 |================================================== Clang 5.0.1 ....... 5.79 |================================================= AMD AOCC 1.2 ...... 5.89 |================================================== GCC 7.3.0 ......... 5.91 |================================================== Clang 7.0 SVN ..... 5.89 |================================================== GCC 8.1.0 ......... 6.24 |===================================================== AOCC 1.2 - 2 dimm . 5.61 |================================================ SciMark 2.0 Computational Test: Composite Mflops > Higher Is Better Clang 6.0.0 ....... 2252.68 |================================================ Clang 5.0.1 ....... 2134.62 |============================================= AMD AOCC 1.2 ...... 2280.35 |================================================= GCC 7.3.0 ......... 2281.79 |================================================= Clang 7.0 SVN ..... 2346.84 |================================================== GCC 8.1.0 ......... 2139.10 |============================================== AOCC 1.2 - 2 dimm . 1941.59 |========================================= SciMark 2.0 Computational Test: Monte Carlo Mflops > Higher Is Better Clang 6.0.0 ....... 699.08 |================================================= Clang 5.0.1 ....... 702.57 |================================================= AMD AOCC 1.2 ...... 560.99 |======================================= GCC 7.3.0 ......... 246.87 |================= Clang 7.0 SVN ..... 698.96 |================================================= GCC 8.1.0 ......... 700.74 |================================================= AOCC 1.2 - 2 dimm . 726.23 |=================================================== SciMark 2.0 Computational Test: Fast Fourier Transform Mflops > Higher Is Better Clang 6.0.0 ....... 271.71 |================================================== Clang 5.0.1 ....... 268.55 |================================================= AMD AOCC 1.2 ...... 269.38 |================================================= GCC 7.3.0 ......... 272.61 |================================================== Clang 7.0 SVN ..... 269.45 |================================================= GCC 8.1.0 ......... 272.04 |================================================== AOCC 1.2 - 2 dimm . 278.23 |=================================================== SciMark 2.0 Computational Test: Sparse Matrix Multiply Mflops > Higher Is Better Clang 6.0.0 ....... 2987.71 |================================================ Clang 5.0.1 ....... 2779.30 |============================================ AMD AOCC 1.2 ...... 3133.00 |================================================== GCC 7.3.0 ......... 2881.26 |============================================== Clang 7.0 SVN ..... 3095.66 |================================================= GCC 8.1.0 ......... 2744.86 |============================================ AOCC 1.2 - 2 dimm . 3064.69 |================================================= SciMark 2.0 Computational Test: Dense LU Matrix Factorization Mflops > Higher Is Better Clang 6.0.0 ....... 5481.16 |=============================================== Clang 5.0.1 ....... 5136.42 |============================================ AMD AOCC 1.2 ...... 5615.72 |================================================ GCC 7.3.0 ......... 5871.64 |================================================== Clang 7.0 SVN ..... 5845.14 |================================================== GCC 8.1.0 ......... 4838.89 |========================================= AOCC 1.2 - 2 dimm . 4477.53 |====================================== SciMark 2.0 Computational Test: Jacobi Successive Over-Relaxation Mflops > Higher Is Better Clang 6.0.0 ....... 1823.73 |=========================================== Clang 5.0.1 ....... 1804.22 |========================================== AMD AOCC 1.2 ...... 1822.68 |=========================================== GCC 7.3.0 ......... 2136.59 |================================================== Clang 7.0 SVN ..... 1824.96 |=========================================== GCC 8.1.0 ......... 2138.96 |================================================== AOCC 1.2 - 2 dimm . 1161.28 |=========================== TSCP 1.81 AI Chess Performance Nodes Per Second > Higher Is Better Clang 6.0.0 ....... 1181496 |================================================== Clang 5.0.1 ....... 1160574 |================================================= AMD AOCC 1.2 ...... 1183456 |================================================== GCC 7.3.0 ......... 1120418 |=============================================== Clang 7.0 SVN ..... 1143195 |================================================ GCC 8.1.0 ......... 1090709 |============================================== AOCC 1.2 - 2 dimm . 1117209 |=============================================== TTSIOD 3D Renderer 2.3a Phong Rendering With Soft-Shadow Mapping FPS > Higher Is Better Clang 6.0.0 ... 412.54 |=========================================== Clang 5.0.1 ... 390.91 |========================================= GCC 7.3.0 ..... 508.56 |===================================================== Clang 7.0 SVN . 421.56 |============================================ GCC 8.1.0 ..... 525.63 |======================================================= GraphicsMagick 1.3.28 Operation: Blur Iterations Per Minute > Higher Is Better Clang 6.0.0 ....... 160 |=============================================== Clang 5.0.1 ....... 156 |============================================== AMD AOCC 1.2 ...... 159 |============================================== GCC 7.3.0 ......... 185 |====================================================== Clang 7.0 SVN ..... 159 |============================================== GCC 8.1.0 ......... 184 |====================================================== AOCC 1.2 - 2 dimm . 185 |====================================================== GraphicsMagick 1.3.28 Operation: Sharpen Iterations Per Minute > Higher Is Better Clang 6.0.0 ....... 181 |=========================================== Clang 5.0.1 ....... 178 |=========================================== AMD AOCC 1.2 ...... 180 |=========================================== GCC 7.3.0 ......... 226 |====================================================== Clang 7.0 SVN ..... 180 |=========================================== GCC 8.1.0 ......... 223 |===================================================== AOCC 1.2 - 2 dimm . 179 |=========================================== GraphicsMagick 1.3.28 Operation: Resizing Iterations Per Minute > Higher Is Better Clang 6.0.0 ....... 200 |========================================== Clang 5.0.1 ....... 194 |========================================= AMD AOCC 1.2 ...... 200 |========================================== GCC 7.3.0 ......... 254 |====================================================== Clang 7.0 SVN ..... 199 |========================================== GCC 8.1.0 ......... 255 |====================================================== AOCC 1.2 - 2 dimm . 238 |================================================== GraphicsMagick 1.3.28 Operation: HWB Color Space Iterations Per Minute > Higher Is Better Clang 6.0.0 ....... 209 |============================================ Clang 5.0.1 ....... 203 |=========================================== AMD AOCC 1.2 ...... 210 |============================================ GCC 7.3.0 ......... 257 |====================================================== Clang 7.0 SVN ..... 209 |============================================ GCC 8.1.0 ......... 254 |===================================================== AOCC 1.2 - 2 dimm . 249 |==================================================== GraphicsMagick 1.3.28 Operation: Local Adaptive Thresholding Iterations Per Minute > Higher Is Better Clang 6.0.0 ....... 143 |====================================================== Clang 5.0.1 ....... 142 |====================================================== AMD AOCC 1.2 ...... 142 |====================================================== GCC 7.3.0 ......... 141 |===================================================== Clang 7.0 SVN ..... 143 |====================================================== GCC 8.1.0 ......... 137 |==================================================== AOCC 1.2 - 2 dimm . 138 |==================================================== Himeno Benchmark 3.0 Poisson Pressure Solver MFLOPS > Higher Is Better Clang 6.0.0 ....... 1344.50 |================================================== Clang 5.0.1 ....... 1207.08 |============================================= AMD AOCC 1.2 ...... 1188.58 |============================================ GCC 7.3.0 ......... 1206.99 |============================================= Clang 7.0 SVN ..... 1300.63 |================================================ GCC 8.1.0 ......... 1254.34 |=============================================== AOCC 1.2 - 2 dimm . 1029.97 |====================================== Stockfish 9 Total Time Nodes Per Second > Higher Is Better Clang 6.0.0 ....... 43157084 |================================================= Clang 5.0.1 ....... 42951025 |================================================= GCC 7.3.0 ......... 40672888 |============================================== Clang 7.0 SVN ..... 43167201 |================================================= GCC 8.1.0 ......... 41722472 |=============================================== AOCC 1.2 - 2 dimm . 41793918 |=============================================== ebizzy 0.3 Records/s > Higher Is Better Clang 6.0.0 ....... 846431 |================================================ Clang 5.0.1 ....... 860625 |================================================= AMD AOCC 1.2 ...... 857598 |================================================= GCC 7.3.0 ......... 851501 |================================================ Clang 7.0 SVN ..... 900984 |=================================================== GCC 8.1.0 ......... 793887 |============================================= AOCC 1.2 - 2 dimm . 839201 |================================================ Timed LLVM Compilation 4.0.1 Time To Compile Seconds < Lower Is Better Clang 6.0.0 ....... 218.02 |============================ Clang 5.0.1 ....... 215.58 |============================ AMD AOCC 1.2 ...... 312.34 |======================================== Clang 7.0 SVN ..... 239.30 |=============================== AOCC 1.2 - 2 dimm . 398.03 |=================================================== Timed PHP Compilation 7.1.9 Time To Compile Seconds < Lower Is Better Clang 6.0.0 ....... 83.15 |=============================== Clang 5.0.1 ....... 77.52 |============================= AMD AOCC 1.2 ...... 138.64 |=================================================== GCC 7.3.0 ......... 57.48 |===================== Clang 7.0 SVN ..... 94.52 |=================================== GCC 8.1.0 ......... 60.19 |====================== AOCC 1.2 - 2 dimm . 59.93 |====================== C-Ray 1.1 Total Time Seconds < Lower Is Better Clang 6.0.0 ....... 6.64 |===================================================== Clang 5.0.1 ....... 6.24 |================================================== AMD AOCC 1.2 ...... 6.59 |===================================================== GCC 7.3.0 ......... 4.39 |=================================== Clang 7.0 SVN ..... 6.36 |=================================================== GCC 8.1.0 ......... 3.71 |============================== AOCC 1.2 - 2 dimm . 4.29 |================================== AOBench Size: 2048 x 2048 - Total Time Seconds < Lower Is Better Clang 6.0.0 ....... 42.91 |==================================================== Clang 5.0.1 ....... 42.52 |==================================================== AMD AOCC 1.2 ...... 41.31 |================================================== GCC 7.3.0 ......... 39.66 |================================================ Clang 7.0 SVN ..... 42.18 |=================================================== GCC 8.1.0 ......... 40.45 |================================================= AOCC 1.2 - 2 dimm . 42.01 |=================================================== Bullet Physics Engine 2.81 Test: Raytests Seconds < Lower Is Better Clang 6.0.0 ....... 2.58 |=================================================== Clang 5.0.1 ....... 2.58 |=================================================== AMD AOCC 1.2 ...... 2.57 |=================================================== GCC 7.3.0 ......... 2.68 |===================================================== Clang 7.0 SVN ..... 2.49 |================================================= GCC 8.1.0 ......... 2.46 |================================================ AOCC 1.2 - 2 dimm . 2.69 |===================================================== Bullet Physics Engine 2.81 Test: 3000 Fall Seconds < Lower Is Better Clang 6.0.0 ....... 4.19 |===================================================== Clang 5.0.1 ....... 4.12 |==================================================== AMD AOCC 1.2 ...... 4.14 |==================================================== GCC 7.3.0 ......... 4.15 |==================================================== Clang 7.0 SVN ..... 4.11 |==================================================== GCC 8.1.0 ......... 4.03 |=================================================== AOCC 1.2 - 2 dimm . 4.21 |===================================================== Bullet Physics Engine 2.81 Test: 1000 Stack Seconds < Lower Is Better Clang 6.0.0 ....... 4.83 |=================================================== Clang 5.0.1 ....... 4.74 |================================================== AMD AOCC 1.2 ...... 4.83 |=================================================== GCC 7.3.0 ......... 4.82 |=================================================== Clang 7.0 SVN ..... 4.80 |=================================================== GCC 8.1.0 ......... 4.59 |================================================= AOCC 1.2 - 2 dimm . 4.98 |===================================================== Bullet Physics Engine 2.81 Test: 1000 Convex Seconds < Lower Is Better Clang 6.0.0 ....... 4.24 |============================================ Clang 5.0.1 ....... 4.31 |============================================= AMD AOCC 1.2 ...... 4.30 |============================================= GCC 7.3.0 ......... 5.10 |===================================================== Clang 7.0 SVN ..... 4.20 |============================================ GCC 8.1.0 ......... 4.19 |============================================ AOCC 1.2 - 2 dimm . 4.61 |================================================ Bullet Physics Engine 2.81 Test: 136 Ragdolls Seconds < Lower Is Better Clang 6.0.0 ....... 2.53 |=================================================== Clang 5.0.1 ....... 2.56 |==================================================== AMD AOCC 1.2 ...... 2.51 |=================================================== GCC 7.3.0 ......... 2.46 |================================================== Clang 7.0 SVN ..... 2.55 |==================================================== GCC 8.1.0 ......... 2.42 |================================================= AOCC 1.2 - 2 dimm . 2.61 |===================================================== Bullet Physics Engine 2.81 Test: Prim Trimesh Seconds < Lower Is Better Clang 6.0.0 ....... 0.89 |================================================== Clang 5.0.1 ....... 0.91 |=================================================== AMD AOCC 1.2 ...... 0.88 |================================================== GCC 7.3.0 ......... 0.90 |=================================================== Clang 7.0 SVN ..... 0.88 |================================================== GCC 8.1.0 ......... 0.89 |================================================== AOCC 1.2 - 2 dimm . 0.94 |===================================================== Bullet Physics Engine 2.81 Test: Convex Trimesh Seconds < Lower Is Better Clang 6.0.0 ....... 1.08 |================================================= Clang 5.0.1 ....... 1.08 |================================================= AMD AOCC 1.2 ...... 1.07 |================================================ GCC 7.3.0 ......... 1.18 |===================================================== Clang 7.0 SVN ..... 1.06 |================================================ GCC 8.1.0 ......... 1.05 |=============================================== AOCC 1.2 - 2 dimm . 1.15 |==================================================== FLAC Audio Encoding 1.3.2 WAV To FLAC Seconds < Lower Is Better Clang 6.0.0 ....... 8.94 |================================================ Clang 5.0.1 ....... 9.09 |================================================ AMD AOCC 1.2 ...... 9.24 |================================================= GCC 7.3.0 ......... 9.97 |===================================================== Clang 7.0 SVN ..... 8.96 |================================================ GCC 8.1.0 ......... 9.92 |===================================================== AOCC 1.2 - 2 dimm . 9.29 |================================================= LAME MP3 Encoding 3.100 WAV To MP3 Seconds < Lower Is Better Clang 6.0.0 ....... 9.58 |============================================ Clang 5.0.1 ....... 9.66 |============================================ AMD AOCC 1.2 ...... 9.65 |============================================ GCC 7.3.0 ......... 8.97 |========================================= Clang 7.0 SVN ..... 9.63 |============================================ GCC 8.1.0 ......... 8.33 |====================================== AOCC 1.2 - 2 dimm . 11.44 |==================================================== libjpeg-turbo tjbench 1.5.3 Test: Decompression Throughput Megapixels/sec > Higher Is Better Clang 6.0.0 ....... 181.10 |=================================================== Clang 5.0.1 ....... 177.82 |================================================== AMD AOCC 1.2 ...... 179.01 |================================================== GCC 7.3.0 ......... 177.07 |================================================== Clang 7.0 SVN ..... 179.90 |================================================== GCC 8.1.0 ......... 182.22 |=================================================== AOCC 1.2 - 2 dimm . 178.11 |================================================== PostgreSQL pgbench 10.3 Scaling: Buffer Test - Test: Normal Load - Mode: Read Write TPS > Higher Is Better Clang 6.0.0 ....... 10472.71 |======================================== Clang 5.0.1 ....... 10357.10 |======================================== GCC 7.3.0 ......... 12696.74 |================================================= Clang 7.0 SVN ..... 9371.12 |==================================== GCC 8.1.0 ......... 12797.92 |================================================= AOCC 1.2 - 2 dimm . 3630.37 |============== NGINX Benchmark 1.9.9 Static Web Page Serving Requests Per Second > Higher Is Better Clang 6.0.0 ... 32728.32 |==================================================== Clang 5.0.1 ... 30904.77 |================================================= AMD AOCC 1.2 .. 32068.74 |=================================================== GCC 7.3.0 ..... 32050.56 |=================================================== Clang 7.0 SVN . 32158.90 |=================================================== GCC 8.1.0 ..... 33182.07 |===================================================== Apache Benchmark 2.4.29 Static Web Page Serving Requests Per Second > Higher Is Better Clang 6.0.0 ....... 25558.40 |================================================= Clang 5.0.1 ....... 25091.65 |================================================ AMD AOCC 1.2 ...... 25445.16 |================================================= GCC 7.3.0 ......... 24667.05 |=============================================== Clang 7.0 SVN ..... 24680.63 |=============================================== GCC 8.1.0 ......... 25515.00 |================================================= AOCC 1.2 - 2 dimm . 22210.45 |===========================================