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&grs&sor.

ProcessorMotherboardChipsetMemoryDiskGraphicsAudioMonitorNetworkOSKernelDesktopDisplay ServerDisplay DriverOpenGLCompilerFile-SystemScreen ResolutionGCCClang -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=nativeIntel Xeon E3-1280 v5 @ 4.00GHz (8 Cores)MSI C236A WORKSTATION (MS-7998) v1.0Intel Sky Lake16384MB120GB Samsung SSD 850MSI AMD Radeon R7 370 / R9 270/370 OEM 4096MBRealtek ALC1150DELL P2415QIntel ConnectionUbuntu 16.044.4.0-7-generic (x86_64)Unity 7.4.0X Server 1.17.3radeon 7.6.14.1 Mesa 11.1.2 Gallium 0.4GCC 5.3.1 20160222ext43840x2160Clang 3.8.0-+rc2-1~exp1ubuntu2OpenBenchmarking.orgCompiler 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

encode-flac: WAV To FLAChimeno: Poisson Pressure Solverbuild-imagemagick: Time To Compilegraphics-magick: Local Adaptive Thresholdingc-ray: Total Timebuild-php: Time To Compilehmmer: Pfam Database Searchencode-mp3: WAV To MP3hint: FLOATgraphics-magick: Blurgraphics-magick: HWB Color Spacebuild-apache: Time To Compileredis: SETredis: GETGCCClang -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=native37.56496.0612.232261.537.2726.8930.50127505415.4810713611.081189110.861663526.965.971302.8324.969243.1513.358.8613.25295705864.2417022617.002175575.752953039.465.222429.3739.6710038.1919.128.3512.90370257620.5516921323.122136957.543007445.964.872653.0737.5710327.8318.688.3511.99408904948.7417322822.842076614.152951037.215.102485.1449.7010319.6521.218.1712.10381719210.5917022824.882183433.832910194.794.882689.9148.9710414.6021.688.1610.69407575756.0817823425.172104521.043116395.334.892757.7749.9910413.9221.758.009.51392373251.2017723725.162243907.583023321.5847.95325.279.782257.096.4423.2331.95129742642.757510010.931263741.851864548.296.971931.0631.078932.3413.588.9712.04335679881.7915019218.851977929.483067218.966.662036.0036.5310037.2916.968.2912.17387996153.7415019322.362127555.192962310.255.261923.6438.459936.2217.928.2912.03288801639.3915019623.102064604.793102899.836.712001.7749.5910025.6117.598.4012.16386593550.6815019222.831962280.522923813.885.111962.7149.6310225.2017.908.2911.66296846752.5715319623.072037699.962862656.755.052114.8050.0210120.6417.958.1211.10295042490.7015319823.152078148.713100373.25OpenBenchmarking.org

FLAC Audio Encoding

WAV To FLAC

GCCClangOpenBenchmarking.orgSeconds, Fewer Is BetterFLAC Audio Encoding 1.3.1WAV To FLAC-O2 -march=native-O3 -march=native-Ofast -march=native-O3-O2-O1-O01122334455SE +/- 0.00, N = 5SE +/- 0.01, N = 5SE +/- 0.01, N = 5SE +/- 0.02, N = 5SE +/- 0.01, N = 5SE +/- 0.01, N = 5SE +/- 0.09, N = 5SE +/- 0.00, N = 5SE +/- 0.02, N = 5SE +/- 0.01, N = 5SE +/- 0.01, N = 5SE +/- 0.04, N = 5SE +/- 0.01, N = 5SE +/- 0.14, N = 54.874.884.895.105.225.9737.565.055.115.266.666.716.9747.951. (CXX) g++ options: -logg -lm

Himeno Benchmark

Poisson Pressure Solver

