GCC 4.6 Compiler Performance With AVX On Sandy Bridge

Written by Michael Larabel in Processors on 7 February 2011 at 09:40 AM EST. Page 2 of 6. 16 Comments.

When starting out with the PostgreSQL test, the results were quite shaky. GCC 4.4.5 was faster than GCC 4.3.5, but the database performance regressed when built by GCC 4.5.2 and dropped even further with GCC 4.6.0. When using the corei2 march/mtune flags for building the compiler and open-source Linux benchmarks via the Phoronix Test Suite, there was a definitive improvement over GCC 4.6.0 without the flags. However, when switching from the core2 to corei7 tuning, the performance actually dropped. When enabling the corei7-avx support, as should be for this Sandy Bridge CPU, the number of PostgreSQL transactions per second peaked for being on GCC 4.6 but still was not as fast as found in GCC 4.4.5 or GCC 4.5.2 Enabling the AVX floating-point math library support was of no benefit.

When running the Apache web-server, using the core2/corei7-avx options were of no benefit but actually led to a drop in the number of requests per second being handled. Enabling the AVX floating-point math support did improve the performance, but it still was behind that of a vanilla GCC 4.6.0 build or the numbers from GCC 4.3/4.4/4.5.

When using the respective GCC release to build the Apache web server, however, using the mtune and march optimizations led to a great decrease in the time required to build the open-source software. There was not, however, any build speed-up attributed to using the corei7/corei7-avx options for Apache but using just the core2 flag had squeezed as much as it could out of the system.


Related Articles