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.org

Compilers Mature For Intel Sandy/Ivy Bridge, Prep For Haswell

Michael Larabel

Published on 27 January 2012
Written by Michael Larabel
Page 1 of 7 - 1 Comment

The leading open-source code compilers -- namely the GNU Compiler Collection (GCC) and LLVM/Clang -- now have maturing support for Intel's Sandy Bridge microarchitecture with further optimizations for the forthcoming Ivy Bridge successor. With the current and next-generation Intel support covered, open-source compiler developers have already moved onto beginning work for supporting Intel's Haswell microarchitecture that will not be launched until 2013.

It's not only the Sandy Bridge graphics driver that has been maturing (it can even outperform the Mac OS X Intel driver for some OpenGL workloads), but the compiler support has been moving in parallel. GCC and LLVM/Clang have been the primary targets for compiler coverage with this latest and greatest Intel hardware, but other code compilers have been advancing too.

When it comes to GCC 4.6, which is the latest GNU Compiler Collection series and was released last March just two months after the Sandy Bridge launch, there was initial AVX support. GCC 4.6 brought support for the Sandy Bridge processors with the AVX support via the march/mtune "corei7-avx" options. Advanced Vector Extensions (AVX) made their debut with Sandy Bridge as an x86 instruction set extension and designed to benefit floating-point-intensive workloads, increase parallelism and performance with floating-point SIMD instructions, and reduce register load. GCC 4.6 was the first release to support the AVX extensions, which then made their debut with AMD hardware later in 2011 when Bulldozer was finally launched.

With GCC 4.6 being the current stable series for this de facto Linux compiler, it's currently found in Ubuntu 11.10, Fedora 16, and will be used in the upcoming Ubuntu 12.04 LTS release. AVX support within the Linux kernel-side was introduced in the Linux 2.6.30 release some time ago. To be released in March/April will be GCC 4.7 with better Sandy/Ivy Bridge support and preliminary support for Intel's architecture of 2013, Haswell.

GCC 4.7 has added in two additional AVX vector conversion instructions (exposed via the "-mf16c" option) and support for the Intel rdrnd instruction (via "-mrdrnd"). The Intel rdrand is an x86 instruction for returning random numbers from a random number generator built into the processor itself. The Ivy Bridge optimizations within GCC can be tapped via the "core-avx-i" model (there's an "-i" prefix compared to the Sandy Bridge "core-avx" mode) for the march/mtune options. This hardware random number generator, which is codenamed "Bull Mountain", is one of the new additions to the Intel Ivy Bridge CPUs that GCC 4.7 will support. The Ivy Bridge optimizations also add in FSGSBASE and F16C instruction support.

GCC 4.7 also adds in support for Intel AVX2. The Advanced Vector Extensions 2 intrinsics, built-in functions, and code generation is exposed via the "-mavx2" option. AVX2 is not an Ivy Bridge feature (it's still AVX1), but a feature of Intel's Haswell microarchitecture for a year later. AVX2 / Haswell New Instructions builds upon Advanced Vector Extensions by expanding most integer AVX instructions to 256-bit, gather support, vector shifts, 3-operate fused multi-accumulate support, and other additions.

Beyond AVX2, there is also support for FMA, BMI1, BMI2, and LZCNT instructions for Haswell, which are other instruction set introduces to be introduced in 2013 with Haswell. The Intel Haswell support within GCC is being exposed by "core-avx2" for march/mtune. It's really great to see the AVX2/BMI2 support already coming to the Free Software Foundation's compiler more than a year before the first hardware using it is set to ship, which is much better than the original AVX compiler support that arrived after the Sandy Bridge hardware was shipping. By the time Intel Haswell processors are shipping, GCC 4.7 should already be widespread. The first distribution set to deploy GCC 4.7 by default is the Fedora 17 "Beefy Miracle" release in May while Ubuntu 12.10 and other Linux distributions should begin adopting this major compiler update in H2'2012.

Besides the greater Sandy/Ivy Bridge and Haswell support, there are also many other improvements to be found in GCC 4.7, but those other features will be saved for another article. Now let's see where LLVM / Clang is at in supporting this exciting Intel hardware.

<< Previous Page
1
Latest Linux Hardware Reviews
  1. Trying The Configurable 45 Watt TDP With AMD's A10-7800 / A6-7400K
  2. Sumo's Omni Gets Reloaded
  3. AMD A10-7800 & A6-7400K APUs Run Great On Linux
  4. Radeon Gallium3D Is Running Increasingly Well Against AMD's Catalyst Driver
Latest Linux Articles
  1. AMD's RadeonSI Driver Sped Up A Lot This Summer
  2. Intel's Latest Linux Graphics Code Competes Against OS X 10.9
  3. Intel Sandy Bridge Gets A Surprise Boost From Linux 3.17
  4. Open-Source Radeon Graphics Have Some Improvements On Linux 3.17
Latest Linux News
  1. CUDA 6.5 Is Doing Great For Blender
  2. Wayland & Weston 1.6 Alpha Released
  3. Nouveau Gets Improved Re-Clocking Handling For Select GPUs
  4. A New First-Person Mystery Game Might Be Coming To Linux
  5. Patch By Patch, LLVM Clang Gets Better At Building The Linux Kernel
  6. VC4 Gallium3D Driver Now Handles X With GLAMOR
  7. Opera 25 Development Release For Linux
  8. Steam Now Supports VA-API For In-Home Game Streaming
  9. GNOME 3.14 Beta Released
  10. Mesa 10.3 Branched & RC1 Released, Mesa 10.4 On Master
Latest Forum Discussions
  1. Systemd 216 Piles On More Features, Aims For New User-Space VT
  2. Btrfs Gets Talked Up, Googler Encourages You To Try Btrfs
  3. OSS radeon driver for A10-7850K (Kaveri)
  4. American Citizens running AMOK for food stamps
  5. What Linux Distribution Should Be Benchmarked The Most?
  6. Company I work for is looking to contribute to Open Source projects... but wrongly?
  7. Microsoft vs. Campaign
  8. Updated and Optimized Ubuntu Free Graphics Drivers