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

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.

Latest Articles & Reviews
  1. Ubuntu 15.04 Offers Faster OpenGL For AMD Radeon GPUs On Open-Source
  2. Ubuntu 15.04 Brings Some Graphics Performance Improvements For Intel Haswell
  3. Sub-$20 802.11n USB WiFi Adapter That's Linux Friendly
  4. The Lenovo T450s Is Working Beautifully With Linux
  5. Linux 4.0 SSD EXT4 / Btrfs / XFS / F2FS Benchmarks
  6. Linux 4.0 Hard Drive Comparison With Six File-Systems
Latest Linux News
  1. The Difference In Optimizations Between NIR & GLSL
  2. OpenMandriva Lx 3 Alpha: Adds UEFI Support, Defaults To LXQt
  3. Systemd Kills Off Shutdownd
  4. There's Now More Than 1,100 Games On Steam For Linux
  5. Btrfs In Linux 4.1 Has Fixes For File-Systems Of 20 Terabytes & Up
  6. Microsoft's CoreCLR Now Works On FreeBSD
  7. Unigine 2.0 Beta 2 Brings PBR, SSR, Kinect 2 Support
  8. KDBUS Still Hasn't Been Pulled, Might Not Land For Linux 4.1
  9. The State Of The Lima/Tamil Driver Code
  10. The New Linux Performance Test Lab Is Already Being Expanded
Most Viewed News This Week
  1. AMD Releases New "AMDGPU" Linux Kernel Driver & Mesa Support
  2. EXT4 In Linux 4.1 Adds File-System Level Encryption
  3. AMD Open-Sources "Addrlib" From Catalyst
  4. My Favorite Computer Desk Of The Past Decade For Less Than $100
  5. Library Operating System (LibOS) For Linux Still Being Pursued
  6. Red Hat Joins Khronos, The Group Behind OpenGL & Vulkan
  7. Linux-Powered Endless Computer Raises $100k+ In A Few Days
  8. Features Thus Far For The Linux 4.1 Kernel