An Early Look At The GCC 9.0 Performance On AMD EPYC
While GCC 9 has just been under development for a relatively short period of time, here are our initial benchmarks of GCC 9.0 SVN on and AMD EPYC server compared to the GCC 8.2 stable release candidate when tested at various optimization levels as well as PGO (Profile Guided Optimizations).
Being curious about the direction GCC 9 is moving while still very young in its development lifecycle, I ran some benchmarks of the current GCC 9 (Git master) code as of 20 July as well as the GCC 8 branch code for what is the current GCC 8.2 release candidate state as of the same day. Both compiler releases were configured and built in the same mode (--disable-multilib --enable-checking=release).
With both of these compilers, the benchmarks were built and tested at -O2, -O3, and -O3 -march=native CFLAGS/CXXFLAGS. Additionally, profile guided optimizations (PGO) were also tested while sticking to -O3 -march=native as well for a really optimized experience in the tests where PGO is able to run happily with our new automated PGO benchmarking module. For those curious how GCC 8/9 is comparing to the latest LLVM Clang state, those benchmarks are coming in a few days.
All of this GCC compiler benchmarking was done on the high-end AMD EPYC 7601 32-core/64-thread processor running within the Tyan 2U server platform. Ubuntu 18.10 was Cosmic Cuttlefish in its current development state was running on this server paired with the Linux 4.16 kernel. All of these GNU Compiler Collection benchmarks were carried out in a fully-automated and reproducible manner using the open-source Phoronix Test Suite benchmarking software.