AMD AOCC 3.2 Helps Squeeze A Bit More Out Of Zen 3
Released earlier this month was AMD's AOCC 3.2 compiler based on LLVM/Clang/Flang that provides optimized support for AMD Zen processors. I've been running some benchmarks of AOCC 3.2 compared to prior AMD Optimizing C/C++ Compiler releases and this newest release has been helpful in squeezing a bit more out of Zen 3.
AOCC 3.2 was released earlier this month and re-bases the binary-only compiler atop upstream LLVM 13.0, continues improving its Fortran language support via the Flang front-end, and has other updates. This follows AOCC 3.1 from the summer and AOCC 3.0 that released back in March alongside the AMD EPYC 7003 "Milan" processors.
Being curious about the AOCC 3.2 update, I ran some benchmarks on an AMD EPYC 72F3 Milan processor with various open-source benchmarks built under AOCC 3.2 as well as AOCC v3.1 and v3.0 for seeing how AMD's compiler performance has evolved just over the past nine months since these current-generation AMD server processors were introduced.
The CFLAGS/CXXFLAGS were maintained the same throughout testing of all three AMD compiler releases. AOCC also supports Ryzen and Ryzen Threadripper processors too, if there is enough interest I'll run some AOCC 3.2 benchmarks there for seeing how the performance has evolved with more desktop-type workloads.