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 .
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 -O0 -O1 -O2 -O2 -march=native -O3 -O3 -march=native -Ofast -march=native 6 12 18 24 30 SE +/- 0.02, N = 3 SE +/- 0.02, N = 3 SE +/- 0.01, N = 3 SE +/- 0.01, N = 3 SE +/- 0.00, N = 3 SE +/- 0.02, N = 3 SE +/- 0.00, N = 3 SE +/- 0.03, N = 3 SE +/- 0.02, N = 3 SE +/- 0.02, N = 3 SE +/- 0.01, N = 3 SE +/- 0.09, N = 3 SE +/- 0.02, N = 3 SE +/- 0.01, N = 3 26.89 8.86 8.35 8.35 8.17 8.16 8.00 23.23 8.97 8.29 8.29 8.40 8.29 8.12 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 -O0 -O1 -O2 -O2 -march=native -O3 -O3 -march=native -Ofast -march=native 40 80 120 160 200 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.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.33, N = 3 SE +/- 0.00, N = 3 107 170 169 173 170 178 177 75 150 150 150 150 153 153 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 -O0 -O1 -O2 -O2 -march=native -O3 -O3 -march=native -Ofast -march=native 50 100 150 200 250 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.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.58, N = 3 SE +/- 0.00, N = 3 SE +/- 0.67, N = 3 SE +/- 0.33, N = 3 136 226 213 228 228 234 237 100 192 193 196 192 196 198 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 -O0 -O1 -O2 -O2 -march=native -O3 -O3 -march=native -Ofast -march=native 20 40 60 80 100 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.33, 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 22 92 100 103 103 104 104 22 89 100 99 100 102 101 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 -O0 -O1 -O2 -O2 -march=native -O3 -O3 -march=native -Ofast -march=native 600 1200 1800 2400 3000 SE +/- 1.58, N = 3 SE +/- 7.15, N = 3 SE +/- 2.14, N = 3 SE +/- 5.04, N = 3 SE +/- 2.83, N = 3 SE +/- 13.72, N = 3 SE +/- 8.78, N = 3 SE +/- 4.31, N = 3 SE +/- 3.51, N = 3 SE +/- 5.22, N = 3 SE +/- 0.78, N = 3 SE +/- 1.61, N = 3 SE +/- 14.49, N = 3 SE +/- 3.27, N = 3 496.06 1302.83 2429.37 2653.07 2485.14 2689.91 2757.77 325.27 1931.06 2036.00 1923.64 2001.77 1962.71 2114.80 1. (CC) gcc options: -O3 -mavx2
Timed Apache Compilation Time To Compile GCC Clang OpenBenchmarking.org Seconds, Fewer Is Better Timed Apache Compilation 2.4.7 Time To Compile -O0 -O1 -O2 -O2 -march=native -O3 -O3 -march=native -Ofast -march=native 6 12 18 24 30 SE +/- 0.05, N = 3 SE +/- 0.07, N = 3 SE +/- 0.03, N = 3 SE +/- 0.07, N = 3 SE +/- 0.04, N = 3 SE +/- 0.05, N = 3 SE +/- 0.04, N = 3 SE +/- 0.12, N = 3 SE +/- 0.03, N = 3 SE +/- 0.06, N = 3 SE +/- 0.04, N = 3 SE +/- 0.04, N = 3 SE +/- 0.05, N = 3 SE +/- 0.05, N = 3 11.08 17.00 23.12 22.84 24.88 25.17 25.16 10.93 18.85 22.36 23.10 22.83 23.07 23.15
Timed ImageMagick Compilation Time To Compile GCC Clang OpenBenchmarking.org Seconds, Fewer Is Better Timed ImageMagick Compilation 6.9.0 Time To Compile -O0 -O1 -O2 -O2 -march=native -O3 -O3 -march=native -Ofast -march=native 11 22 33 44 55 SE +/- 0.04, N = 3 SE +/- 0.04, N = 3 SE +/- 0.04, N = 3 SE +/- 0.04, N = 3 SE +/- 0.07, N = 3 SE +/- 0.02, N = 3 SE +/- 0.18, N = 3 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 12.23 24.96 39.67 37.57 49.70 48.97 49.99 9.78 31.07 36.53 38.45 49.59 49.63 50.02
Timed PHP Compilation Time To Compile GCC Clang OpenBenchmarking.org Seconds, Fewer Is Better Timed PHP Compilation 5.2.9 Time To Compile -O0 -O1 -O2 -O2 -march=native -O3 -O3 -march=native -Ofast -march=native 5 10 15 20 25 SE +/- 0.03, N = 3 SE +/- 0.03, N = 3 SE +/- 0.04, N = 3 SE +/- 0.03, N = 3 SE +/- 0.03, N = 3 SE +/- 0.04, N = 3 SE +/- 0.02, N = 3 SE +/- 0.01, N = 3 SE +/- 0.02, N = 3 SE +/- 0.03, N = 3 SE +/- 0.08, N = 3 SE +/- 0.03, N = 3 SE +/- 0.04, N = 3 SE +/- 0.01, N = 3 7.27 13.35 19.12 18.68 21.21 21.68 21.75 6.44 13.58 16.96 17.92 17.59 17.90 17.95 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 -O0 -O1 -O2 -O2 -march=native -O3 -O3 -march=native -Ofast -march=native 14 28 42 56 70 SE +/- 0.02, N = 3 SE +/- 0.00, N = 3 SE +/- 0.01, N = 3 SE +/- 0.00, N = 3 SE +/- 0.00, N = 3 SE +/- 0.02, N = 3 SE +/- 0.03, N = 3 SE +/- 0.04, N = 3 SE +/- 0.00, N = 3 SE +/- 0.01, N = 3 SE +/- 0.05, N = 3 SE +/- 0.01, N = 3 SE +/- 0.01, N = 3 SE +/- 0.03, N = 3 61.53 43.15 38.19 27.83 19.65 14.60 13.92 57.09 32.34 37.29 36.22 25.61 25.20 20.64 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 -O0 -O1 -O2 -O2 -march=native -O3 -O3 -march=native -Ofast -march=native 11 22 33 44 55 SE +/- 0.09, N = 5 SE +/- 0.01, N = 5 SE +/- 0.01, N = 5 SE +/- 0.00, N = 5 SE +/- 0.02, N = 5 SE +/- 0.01, N = 5 SE +/- 0.01, N = 5 SE +/- 0.14, N = 5 SE +/- 0.01, N = 5 SE +/- 0.01, N = 5 SE +/- 0.01, N = 5 SE +/- 0.04, N = 5 SE +/- 0.02, N = 5 SE +/- 0.00, N = 5 37.56 5.97 5.22 4.87 5.10 4.88 4.89 47.95 6.97 6.66 5.26 6.71 5.11 5.05 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 -O0 -O1 -O2 -O2 -march=native -O3 -O3 -march=native -Ofast -march=native 7 14 21 28 35 SE +/- 0.07, N = 5 SE +/- 0.00, N = 5 SE +/- 0.03, N = 5 SE +/- 0.01, N = 5 SE +/- 0.01, N = 5 SE +/- 0.02, N = 5 SE +/- 0.01, N = 5 SE +/- 0.09, N = 5 SE +/- 0.01, N = 5 SE +/- 0.01, N = 5 SE +/- 0.03, N = 5 SE +/- 0.02, N = 5 SE +/- 0.02, N = 5 SE +/- 0.01, N = 5 30.50 13.25 12.90 11.99 12.10 10.69 9.51 31.95 12.04 12.17 12.03 12.16 11.66 11.10 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 -O0 -O1 -O2 -O2 -march=native -O3 -O3 -march=native -Ofast -march=native 700K 1400K 2100K 2800K 3500K SE +/- 38735.61, N = 6 SE +/- 149849.11, N = 6 SE +/- 115634.67, N = 6 SE +/- 147992.17, N = 6 SE +/- 114387.02, N = 6 SE +/- 112169.48, N = 6 SE +/- 119850.30, N = 6 SE +/- 5812.17, N = 3 SE +/- 114553.51, N = 6 SE +/- 107422.82, N = 6 SE +/- 28358.49, N = 3 SE +/- 100673.54, N = 6 SE +/- 117026.48, N = 6 SE +/- 43230.51, N = 5 1663526.96 2953039.46 3007445.96 2951037.21 2910194.79 3116395.33 3023321.58 1864548.29 3067218.96 2962310.25 3102899.83 2923813.88 2862656.75 3100373.25 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 -O0 -O1 -O2 -O2 -march=native -O3 -O3 -march=native -Ofast -march=native 500K 1000K 1500K 2000K 2500K SE +/- 18888.09, N = 6 SE +/- 42146.85, N = 3 SE +/- 42585.88, N = 3 SE +/- 59339.63, N = 6 SE +/- 5504.91, N = 3 SE +/- 62171.83, N = 6 SE +/- 9379.40, N = 3 SE +/- 18772.48, N = 5 SE +/- 89985.99, N = 6 SE +/- 48427.64, N = 6 SE +/- 37304.29, N = 3 SE +/- 78877.64, N = 6 SE +/- 55315.76, N = 6 SE +/- 51322.74, N = 6 1189110.86 2175575.75 2136957.54 2076614.15 2183433.83 2104521.04 2243907.58 1263741.85 1977929.48 2127555.19 2064604.79 1962280.52 2037699.96 2078148.71 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 -O0 -O1 -O2 -O2 -march=native -O3 -O3 -march=native -Ofast -march=native 90M 180M 270M 360M 450M SE +/- 333507.82, N = 3 SE +/- 261713.92, N = 3 SE +/- 807099.70, N = 3 SE +/- 839964.65, N = 3 SE +/- 705518.12, N = 3 SE +/- 469746.65, N = 3 SE +/- 623958.85, N = 3 SE +/- 202624.96, N = 3 SE +/- 327258.73, N = 3 SE +/- 684099.81, N = 3 SE +/- 169985.20, N = 3 SE +/- 732618.55, N = 3 SE +/- 107212.94, N = 3 SE +/- 189622.82, N = 3 127505415.48 295705864.24 370257620.55 408904948.74 381719210.59 407575756.08 392373251.20 129742642.75 335679881.79 387996153.74 288801639.39 386593550.68 296846752.57 295042490.70 1. (CC) gcc options: -lm
Phoronix Test Suite v10.8.5