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

Written by Michael Larabel in Software on 27 January 2012 at 02:00 AM EST. Page 3 of 7. 1 Comment.

In summary, the current GCC 4.6 and LLVM 3.0 releases have support for the current-generation Sandy Bridge processors. With GCC 4.7 and LLVM 3.1, which are coming this year, there will be proper support for the soon-to-be-released Ivy Bridge processors. At the same time will also be first-cut support for Intel Haswell processors, which are still more than a year away. This is very exciting to see the leading compilers already working on the new Haswell instructions and that the compiler support should be complete and widespread by the time the hardware is actually available to the public. Haswell is still expected to be based on a 22nm process and besides the AVX2 and other Haswell New Instructions, but besides that it is anticipated there will be a new CPU cache design, a new level of power-savings, up to 32MB of L3 cache, and other new exciting features.

In terms of other compiler coverage for the latest Intel hardware, the AMD Open64 4.5 and Open64 5.0 releases added in AVX, XOP, and FMA instruction set support that's obviously targeted at the Bulldozer CPUs with this being the compiler that AMD largely enjoys working on. PathScale's EKOPath compiler also has support for the current-generation AVX and other x86 instruction sets. Intel's C/C++ compiler also obviously has support for their latest products.

I also took this opportunity to conduct some general compiler benchmarks to see how GCC 4.7 and LLVM/Clang 3.1 are improving against GCC 4.6 and LLVM/Clang 3.0, respectively, for Intel Sandy Bridge. For pounding these compilers the Intel Core i7 3960X Sandy Bridge Extreme Edition setup was used with its six cores plus Hyper Threading running at 4.5GHz. This high-end test system with the $1000+ USD CPU was running Ubuntu 11.10 (x86_64) and the Linux 3.2 mainline kernel.

GCC 4.6.2 and GCC 4.7-20120107 (the GCC 4.7 snapshot from early January) were compared when building the each of the tests with the same compiler flags and tuning options between compiler releases, which were also the same under the LLVM/Clang testing. (Note: some major compiler reporting improvements are soon to be committed to the Phoronix Test Suite and can talk about them at that time.) First up is a look at the GNU Compiler Collection tests with some C, C++, and Fortran tests.


Related Articles