1. Computers
  2. Display Drivers
  3. Graphics Cards
  4. Memory
  5. Motherboards
  6. Processors
  7. Software
  8. Storage
  9. Operating Systems


Facebook RSS Twitter Twitter Google Plus


Phoronix Test Suite

OpenBenchmarking Benchmarking Platform
Phoromatic Test Orchestration

Intel Core i7 AVX GCC Compiler Tuning Results

Compiler

Published on 23 March 2012 11:43 AM EDT
Written by Michael Larabel in Compiler
18 Comments

For those owners of Intel's latest-generation Core i3/i5/i7 "Sandy Bridge" processors, here's a quick look at the impact of some GCC tuning options specific to these latest AVX-enabled Intel processors.

When carrying out the recent Intel Sandy Bridge Shapes Up On GCC 4.7 Compiler benchmarks I conducted a few extra tests, which I had meant to put out earlier, but now with GCC 4.7 being released yesterday, it's a good time to go through these compiler optimizations on this 25th-anniversary GNU Compiler Collection release.

This testing was being done from the speedy Intel Core i7 3960X Sandy Bridge Extreme Edition system. The Core i7 3960X Sandy-E has six physical cores plus Hyper Threading and for this testing was overclocked to 4.5GHz. This system is a joy to work with -- especially for compiler testing -- since it can build the Linux kernel in under one minute. Ubuntu 12.04 LTS x86_64 with the Linux 3.2 kernel was running on the software side while built from source was the GCC 4.7 snapshot with --enable-lto and --enable-checking=release flags.

First up are some test results when building out some popular from-source test profiles with different -march= options. This Intel Core i7 Sandy Bridge processor was tested in its stock build configuration (generic), core2, corei7, and corei7-avx. The -march=corei7-avx option is most appropriate for Sandy Bridge since it enables the Advanced Vector Extensions support as well as the AES and PCLMUL instruction sets for Sandy Bridge. Here's the overview from the GCC i386/x86_64 options page:
`core2'
Intel Core 2 CPU with 64-bit extensions, MMX, SSE, SSE2, SSE3 and SSSE3 instruction set support.
`corei7'
Intel Core i7 CPU with 64-bit extensions, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1 and SSE4.2 instruction set support.
`corei7-avx'
Intel Core i7 CPU with 64-bit extensions, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AES and PCLMUL instruction set support.
With the forthcoming Intel Ivy Bridge processors there is also the core-avx-i option that includes the Sandy Bridge (corei7-avx) options while also tacking in support for the new Ivy instruction sets: FSGSBASE, RDRND and F16C.

First up with the C-Ray test favorite, the -march= option yielding the biggest benefit was the proper corei7-avx option where as core2 and corei7-avx had minimal affect over the generic build.

Smallpt also had a small benefit out of the Core i7 optimizations with AVX.

Some GraphicsMagick tests also benefited, but not all of them.

Another option for Intel Sandy Bridge owners is to build out GCC with the --with-fpmath=avx configure switch. This option enables the GCC compilers to utilize AVX floating-point arithmetic.

Not many of the usual tests benefited from enabling this AVX floating-point math in the compiler, but producing noticeably results were the Fortran-written NAS Parallel Benchmarks from NASA. Some older GCC 4.6 AVX benchmarks remain available for those interested. Other compiler benchmarks from community members and other organizations continue to be made available over OpenBenchmarking.org.

Stay tuned for upcoming benchmarks of GCC 4.7 and LLVM/Clang 3.1. Those running their own compiler tests with the Phoronix Test Suite there are compiler reporting improvements if using 3.8-Bygland or newer.

About The Author
Michael Larabel is the principal author of Phoronix.com and founded the web-site in 2004 with a focus on enriching the Linux hardware experience and being the largest web-site devoted to Linux hardware reviews, particularly for products relevant to Linux gamers and enthusiasts but also commonly reviewing servers/workstations and embedded Linux devices. Michael has written more than 10,000 articles covering the state of Linux hardware support, Linux performance, graphics hardware drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated testing software. He can be followed via and or contacted via .
Latest Linux News
  1. Premium Users Now Can Experience Our New Site
  2. XFS Will Get DAX Support In The Linux 4.2 Kernel
  3. X.Org Server Lands More Mode-Setting/GLAMOR Improvements, But No Sign Of 1.18
  4. Linux Mint 17.2 Officially Released With Cinnamon/MATE Flavors
  5. Fedora For MIPS Is Now Out In Testing, Supports The Creator CI20
  6. KDE Plasma 5.3.2 Fixes Shutdown Scripts, Few Dozen Other Bugs
  7. KDE Marks Four Years In Its Process Of Porting To Wayland
  8. Btrfs In Linux 4.2 Brings Quota Updates, Many Fixes
  9. Latest Rumor Pegs Microsoft Wanting To Buy AMD
  10. The Next-Gen Phoronix Site Experience Is Almost Ready
Latest Articles & Reviews
  1. How KDE VDG Is Trying To Make Open-Source Software Beautiful
  2. Attempting To Try Out BCache On The Linux 4.1 Kernel
  3. CompuLab's Fitlet Is A Very Tiny, Fanless, Linux PC With AMD A10 Micro
  4. AMD A10-7870K Godavari: RadeonSI Gallium3D vs. Catalyst Linux Drivers
Most Viewed News This Week
  1. Kubuntu 15.10 Could Be The End Of The Road
  2. Linus Is Looking Forward To Merging KDBUS, But Not Convinced By Performance
  3. NVIDIA Starts Supplying Open-Source Hardware Reference Headers
  4. KDBUS Won't Be Pushed Until The Linux 4.3 Kernel
  5. Linux 4.2 Kernel Gets Port To New Processor Architecture
  6. The Staging Pull For Linux 4.2: "Big, Really Big"
  7. SteamOS "Brewmaster" Is Valve's New Debian 8.1 Based Version
  8. Jonathan Riddell Steps Down From The Kubuntu Council