GCCClangOpenBenchmarking.orgMFLOPS, More Is BetterHimeno Benchmark 3.0Poisson Pressure Solver-Ofast -march=native-O3 -march=native-O2 -march=native-O3-O2-O1-O06001200180024003000SE +/- 8.78, N = 3SE +/- 13.72, N = 3SE +/- 5.04, N = 3SE +/- 2.83, N = 3SE +/- 2.14, N = 3SE +/- 7.15, N = 3SE +/- 1.58, N = 3SE +/- 3.27, N = 3SE +/- 5.22, N = 3SE +/- 1.61, N = 3SE +/- 14.49, N = 3SE +/- 3.51, N = 3SE +/- 0.78, N = 3SE +/- 4.31, N = 32757.772689.912653.072485.142429.371302.83496.062114.802036.002001.771962.711931.061923.64325.271. (CC) gcc options: -O3 -mavx2

Timed ImageMagick Compilation

Time To Compile

ClangGCCOpenBenchmarking.orgSeconds, Fewer Is BetterTimed ImageMagick Compilation 6.9.0Time To Compile-O0-O1-O2-O2 -march=native-O3 -march=native-O3-Ofast -march=native1122334455SE +/- 0.06, N = 3SE +/- 0.05, N = 3SE +/- 0.05, N = 3SE +/- 0.17, N = 3SE +/- 0.12, N = 3SE +/- 0.05, N = 3SE +/- 0.10, N = 3SE +/- 0.04, N = 3SE +/- 0.04, N = 3SE +/- 0.04, N = 3SE +/- 0.04, N = 3SE +/- 0.02, N = 3SE +/- 0.07, N = 3SE +/- 0.18, N = 39.7831.0736.5338.4549.5949.6350.0212.2324.9637.5739.6748.9749.7049.99

GraphicsMagick

Operation: Local Adaptive Thresholding

GCCClangOpenBenchmarking.orgIterations Per Minute, More Is BetterGraphicsMagick 1.3.19Operation: Local Adaptive Thresholding-Ofast -march=native-O3 -march=native-O3-O2 -march=native-O2-O1-O020406080100SE +/- 0.33, N = 3SE +/- 0.00, N = 3SE +/- 0.00, N = 3SE +/- 0.00, N = 3SE +/- 0.00, N = 3SE +/- 0.00, N = 3SE +/- 0.00, N = 3SE +/- 0.00, N = 3SE +/- 0.33, N = 3SE +/- 0.00, N = 3SE +/- 0.00, N = 3SE +/- 0.33, N = 3SE +/- 0.33, N = 3SE +/- 0.00, N = 310410410310310092221021011001009989221. (CC) gcc options: -fopenmp -pthread -ljbig -lwebp -ltiff -ljpeg -lXext -lSM -lICE -lX11 -llzma -lbz2 -lz -lm -lgomp -lpthread

C-Ray

Total Time

GCCClangOpenBenchmarking.orgSeconds, Fewer Is BetterC-Ray 1.1Total Time-Ofast -march=native-O3 -march=native-O3-O2 -march=native-O1-O2-O01428425670SE +/- 0.03, N = 3SE +/- 0.02, N = 3SE +/- 0.00, N = 3SE +/- 0.00, N = 3SE +/- 0.01, N = 3SE +/- 0.00, N = 3SE +/- 0.02, N = 3SE +/- 0.03, N = 3SE +/- 0.01, N = 3SE +/- 0.01, N = 3SE +/- 0.00, N = 3SE +/- 0.05, N = 3SE +/- 0.01, N = 3SE +/- 0.04, N = 313.9214.6019.6527.8338.1943.1561.5320.6425.2025.6132.3436.2237.2957.091. (CC) gcc options: -lm -lpthread -O3

Timed PHP Compilation

Time To Compile

ClangGCCOpenBenchmarking.orgSeconds, Fewer Is BetterTimed PHP Compilation 5.2.9Time To Compile-O0-O1-O2-O3-O3 -march=native-O2 -march=native-Ofast -march=native510152025SE +/- 0.01, N = 3SE +/- 0.02, N = 3SE +/- 0.03, N = 3SE +/- 0.03, N = 3SE +/- 0.04, N = 3SE +/- 0.08, N = 3SE +/- 0.01, N = 3SE +/- 0.03, N = 3SE +/- 0.03, N = 3SE +/- 0.03, N = 3SE +/- 0.04, N = 3SE +/- 0.03, N = 3SE +/- 0.04, N = 3SE +/- 0.02, N = 36.4413.5816.9617.5917.9017.9217.957.2713.3518.6819.1221.2121.6821.751. (CC) gcc options: -pedantic -ldl -lz -lm

