AMD AOCC 3.1 Compiler Performance On EPYC 7003 / Zen 3
Last week AMD released their AOCC 3.1 compiler that is their downstream of LLVM Clang/Flang and carrying various yet-to-be-upstreamed patches for benefiting their latest processors. While just a point release, curiosity got the best of me for firing up benchmarks of this latest AMD Optimizing C/C++ Compiler release.
AOCC 3.1 rebases itself against the official LLVM 12.0 upstream state where as AOCC 3.0 when introduced in March alongside the EPYC 7003 series was using an LLVM 12 development snapshot. AOCC 3.1 also carries various Flang improvements for its Fortran support, including better OpenMP 4.5 support. Plus there is whatever other new/updated patches too on the AMD side that accumulated over the past few months, but not entirely clear with AOCC continuing to be distributed as just only a binary-only compiler.
Curious about any performance impact of AOCC 3.1, I ran some benchmarks of AOCC 3.1 against the prior AOCC 3.0 release. This benchmarking was using an AMD EPYC 7543 (Zen 3) 32-core/64-thread processor from the Tyan S8036GM2NE-LE server that I have been testing out the past number of weeks. This server was running Ubuntu 21.04. While testing both AOCC releases, "-O3 -march=znver3" were the CFLAGS/CXXFLAGS specified while running a variety of C/C++ benchmarks on this official AMD compiler.