Intel Haswell GCC 4.8 core-avx2 Tuning Testing Intel Core i7 4770K with different CFLAGS/CXXFLAGS to look at the core-avx2 Haswell GCC 4.8.1 compiler optimizations. Benchmarks by Michael Larabel of Phoronix for a future article.
HTML result view exported from: https://openbenchmarking.org/result/1309165-SO-1309136DA64&sor&gru .
Intel Haswell GCC 4.8 core-avx2 Tuning Processor Motherboard Chipset Memory Disk Graphics Audio Monitor Network OS Kernel Desktop Display Server Display Driver OpenGL Compiler File-System Screen Resolution nocona core2 corei7 corei7-avx core-avx-i core-avx2 test 3820 @ 4.5 Intel Core i7-4770K @ 3.50GHz (8 Cores) Intel DH87RL Intel Haswell DRAM 15360MB 240GB OCZ VERTEX3 Intel Haswell IGP Intel Haswell HDMI VA2431 Intel Connection I217-V Ubuntu 13.04 3.10.0-999-generic (x86_64) Unity 7.0.0 X Server 1.13.3 intel 2.21.9 3.0 Mesa 9.2.0-devel (git-a2e3b1c) GCC 4.8.1 + LLVM 3.2 ext4 1920x1080 Intel Core i7-3770K @ 3.90GHz (8 Cores) ASRock Z77 Pro4-M 16384MB 256GB OCZ VECTOR + 2 x 1000GB SAMSUNG HD103UJ + 80GB INTEL SSDSA2M080 Gallium 0.4 on AMD TAHITI 3072MB (810/1250MHz) LCD3090WQXi Gentoo Base 2.2 3.11.0-drmfixes20130912-core-avx-i (x86_64) KDE X Server 1.14.2.902 (1.14.3 RC 2) radeon 7.2.99 3.0 Mesa 9.3.0-devel (git-f4e35f8) Gallium 0.4 GCC 4.8.1 + Clang 3.4 + LLVM 3.4svn 2560x1600 Intel Core i7-3820 @ 4.20GHz (8 Cores) Gigabyte X79-UD3 Intel Xeon E5/Core 250GB Samsung SSD 840 + 80GB TOSHIBA MK8052GS + 640GB Western Digital WD6401AALS-0 eVGA NVIDIA GeForce GTX 650 Ti 2048MB (928/2700MHz) Realtek ALC898 Intel 82579V Gigabit Connection Linux 3.10.10-1-ARCH (x86_64) Cinnamon 1.8.8 X Server 1.14.2 NVIDIA 325.15 4.3.0 NVIDIA 325.15 GCC 4.8.1 20130725 btrfs OpenBenchmarking.org Compiler Details - nocona: --enable-checking=release --enable-languages=c,c++,fortran - core2: --enable-checking=release --enable-languages=c,c++,fortran - corei7: --enable-checking=release --enable-languages=c,c++,fortran - corei7-avx: --enable-checking=release --enable-languages=c,c++,fortran - core-avx-i: --enable-checking=release --enable-languages=c,c++,fortran - core-avx2: --enable-checking=release --enable-languages=c,c++,fortran - test: --bindir=/usr/x86_64-pc-linux-gnu/gcc-bin/4.8.1 --build=x86_64-pc-linux-gnu --datadir=/usr/share/gcc-data/x86_64-pc-linux-gnu/4.8.1 --disable-altivec --disable-fixed-point --disable-isl-version-check --disable-libgcj --disable-libssp --disable-lto --disable-werror --enable-__cxa_atexit --enable-checking=release --enable-clocale=gnu --enable-languages=c,c++,fortran --enable-libgomp --enable-libmudflap --enable-libstdcxx-time --enable-multilib --enable-nls --enable-obsolete --enable-secureplt --enable-shared --enable-targets=all --enable-threads=posix --host=x86_64-pc-linux-gnu --includedir=/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.1/include --mandir=/usr/share/gcc-data/x86_64-pc-linux-gnu/4.8.1/man --with-cloog --with-multilib-list=m32,m64 --with-python-dir=/share/gcc-data/x86_64-pc-linux-gnu/4.8.1/python - 3820 @ 4.5: --disable-cloog-version-check --disable-install-libiberty --disable-libssp --disable-libstdcxx-pch --disable-libunwind-exceptions --disable-werror --enable-__cxa_atexit --enable-checking=release --enable-clocale=gnu --enable-cloog-backend=isl --enable-gnu-unique-object --enable-gold --enable-languages=c,c++,ada,fortran,go,lto,objc,obj-c++ --enable-ld=default --enable-lto --enable-multilib --enable-plugin --enable-shared --enable-threads=posix --mandir=/usr/share/man --with-linker-hash-style=gnu --with-plugin-ld=ld.gold Processor Details - nocona: Scaling Governor: acpi- freq ondemand - core2: Scaling Governor: acpi- freq ondemand - corei7: Scaling Governor: acpi- freq ondemand - corei7-avx: Scaling Governor: acpi- freq ondemand - core-avx-i: Scaling Governor: acpi- freq ondemand - core-avx2: Scaling Governor: acpi- freq ondemand - test: Scaling Governor: intel_pstate powersave - 3820 @ 4.5: Scaling Governor: intel_pstate powersave
Intel Haswell GCC 4.8 core-avx2 Tuning ttsiod-renderer: Phong Rendering With Soft-Shadow Mapping x264: H.264 Video Encoding graphics-magick: Blur graphics-magick: Sharpen graphics-magick: Resizing graphics-magick: Local Adaptive Thresholding botan: Tiger botan: AES-256 botan: CAST-256 scimark2: Monte Carlo scimark2: Fast Fourier Transform scimark2: Dense LU Matrix Factorization himeno: Poisson Pressure Solver apache: Static Web Page Serving hmmer: Pfam Database Search build-imagemagick: Time To Compile build-linux-kernel: Time To Compile c-ray: Total Time smallpt: Global Illumination Renderer; 100 Samples ffmpeg: H.264 HD To NTSC DV nocona core2 corei7 corei7-avx core-avx-i core-avx2 test 3820 @ 4.5 122.02 156.80 115 83 157 118 438.78 157.97 95.48 615.33 245.07 1825.73 1517.03 24888.11 10.16 76.98 97.89 23.07 26 12.94 121.58 156.74 117 84 160 120 438.87 158.35 95.80 616.21 250.93 1859.97 1564.22 25606.17 10.14 79.03 97.63 22.95 26 13.16 123.14 156.06 116 84 160 120 427.31 157.96 95.54 616.65 249.11 1863.19 1560.18 25490.14 10.22 79.64 97.77 22.95 26 12.93 117.71 155.63 122 96 166 119 442.47 158.19 95.77 616.65 251.86 1851.10 1404.92 25580.44 10.62 80.91 98.10 22.84 26 12.86 116.54 156.08 122 96 167 120 440.37 158.31 95.79 615.76 247.35 1824.28 1630.12 25549.84 10.45 81.06 97.85 22.83 26 13.00 119.78 155.18 138 136 182 121 424.56 158.43 95.76 596.16 226.57 1817.03 1282.30 25644.10 10.55 80.66 97.25 17.02 24 13.01 148.75 158.19 132 83 161 123 553.48 339.88 2386.29 1686.65 23897.32 10.13 59.51 89.94 27.78 87 11.86 130.61 161.39 144 92 177 138 549.20 223.45 2542.25 1735.83 29308.24 9.95 55.02 80.48 26.59 90 OpenBenchmarking.org
TTSIOD 3D Renderer Phong Rendering With Soft-Shadow Mapping OpenBenchmarking.org FPS, More Is Better TTSIOD 3D Renderer 2.2z Phong Rendering With Soft-Shadow Mapping test 3820 @ 4.5 corei7 nocona core2 core-avx2 corei7-avx core-avx-i 30 60 90 120 150 SE +/- 0.27, N = 3 SE +/- 0.03, N = 3 SE +/- 0.45, N = 3 SE +/- 0.39, N = 3 SE +/- 0.76, N = 3 SE +/- 0.09, N = 3 SE +/- 0.66, N = 3 SE +/- 0.36, N = 3 148.75 130.61 123.14 122.02 121.58 119.78 117.71 116.54 -lpthread -flto -lpthread -march=corei7 -flto -march=nocona -flto -march=core2 -flto -march=core-avx2 -flto -march=corei7-avx -flto -march=core-avx-i -flto 1. (CXX) g++ options: -O3 -fomit-frame-pointer -ffast-math -mtune=native -msse -mrecip -mfpmath=sse -msse2 -mssse3 -lSDL -lstdc++
x264 H.264 Video Encoding OpenBenchmarking.org Frames Per Second, More Is Better x264 2013-06-08 H.264 Video Encoding 3820 @ 4.5 test nocona core2 core-avx-i corei7 corei7-avx core-avx2 40 80 120 160 200 SE +/- 1.34, N = 5 SE +/- 0.52, N = 5 SE +/- 0.30, N = 5 SE +/- 0.55, N = 5 SE +/- 0.50, N = 5 SE +/- 0.51, N = 5 SE +/- 0.20, N = 5 SE +/- 0.90, N = 5 161.39 158.19 156.80 156.74 156.08 156.06 155.63 155.18 -lavformat -lavcodec -lavutil -lswscale -lavformat -lavcodec -lavutil -lswscale -march=nocona -march=core2 -march=core-avx-i -march=corei7 -march=corei7-avx -march=core-avx2 1. (CC) gcc options: -ldl -m64 -lm -lpthread -O3 -ffast-math -std=gnu99 -fomit-frame-pointer -fno-tree-vectorize
GraphicsMagick Operation: Blur OpenBenchmarking.org Iterations Per Minute, More Is Better GraphicsMagick 1.3.16 Operation: Blur 3820 @ 4.5 core-avx2 test core-avx-i corei7-avx core2 corei7 nocona 30 60 90 120 150 SE +/- 0.33, N = 3 SE +/- 0.88, N = 3 SE +/- 0.00, N = 3 SE +/- 0.67, N = 3 SE +/- 1.00, N = 3 SE +/- 0.00, N = 3 SE +/- 1.00, N = 3 SE +/- 0.00, N = 3 144 138 132 122 122 117 116 115 -O2 -llcms2 -ltiff -lfreetype -ljasper -lxml2 -lgomp -O3 -march=core-avx2 -ljbig -O2 -llcms2 -ltiff -lfreetype -lxml2 -lrt -O3 -march=core-avx-i -ljbig -O3 -march=corei7-avx -ljbig -O3 -march=core2 -ljbig -O3 -march=corei7 -ljbig -O3 -march=nocona -ljbig 1. (CC) gcc options: -std=gnu99 -fopenmp -pthread -ljpeg -lXext -lSM -lICE -lX11 -llzma -lbz2 -lz -lm -lpthread
GraphicsMagick Operation: Sharpen OpenBenchmarking.org Iterations Per Minute, More Is Better GraphicsMagick 1.3.16 Operation: Sharpen core-avx2 core-avx-i corei7-avx 3820 @ 4.5 corei7 core2 test nocona 30 60 90 120 150 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.00, N = 3 136 96 96 92 84 84 83 83 -O3 -march=core-avx2 -ljbig -O3 -march=core-avx-i -ljbig -O3 -march=corei7-avx -ljbig -O2 -llcms2 -ltiff -lfreetype -ljasper -lxml2 -lgomp -O3 -march=corei7 -ljbig -O3 -march=core2 -ljbig -O2 -llcms2 -ltiff -lfreetype -lxml2 -lrt -O3 -march=nocona -ljbig 1. (CC) gcc options: -std=gnu99 -fopenmp -pthread -ljpeg -lXext -lSM -lICE -lX11 -llzma -lbz2 -lz -lm -lpthread
GraphicsMagick Operation: Resizing OpenBenchmarking.org Iterations Per Minute, More Is Better GraphicsMagick 1.3.16 Operation: Resizing core-avx2 3820 @ 4.5 core-avx-i corei7-avx test corei7 core2 nocona 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.33, N = 3 SE +/- 0.00, N = 3 SE +/- 0.00, N = 3 SE +/- 0.33, N = 3 182 177 167 166 161 160 160 157 -O3 -march=core-avx2 -ljbig -O2 -llcms2 -ltiff -lfreetype -ljasper -lxml2 -lgomp -O3 -march=core-avx-i -ljbig -O3 -march=corei7-avx -ljbig -O2 -llcms2 -ltiff -lfreetype -lxml2 -lrt -O3 -march=corei7 -ljbig -O3 -march=core2 -ljbig -O3 -march=nocona -ljbig 1. (CC) gcc options: -std=gnu99 -fopenmp -pthread -ljpeg -lXext -lSM -lICE -lX11 -llzma -lbz2 -lz -lm -lpthread
GraphicsMagick Operation: Local Adaptive Thresholding OpenBenchmarking.org Iterations Per Minute, More Is Better GraphicsMagick 1.3.16 Operation: Local Adaptive Thresholding 3820 @ 4.5 test core-avx2 core-avx-i corei7 core2 corei7-avx nocona 30 60 90 120 150 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.33, N = 3 138 123 121 120 120 120 119 118 -O2 -llcms2 -ltiff -lfreetype -ljasper -lxml2 -lgomp -O2 -llcms2 -ltiff -lfreetype -lxml2 -lrt -O3 -march=core-avx2 -ljbig -O3 -march=core-avx-i -ljbig -O3 -march=corei7 -ljbig -O3 -march=core2 -ljbig -O3 -march=corei7-avx -ljbig -O3 -march=nocona -ljbig 1. (CC) gcc options: -std=gnu99 -fopenmp -pthread -ljpeg -lXext -lSM -lICE -lX11 -llzma -lbz2 -lz -lm -lpthread
Botan Test: Tiger OpenBenchmarking.org Mbytes/s, More Is Better Botan 1.10.3 Test: Tiger corei7-avx core-avx-i core2 nocona corei7 core-avx2 100 200 300 400 500 442.47 440.37 438.87 438.78 427.31 424.56 1. (CXX) g++ options: -m64 -ldl -lpthread -lrt -O2
Botan Test: AES-256 OpenBenchmarking.org Mbytes/s, More Is Better Botan 1.10.3 Test: AES-256 core-avx2 core2 core-avx-i corei7-avx nocona corei7 40 80 120 160 200 158.43 158.35 158.31 158.19 157.97 157.96 1. (CXX) g++ options: -m64 -ldl -lpthread -lrt -O2
Botan Test: CAST-256 OpenBenchmarking.org Mbytes/s, More Is Better Botan 1.10.3 Test: CAST-256 core2 core-avx-i corei7-avx core-avx2 corei7 nocona 20 40 60 80 100 95.80 95.79 95.77 95.76 95.54 95.48 1. (CXX) g++ options: -m64 -ldl -lpthread -lrt -O2
SciMark Computational Test: Monte Carlo OpenBenchmarking.org Mflops, More Is Better SciMark 2.0 Computational Test: Monte Carlo corei7-avx corei7 core2 core-avx-i nocona core-avx2 test 3820 @ 4.5 130 260 390 520 650 SE +/- 0.44, N = 4 SE +/- 0.44, N = 4 SE +/- 0.51, N = 4 SE +/- 0.44, N = 4 SE +/- 0.72, N = 4 SE +/- 20.17, N = 8 SE +/- 0.00, N = 4 SE +/- 9.67, N = 8 616.65 616.65 616.21 615.76 615.33 596.16 553.48 549.20
SciMark Computational Test: Fast Fourier Transform OpenBenchmarking.org Mflops, More Is Better SciMark 2.0 Computational Test: Fast Fourier Transform test corei7-avx core2 corei7 core-avx-i nocona core-avx2 3820 @ 4.5 70 140 210 280 350 SE +/- 0.34, N = 4 SE +/- 1.22, N = 4 SE +/- 0.67, N = 4 SE +/- 0.86, N = 4 SE +/- 2.13, N = 4 SE +/- 2.50, N = 4 SE +/- 2.02, N = 4 SE +/- 2.69, N = 4 339.88 251.86 250.93 249.11 247.35 245.07 226.57 223.45
SciMark Computational Test: Dense LU Matrix Factorization OpenBenchmarking.org Mflops, More Is Better SciMark 2.0 Computational Test: Dense LU Matrix Factorization 3820 @ 4.5 test corei7 core2 corei7-avx nocona core-avx-i core-avx2 500 1000 1500 2000 2500 SE +/- 38.45, N = 5 SE +/- 3.08, N = 4 SE +/- 3.12, N = 4 SE +/- 5.53, N = 4 SE +/- 22.67, N = 4 SE +/- 21.90, N = 4 SE +/- 23.35, N = 4 SE +/- 28.95, N = 4 2542.25 2386.29 1863.19 1859.97 1851.10 1825.73 1824.28 1817.03
Himeno Benchmark Poisson Pressure Solver OpenBenchmarking.org MFLOPS, More Is Better Himeno Benchmark 3.0 Poisson Pressure Solver 3820 @ 4.5 test core-avx-i core2 corei7 nocona corei7-avx core-avx2 400 800 1200 1600 2000 SE +/- 18.21, N = 3 SE +/- 0.98, N = 3 SE +/- 1.05, N = 3 SE +/- 3.07, N = 3 SE +/- 0.75, N = 3 SE +/- 1.20, N = 3 SE +/- 105.46, N = 6 SE +/- 19.87, N = 6 1735.83 1686.65 1630.12 1564.22 1560.18 1517.03 1404.92 1282.30 -march=core-avx-i -march=core2 -march=corei7 -march=nocona -march=corei7-avx -march=core-avx2 1. (CC) gcc options: -O3
Apache Benchmark Static Web Page Serving OpenBenchmarking.org Requests Per Second, More Is Better Apache Benchmark 2.4.3 Static Web Page Serving 3820 @ 4.5 core-avx2 core2 corei7-avx core-avx-i corei7 nocona test 6K 12K 18K 24K 30K SE +/- 162.25, N = 3 SE +/- 170.85, N = 3 SE +/- 229.80, N = 3 SE +/- 178.37, N = 3 SE +/- 126.25, N = 3 SE +/- 193.34, N = 3 SE +/- 107.43, N = 3 SE +/- 94.17, N = 3 29308.24 25644.10 25606.17 25580.44 25549.84 25490.14 24888.11 23897.32 -O2 -O3 -march=core-avx2 -O3 -march=core2 -O3 -march=corei7-avx -O3 -march=core-avx-i -O3 -march=corei7 -O3 -march=nocona -O2 1. (CC) gcc options: -shared -fPIC -pthread
Timed HMMer Search Pfam Database Search OpenBenchmarking.org Seconds, Fewer Is Better Timed HMMer Search 2.3.2 Pfam Database Search 3820 @ 4.5 test core2 nocona corei7 core-avx-i core-avx2 corei7-avx 3 6 9 12 15 SE +/- 0.17, N = 4 SE +/- 0.03, N = 3 SE +/- 0.01, N = 3 SE +/- 0.06, N = 3 SE +/- 0.06, N = 3 SE +/- 0.04, N = 3 SE +/- 0.17, N = 3 SE +/- 0.02, N = 3 9.95 10.13 10.14 10.16 10.22 10.45 10.55 10.62 -O2 -O2 -O3 -march=core2 -O3 -march=nocona -O3 -march=corei7 -O3 -march=core-avx-i -O3 -march=core-avx2 -O3 -march=corei7-avx 1. (CC) gcc options: -pthread -lhmmer -lsquid -lm
Timed ImageMagick Compilation Time To Compile OpenBenchmarking.org Seconds, Fewer Is Better Timed ImageMagick Compilation 6.8.1-10 Time To Compile 3820 @ 4.5 test nocona core2 corei7 core-avx2 corei7-avx core-avx-i 20 40 60 80 100 SE +/- 0.08, N = 3 SE +/- 0.08, N = 3 SE +/- 0.04, N = 3 SE +/- 0.06, N = 3 SE +/- 0.18, N = 3 SE +/- 0.32, N = 3 SE +/- 0.10, N = 3 SE +/- 0.31, N = 3 55.02 59.51 76.98 79.03 79.64 80.66 80.91 81.06
Timed Linux Kernel Compilation Time To Compile OpenBenchmarking.org Seconds, Fewer Is Better Timed Linux Kernel Compilation 3.1 Time To Compile 3820 @ 4.5 test core-avx2 core2 corei7 core-avx-i nocona corei7-avx 20 40 60 80 100 SE +/- 0.50, N = 3 SE +/- 0.79, N = 3 SE +/- 0.60, N = 3 SE +/- 0.54, N = 3 SE +/- 0.69, N = 3 SE +/- 0.76, N = 3 SE +/- 0.59, N = 3 SE +/- 0.54, N = 3 80.48 89.94 97.25 97.63 97.77 97.85 97.89 98.10
C-Ray Total Time OpenBenchmarking.org Seconds, Fewer Is Better C-Ray 1.1 Total Time core-avx2 core-avx-i corei7-avx core2 corei7 nocona 3820 @ 4.5 test 7 14 21 28 35 SE +/- 0.00, N = 3 SE +/- 0.00, N = 3 SE +/- 0.01, N = 3 SE +/- 0.01, N = 3 SE +/- 0.01, N = 3 SE +/- 0.02, N = 3 SE +/- 0.02, N = 3 SE +/- 0.00, N = 3 17.02 22.83 22.84 22.95 22.95 23.07 26.59 27.78 -march=core-avx2 -march=core-avx-i -march=corei7-avx -march=core2 -march=corei7 -march=nocona 1. (CC) gcc options: -lm -lpthread -O3
Smallpt Global Illumination Renderer; 100 Samples OpenBenchmarking.org Seconds, Fewer Is Better Smallpt 1.0 Global Illumination Renderer; 100 Samples core-avx2 nocona core2 corei7 corei7-avx core-avx-i test 3820 @ 4.5 20 40 60 80 100 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.00, N = 3 24 26 26 26 26 26 87 90 -O3 -march=core-avx2 -O3 -march=nocona -O3 -march=core2 -O3 -march=corei7 -O3 -march=corei7-avx -O3 -march=core-avx-i 1. (CXX) g++ options: -fopenmp
FFmpeg H.264 HD To NTSC DV OpenBenchmarking.org Seconds, Fewer Is Better FFmpeg 1.1 H.264 HD To NTSC DV test corei7-avx corei7 nocona core-avx-i core-avx2 core2 3 6 9 12 15 SE +/- 0.06, N = 3 SE +/- 0.06, N = 3 SE +/- 0.01, N = 3 SE +/- 0.07, N = 3 SE +/- 0.05, N = 3 SE +/- 0.12, N = 3 SE +/- 0.09, N = 3 11.86 12.86 12.93 12.94 13.00 13.01 13.16 -lva -lpthread -lrt -march=corei7-avx -march=corei7 -march=nocona -march=core-avx-i -march=core-avx2 -march=core2 1. (CC) gcc options: -lavdevice -lavfilter -lavformat -lavcodec -lswresample -lswscale -lavutil -ldl -lasound -lSDL -lm -pthread -lbz2 -std=c99 -fomit-frame-pointer -O3 -fno-math-errno -fno-signed-zeros -fno-tree-vectorize -MMD -MF -MT
Phoronix Test Suite v10.8.4