AMD Bulldozer "bdver1" Compiler Performance
It is time for another round of compiler benchmarks on AMD's latest FX-8150 Bulldozer processor. In this article is comparing the GCC 4.6.1, GCC 4.7 development, Open64 4.2.4, and AMD Open64 4.2.5.2 compilers in their stock configuration, when the binaries are built again but with the march/mtune flags set to "bdver1", and a third when being built with the "bdver1" architecture and tuning flags along with "-Ofast" for the highest-level of compiler optimizations.
This article is in continuation of all the other Linux tests that have been done on Phoronix in recent weeks when reviewing the AMD FX-8150. The other articles include Multi-Core Scaling Performance Of AMD's Bulldozer, AMD Bulldozer With GCC, Open64, LLVM/Clang Compilers, LLVMpipe Performance On AMD Bulldozer, Intel Sandy Bridge, and Open64 Compiler Tuning On AMD Bulldozer FX-8150. The difference in this article is comparing the GCC and Open64 releases when being built in their stock configuration, with the bdver1 tuning, and then again with bdver1 plus the -Ofast mode.
This testing took place in late October with the latest compiler releases at the time. The next round of Bulldozer compiler tests will look at the performance of the brand new Open64 5.0 compiler, which does have more optimizations for these new AMD FX processors. Worth noting about Open64 4.2.4 and AMD Open64 4.2.5.2 is that when pairing the "-mtune=bdver1 -march=bdver1" CFLAGS/CXXFLAGS with "-Ofast", none of the binaries generated had worked. However, the binaries built by the two GCC releases with these flags had worked fine. For those out of the loop, "bdver1" is the family name to enable compiler optimizations for the first-generation AMD Bulldozer CPUs. There are optimizations for GCC and Open64, but bdver1 optimizations directly have not yet landed for LLVM/Clang, which is why that compiler stack was left out of today's tests.