Timed HMMer Search

Pfam Database Search

GCCClangOpenBenchmarking.orgSeconds, Fewer Is BetterTimed HMMer Search 2.3.2Pfam Database Search-Ofast -march=native-O3 -march=native-O3-O2-O2 -march=native-O1-O0612182430SE +/- 0.00, N = 3SE +/- 0.02, N = 3SE +/- 0.00, N = 3SE +/- 0.01, N = 3SE +/- 0.01, N = 3SE +/- 0.02, N = 3SE +/- 0.02, N = 3SE +/- 0.01, N = 3SE +/- 0.02, N = 3SE +/- 0.01, N = 3SE +/- 0.02, N = 3SE +/- 0.09, N = 3SE +/- 0.02, N = 3SE +/- 0.03, N = 38.008.168.178.358.358.8626.898.128.298.298.298.408.9723.231. (CC) gcc options: -pthread -lhmmer -lsquid -lm

LAME MP3 Encoding

WAV To MP3

GCCClangOpenBenchmarking.orgSeconds, Fewer Is BetterLAME MP3 Encoding 3.99.3WAV To MP3-Ofast -march=native-O3 -march=native-O2 -march=native-O1-O3-O2-O0714212835SE +/- 0.01, N = 5SE +/- 0.02, N = 5SE +/- 0.01, N = 5SE +/- 0.01, N = 5SE +/- 0.03, N = 5SE +/- 0.00, N = 5SE +/- 0.07, N = 5SE +/- 0.01, N = 5SE +/- 0.02, N = 5SE +/- 0.03, N = 5SE +/- 0.01, N = 5SE +/- 0.02, N = 5SE +/- 0.01, N = 5SE +/- 0.09, N = 59.5110.6911.9912.1012.9013.2530.5011.1011.6612.0312.0412.1612.1731.951. (CC) gcc options: -pipe -lncurses -lm

Hierarchical INTegration

Test: FLOAT

GCCClangOpenBenchmarking.orgQUIPs, More Is BetterHierarchical INTegration 1.0Test: FLOAT-O2 -march=native-O3 -march=native-Ofast -march=native-O2-O3-O1-O090M180M270M360M450MSE +/- 839964.65, N = 3SE +/- 469746.65, N = 3SE +/- 623958.85, N = 3SE +/- 705518.12, N = 3SE +/- 807099.70, N = 3SE +/- 261713.92, N = 3SE +/- 333507.82, N = 3SE +/- 684099.81, N = 3SE +/- 732618.55, N = 3SE +/- 327258.73, N = 3SE +/- 107212.94, N = 3SE +/- 189622.82, N = 3SE +/- 169985.20, N = 3SE +/- 202624.96, N = 3408904948.74407575756.08392373251.20381719210.59370257620.55295705864.24127505415.48387996153.74386593550.68335679881.79296846752.57295042490.70288801639.39129742642.751. (CC) gcc options: -lm

GraphicsMagick

Operation: Blur

GCCClangOpenBenchmarking.orgIterations Per Minute, More Is BetterGraphicsMagick 1.3.19Operation: Blur-O3 -march=native-Ofast -march=native-O2 -march=native-O3-O1-O2-O04080120160200SE +/- 0.33, N = 3SE +/- 0.00, N = 3SE +/- 0.00, N = 3SE +/- 0.33, N = 3SE +/- 0.00, N = 3SE +/- 0.00, N = 3SE +/- 0.00, N = 3SE +/- 0.00, N = 3SE +/- 0.33, N = 3SE +/- 0.00, N = 3SE +/- 0.00, N = 3SE +/- 0.00, N = 3SE +/- 0.00, N = 3SE +/- 0.00, N = 3178177173170170169107153153150150150150751. (CC) gcc options: -fopenmp -pthread -ljbig -lwebp -ltiff -ljpeg -lXext -lSM -lICE -lX11 -llzma -lbz2 -lz -lm -lgomp -lpthread

