Skylake Xeon GCC vs. Clang Compiler Optimization Tests Intel Xeon E3-1280 v5 testing with a MSI C236A WORKSTATION. GCC versus LLVM Clang compiler optimization CFLAGS/CXXFLAGS benchmarks by Michael Larabel for a future article on Phoronix.
HTML result view exported from: https://openbenchmarking.org/result/1602297-GA-SKYLAKEXE76&sor .
Processor Motherboard Chipset Memory Disk Graphics Audio Monitor Network OS Kernel Desktop Display Server Display Driver OpenGL Compiler File-System Screen Resolution GCC Clang -O0 -O1 -O2 -O2 -march=native -O3 -O3 -march=native -Ofast -march=native -O0 -O1 -O2 -O2 -march=native -O3 -O3 -march=native -Ofast -march=native Intel Xeon E3-1280 v5 @ 4.00GHz (8 Cores) MSI C236A WORKSTATION (MS-7998) v1.0 Intel Sky Lake 16384MB 120GB Samsung SSD 850 MSI AMD Radeon R7 370 / R9 270/370 OEM 4096MB Realtek ALC1150 DELL P2415Q Intel Connection Ubuntu 16.04 4.4.0-7-generic (x86_64) Unity 7.4.0 X Server 1.17.3 radeon 7.6.1 4.1 Mesa 11.1.2 Gallium 0.4 GCC 5.3.1 20160222 ext4 3840x2160 Clang 3.8.0-+rc2-1~exp1ubuntu2 OpenBenchmarking.org Compiler Details - GCC: -O0, GCC: -O1, GCC: -O2, GCC: -O2 -march=native, GCC: -O3, GCC: -O3 -march=native, GCC: -Ofast -march=native: --build=x86_64-linux-gnu --disable-browser-plugin --disable-vtable-verify --disable-werror --enable-checking=release --enable-clocale=gnu --enable-gnu-unique-object --enable-gtk-cairo --enable-java-awt=gtk --enable-java-home --enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++ --enable-libmpx --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-multiarch --enable-multilib --enable-nls --enable-objc-gc --enable-plugin --enable-shared --enable-threads=posix --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-abi=m64 --with-arch-32=i686 --with-arch-directory=amd64 --with-default-libstdcxx-abi=new --with-multilib-list=m32,m64,mx32 --with-tune=generic -v Processor Details - Scaling Governor: intel_pstate powersave
hmmer: Pfam Database Search graphics-magick: Blur graphics-magick: HWB Color Space graphics-magick: Local Adaptive Thresholding himeno: Poisson Pressure Solver build-apache: Time To Compile build-imagemagick: Time To Compile build-php: Time To Compile c-ray: Total Time encode-flac: WAV To FLAC encode-mp3: WAV To MP3 redis: GET redis: SET hint: FLOAT GCC Clang -O0 -O1 -O2 -O2 -march=native -O3 -O3 -march=native -Ofast -march=native -O0 -O1 -O2 -O2 -march=native -O3 -O3 -march=native -Ofast -march=native 26.89 107 136 22 496.06 11.08 12.23 7.27 61.53 37.56 30.50 1663526.96 1189110.86 127505415.48 8.86 170 226 92 1302.83 17.00 24.96 13.35 43.15 5.97 13.25 2953039.46 2175575.75 295705864.24 8.35 169 213 100 2429.37 23.12 39.67 19.12 38.19 5.22 12.90 3007445.96 2136957.54 370257620.55 8.35 173 228 103 2653.07 22.84 37.57 18.68 27.83 4.87 11.99 2951037.21 2076614.15 408904948.74 8.17 170 228 103 2485.14 24.88 49.70 21.21 19.65 5.10 12.10 2910194.79 2183433.83 381719210.59 8.16 178 234 104 2689.91 25.17 48.97 21.68 14.60 4.88 10.69 3116395.33 2104521.04 407575756.08 8.00 177 237 104 2757.77 25.16 49.99 21.75 13.92 4.89 9.51 3023321.58 2243907.58 392373251.20 23.23 75 100 22 325.27 10.93 9.78 6.44 57.09 47.95 31.95 1864548.29 1263741.85 129742642.75 8.97 150 192 89 1931.06 18.85 31.07 13.58 32.34 6.97 12.04 3067218.96 1977929.48 335679881.79 8.29 150 193 100 2036.00 22.36 36.53 16.96 37.29 6.66 12.17 2962310.25 2127555.19 387996153.74 8.29 150 196 99 1923.64 23.10 38.45 17.92 36.22 5.26 12.03 3102899.83 2064604.79 288801639.39 8.40 150 192 100 2001.77 22.83 49.59 17.59 25.61 6.71 12.16 2923813.88 1962280.52 386593550.68 8.29 153 196 102 1962.71 23.07 49.63 17.90 25.20 5.11 11.66 2862656.75 2037699.96 296846752.57 8.12 153 198 101 2114.80 23.15 50.02 17.95 20.64 5.05 11.10 3100373.25 2078148.71 295042490.70 OpenBenchmarking.org
Timed HMMer Search Pfam Database Search GCC Clang OpenBenchmarking.org Seconds, Fewer Is Better Timed HMMer Search 2.3.2 Pfam Database Search -Ofast -march=native -O3 -march=native -O3 -O2 -O2 -march=native -O1 -O0 6 12 18 24 30 SE +/- 0.00, N = 3 SE +/- 0.02, N = 3 SE +/- 0.00, N = 3 SE +/- 0.01, N = 3 SE +/- 0.01, N = 3 SE +/- 0.02, N = 3 SE +/- 0.02, N = 3 SE +/- 0.01, N = 3 SE +/- 0.02, N = 3 SE +/- 0.01, N = 3 SE +/- 0.02, N = 3 SE +/- 0.09, N = 3 SE +/- 0.02, N = 3 SE +/- 0.03, N = 3 8.00 8.16 8.17 8.35 8.35 8.86 26.89 8.12 8.29 8.29 8.29 8.40 8.97 23.23 1. (CC) gcc options: -pthread -lhmmer -lsquid -lm
GraphicsMagick Operation: Blur GCC Clang OpenBenchmarking.org Iterations Per Minute, More Is Better GraphicsMagick 1.3.19 Operation: Blur -O3 -march=native -Ofast -march=native -O2 -march=native -O3 -O1 -O2 -O0 40 80 120 160 200 SE +/- 0.33, N = 3 SE +/- 0.00, N = 3 SE +/- 0.00, N = 3 SE +/- 0.33, N = 3 SE +/- 0.00, N = 3 SE +/- 0.00, N = 3 SE +/- 0.00, N = 3 SE +/- 0.00, N = 3 SE +/- 0.33, N = 3 SE +/- 0.00, N = 3 SE +/- 0.00, N = 3 SE +/- 0.00, N = 3 SE +/- 0.00, N = 3 SE +/- 0.00, N = 3 178 177 173 170 170 169 107 153 153 150 150 150 150 75 1. (CC) gcc options: -fopenmp -pthread -ljbig -lwebp -ltiff -ljpeg -lXext -lSM -lICE -lX11 -llzma -lbz2 -lz -lm -lgomp -lpthread
GraphicsMagick Operation: HWB Color Space GCC Clang OpenBenchmarking.org Iterations Per Minute, More Is Better GraphicsMagick 1.3.19 Operation: HWB Color Space -Ofast -march=native -O3 -march=native -O3 -O2 -march=native -O1 -O2 -O0 50 100 150 200 250 SE +/- 0.33, N = 3 SE +/- 0.00, N = 3 SE +/- 0.00, N = 3 SE +/- 0.33, N = 3 SE +/- 0.33, N = 3 SE +/- 0.33, N = 3 SE +/- 0.00, N = 3 SE +/- 0.33, N = 3 SE +/- 0.67, N = 3 SE +/- 0.58, N = 3 SE +/- 0.33, N = 3 SE +/- 0.00, N = 3 SE +/- 0.00, N = 3 SE +/- 0.00, N = 3 237 234 228 228 226 213 136 198 196 196 193 192 192 100 1. (CC) gcc options: -fopenmp -pthread -ljbig -lwebp -ltiff -ljpeg -lXext -lSM -lICE -lX11 -llzma -lbz2 -lz -lm -lgomp -lpthread
GraphicsMagick Operation: Local Adaptive Thresholding GCC Clang OpenBenchmarking.org Iterations Per Minute, More Is Better GraphicsMagick 1.3.19 Operation: Local Adaptive Thresholding -Ofast -march=native -O3 -march=native -O3 -O2 -march=native -O2 -O1 -O0 20 40 60 80 100 SE +/- 0.33, N = 3 SE +/- 0.00, N = 3 SE +/- 0.00, N = 3 SE +/- 0.00, N = 3 SE +/- 0.00, N = 3 SE +/- 0.00, N = 3 SE +/- 0.00, N = 3 SE +/- 0.00, N = 3 SE +/- 0.33, N = 3 SE +/- 0.00, N = 3 SE +/- 0.00, N = 3 SE +/- 0.33, N = 3 SE +/- 0.33, N = 3 SE +/- 0.00, N = 3 104 104 103 103 100 92 22 102 101 100 100 99 89 22 1. (CC) gcc options: -fopenmp -pthread -ljbig -lwebp -ltiff -ljpeg -lXext -lSM -lICE -lX11 -llzma -lbz2 -lz -lm -lgomp -lpthread
Himeno Benchmark Poisson Pressure Solver GCC Clang OpenBenchmarking.org MFLOPS, More Is Better Himeno Benchmark 3.0 Poisson Pressure Solver -Ofast -march=native -O3 -march=native -O2 -march=native -O3 -O2 -O1 -O0 600 1200 1800 2400 3000 SE +/- 8.78, N = 3 SE +/- 13.72, N = 3 SE +/- 5.04, N = 3 SE +/- 2.83, N = 3 SE +/- 2.14, N = 3 SE +/- 7.15, N = 3 SE +/- 1.58, N = 3 SE +/- 3.27, N = 3 SE +/- 5.22, N = 3 SE +/- 1.61, N = 3 SE +/- 14.49, N = 3 SE +/- 3.51, N = 3 SE +/- 0.78, N = 3 SE +/- 4.31, N = 3 2757.77 2689.91 2653.07 2485.14 2429.37 1302.83 496.06 2114.80 2036.00 2001.77 1962.71 1931.06 1923.64 325.27 1. (CC) gcc options: -O3 -mavx2
Timed Apache Compilation Time To Compile Clang GCC OpenBenchmarking.org Seconds, Fewer Is Better Timed Apache Compilation 2.4.7 Time To Compile -O0 -O1 -O2 -O3 -O2 -march=native -O3 -march=native -Ofast -march=native 6 12 18 24 30 SE +/- 0.12, N = 3 SE +/- 0.03, N = 3 SE +/- 0.06, N = 3 SE +/- 0.04, N = 3 SE +/- 0.05, N = 3 SE +/- 0.04, N = 3 SE +/- 0.05, N = 3 SE +/- 0.05, N = 3 SE +/- 0.07, N = 3 SE +/- 0.07, N = 3 SE +/- 0.03, N = 3 SE +/- 0.04, N = 3 SE +/- 0.04, N = 3 SE +/- 0.05, N = 3 10.93 18.85 22.36 22.83 23.07 23.10 23.15 11.08 17.00 22.84 23.12 24.88 25.16 25.17
Timed ImageMagick Compilation Time To Compile Clang GCC OpenBenchmarking.org Seconds, Fewer Is Better Timed ImageMagick Compilation 6.9.0 Time To Compile -O0 -O1 -O2 -O2 -march=native -O3 -march=native -O3 -Ofast -march=native 11 22 33 44 55 SE +/- 0.06, N = 3 SE +/- 0.05, N = 3 SE +/- 0.05, N = 3 SE +/- 0.17, N = 3 SE +/- 0.12, N = 3 SE +/- 0.05, N = 3 SE +/- 0.10, N = 3 SE +/- 0.04, N = 3 SE +/- 0.04, N = 3 SE +/- 0.04, N = 3 SE +/- 0.04, N = 3 SE +/- 0.02, N = 3 SE +/- 0.07, N = 3 SE +/- 0.18, N = 3 9.78 31.07 36.53 38.45 49.59 49.63 50.02 12.23 24.96 37.57 39.67 48.97 49.70 49.99
Timed PHP Compilation Time To Compile Clang GCC OpenBenchmarking.org Seconds, Fewer Is Better Timed PHP Compilation 5.2.9 Time To Compile -O0 -O1 -O2 -O3 -O3 -march=native -O2 -march=native -Ofast -march=native 5 10 15 20 25 SE +/- 0.01, N = 3 SE +/- 0.02, N = 3 SE +/- 0.03, N = 3 SE +/- 0.03, N = 3 SE +/- 0.04, N = 3 SE +/- 0.08, N = 3 SE +/- 0.01, N = 3 SE +/- 0.03, N = 3 SE +/- 0.03, N = 3 SE +/- 0.03, N = 3 SE +/- 0.04, N = 3 SE +/- 0.03, N = 3 SE +/- 0.04, N = 3 SE +/- 0.02, N = 3 6.44 13.58 16.96 17.59 17.90 17.92 17.95 7.27 13.35 18.68 19.12 21.21 21.68 21.75 1. (CC) gcc options: -pedantic -ldl -lz -lm
C-Ray Total Time GCC Clang OpenBenchmarking.org Seconds, Fewer Is Better C-Ray 1.1 Total Time -Ofast -march=native -O3 -march=native -O3 -O2 -march=native -O1 -O2 -O0 14 28 42 56 70 SE +/- 0.03, N = 3 SE +/- 0.02, N = 3 SE +/- 0.00, N = 3 SE +/- 0.00, N = 3 SE +/- 0.01, N = 3 SE +/- 0.00, N = 3 SE +/- 0.02, N = 3 SE +/- 0.03, N = 3 SE +/- 0.01, N = 3 SE +/- 0.01, N = 3 SE +/- 0.00, N = 3 SE +/- 0.05, N = 3 SE +/- 0.01, N = 3 SE +/- 0.04, N = 3 13.92 14.60 19.65 27.83 38.19 43.15 61.53 20.64 25.20 25.61 32.34 36.22 37.29 57.09 1. (CC) gcc options: -lm -lpthread -O3
FLAC Audio Encoding WAV To FLAC GCC Clang OpenBenchmarking.org Seconds, Fewer Is Better FLAC Audio Encoding 1.3.1 WAV To FLAC -O2 -march=native -O3 -march=native -Ofast -march=native -O3 -O2 -O1 -O0 11 22 33 44 55 SE +/- 0.00, N = 5 SE +/- 0.01, N = 5 SE +/- 0.01, N = 5 SE +/- 0.02, N = 5 SE +/- 0.01, N = 5 SE +/- 0.01, N = 5 SE +/- 0.09, N = 5 SE +/- 0.00, N = 5 SE +/- 0.02, N = 5 SE +/- 0.01, N = 5 SE +/- 0.01, N = 5 SE +/- 0.04, N = 5 SE +/- 0.01, N = 5 SE +/- 0.14, N = 5 4.87 4.88 4.89 5.10 5.22 5.97 37.56 5.05 5.11 5.26 6.66 6.71 6.97 47.95 1. (CXX) g++ options: -logg -lm
LAME MP3 Encoding WAV To MP3 GCC Clang OpenBenchmarking.org Seconds, Fewer Is Better LAME MP3 Encoding 3.99.3 WAV To MP3 -Ofast -march=native -O3 -march=native -O2 -march=native -O1 -O3 -O2 -O0 7 14 21 28 35 SE +/- 0.01, N = 5 SE +/- 0.02, N = 5 SE +/- 0.01, N = 5 SE +/- 0.01, N = 5 SE +/- 0.03, N = 5 SE +/- 0.00, N = 5 SE +/- 0.07, N = 5 SE +/- 0.01, N = 5 SE +/- 0.02, N = 5 SE +/- 0.03, N = 5 SE +/- 0.01, N = 5 SE +/- 0.02, N = 5 SE +/- 0.01, N = 5 SE +/- 0.09, N = 5 9.51 10.69 11.99 12.10 12.90 13.25 30.50 11.10 11.66 12.03 12.04 12.16 12.17 31.95 1. (CC) gcc options: -pipe -lncurses -lm
Redis Test: GET GCC Clang OpenBenchmarking.org Requests Per Second, More Is Better Redis 3.0.1 Test: GET -O3 -march=native -O2 -march=native -Ofast -march=native -O1 -O2 -O3 -O0 700K 1400K 2100K 2800K 3500K SE +/- 112169.48, N = 6 SE +/- 119850.30, N = 6 SE +/- 115634.67, N = 6 SE +/- 149849.11, N = 6 SE +/- 147992.17, N = 6 SE +/- 114387.02, N = 6 SE +/- 38735.61, N = 6 SE +/- 28358.49, N = 3 SE +/- 43230.51, N = 5 SE +/- 114553.51, N = 6 SE +/- 107422.82, N = 6 SE +/- 100673.54, N = 6 SE +/- 117026.48, N = 6 SE +/- 5812.17, N = 3 3116395.33 3023321.58 3007445.96 2953039.46 2951037.21 2910194.79 1663526.96 3102899.83 3100373.25 3067218.96 2962310.25 2923813.88 2862656.75 1864548.29 1. (CC) gcc options: -ggdb -rdynamic -lm -pthread -ldl
Redis Test: SET GCC Clang OpenBenchmarking.org Requests Per Second, More Is Better Redis 3.0.1 Test: SET -Ofast -march=native -O3 -O1 -O2 -O3 -march=native -O2 -march=native -O0 500K 1000K 1500K 2000K 2500K SE +/- 9379.40, N = 3 SE +/- 5504.91, N = 3 SE +/- 42146.85, N = 3 SE +/- 42585.88, N = 3 SE +/- 62171.83, N = 6 SE +/- 59339.63, N = 6 SE +/- 18888.09, N = 6 SE +/- 48427.64, N = 6 SE +/- 51322.74, N = 6 SE +/- 37304.29, N = 3 SE +/- 55315.76, N = 6 SE +/- 89985.99, N = 6 SE +/- 78877.64, N = 6 SE +/- 18772.48, N = 5 2243907.58 2183433.83 2175575.75 2136957.54 2104521.04 2076614.15 1189110.86 2127555.19 2078148.71 2064604.79 2037699.96 1977929.48 1962280.52 1263741.85 1. (CC) gcc options: -ggdb -rdynamic -lm -pthread -ldl
Hierarchical INTegration Test: FLOAT GCC Clang OpenBenchmarking.org QUIPs, More Is Better Hierarchical INTegration 1.0 Test: FLOAT -O2 -march=native -O3 -march=native -Ofast -march=native -O2 -O3 -O1 -O0 90M 180M 270M 360M 450M SE +/- 839964.65, N = 3 SE +/- 469746.65, N = 3 SE +/- 623958.85, N = 3 SE +/- 705518.12, N = 3 SE +/- 807099.70, N = 3 SE +/- 261713.92, N = 3 SE +/- 333507.82, N = 3 SE +/- 684099.81, N = 3 SE +/- 732618.55, N = 3 SE +/- 327258.73, N = 3 SE +/- 107212.94, N = 3 SE +/- 189622.82, N = 3 SE +/- 169985.20, N = 3 SE +/- 202624.96, N = 3 408904948.74 407575756.08 392373251.20 381719210.59 370257620.55 295705864.24 127505415.48 387996153.74 386593550.68 335679881.79 296846752.57 295042490.70 288801639.39 129742642.75 1. (CC) gcc options: -lm
Phoronix Test Suite v10.8.5