GraphicsMagick

Operation: HWB Color Space

GCCClangOpenBenchmarking.orgIterations Per Minute, More Is BetterGraphicsMagick 1.3.19Operation: HWB Color Space-Ofast -march=native-O3 -march=native-O3-O2 -march=native-O1-O2-O050100150200250SE +/- 0.33, N = 3SE +/- 0.00, N = 3SE +/- 0.00, N = 3SE +/- 0.33, N = 3SE +/- 0.33, N = 3SE +/- 0.33, N = 3SE +/- 0.00, N = 3SE +/- 0.33, N = 3SE +/- 0.67, N = 3SE +/- 0.58, N = 3SE +/- 0.33, N = 3SE +/- 0.00, N = 3SE +/- 0.00, N = 3SE +/- 0.00, N = 32372342282282262131361981961961931921921001. (CC) gcc options: -fopenmp -pthread -ljbig -lwebp -ltiff -ljpeg -lXext -lSM -lICE -lX11 -llzma -lbz2 -lz -lm -lgomp -lpthread

Timed Apache Compilation

Time To Compile

ClangGCCOpenBenchmarking.orgSeconds, Fewer Is BetterTimed Apache Compilation 2.4.7Time To Compile-O0-O1-O2-O3-O2 -march=native-O3 -march=native-Ofast -march=native612182430SE +/- 0.12, N = 3SE +/- 0.03, N = 3SE +/- 0.06, N = 3SE +/- 0.04, N = 3SE +/- 0.05, N = 3SE +/- 0.04, N = 3SE +/- 0.05, N = 3SE +/- 0.05, N = 3SE +/- 0.07, N = 3SE +/- 0.07, N = 3SE +/- 0.03, N = 3SE +/- 0.04, N = 3SE +/- 0.04, N = 3SE +/- 0.05, N = 310.9318.8522.3622.8323.0723.1023.1511.0817.0022.8423.1224.8825.1625.17

Redis

Test: SET

GCCClangOpenBenchmarking.orgRequests Per Second, More Is BetterRedis 3.0.1Test: SET-Ofast -march=native-O3-O1-O2-O3 -march=native-O2 -march=native-O0500K1000K1500K2000K2500KSE +/- 9379.40, N = 3SE +/- 5504.91, N = 3SE +/- 42146.85, N = 3SE +/- 42585.88, N = 3SE +/- 62171.83, N = 6SE +/- 59339.63, N = 6SE +/- 18888.09, N = 6SE +/- 48427.64, N = 6SE +/- 51322.74, N = 6SE +/- 37304.29, N = 3SE +/- 55315.76, N = 6SE +/- 89985.99, N = 6SE +/- 78877.64, N = 6SE +/- 18772.48, N = 52243907.582183433.832175575.752136957.542104521.042076614.151189110.862127555.192078148.712064604.792037699.961977929.481962280.521263741.851. (CC) gcc options: -ggdb -rdynamic -lm -pthread -ldl

Redis

Test: GET

GCCClangOpenBenchmarking.orgRequests Per Second, More Is BetterRedis 3.0.1Test: GET-O3 -march=native-O2 -march=native-Ofast -march=native-O1-O2-O3-O0700K1400K2100K2800K3500KSE +/- 112169.48, N = 6SE +/- 119850.30, N = 6SE +/- 115634.67, N = 6SE +/- 149849.11, N = 6SE +/- 147992.17, N = 6SE +/- 114387.02, N = 6SE +/- 38735.61, N = 6SE +/- 28358.49, N = 3SE +/- 43230.51, N = 5SE +/- 114553.51, N = 6SE +/- 107422.82, N = 6SE +/- 100673.54, N = 6SE +/- 117026.48, N = 6SE +/- 5812.17, N = 33116395.333023321.583007445.962953039.462951037.212910194.791663526.963102899.833100373.253067218.962962310.252923813.882862656.751864548.291. (CC) gcc options: -ggdb -rdynamic -lm -pthread -ldl


Phoronix Test Suite v10.8.4