AMD AOCC 3.2 vs. GCC vs. Clang Compiler Performance On Zen 3
Earlier this month AMD released AOCC 3.2 as the newest version of their LLVM/Clang-based compiler focused on delivering optimized Zen performance. With our initial AMD AOCC 3.2 benchmarks on Zen 3, there is nice incremental improvement compared to the prior 3.x releases. But how does this AMD-optimized compiler stack up against the upstream LLVM Clang and GCC compilers? Here is a look at the AMD AOCC performance against the current Clang and GCC C/C++ compilers.
AOCC 3.x continues to be focused on delivering optimal generated binaries for AMD Zen 3 Ryzen/EPYC processors.
This round of compiler testing was carried out on the frequency-oprimized AMD EPYC 72F3 (Zen 3) server processor with Supermicro H12SSL-i motherboard, 8 x 16GB DDR4-3200 memory, and running Ubuntu 21.04 with the Linux 5.14 kernel. Following the AOCC 3.0 / 3.1 / 3.2 compiler benchmarks, the comparison was extended to include LLVM Clang 12.0.1, LLVM Clang 13.0.1, GCC 10.3, GCC 11.2, and GCC 12.0 in its current development form.
While testing all of these compilers with their release builds, the CFLAGS/CXXFLAGS were set to "-O3 -march=native" throughout. The main focus of this testing is seeing how AMD's in-house AOCC downstream of LLVM/Clang is performing against the common GCC and Clang releases for the performance of the resulting binaries from these compilers. AOCC has also been maturing its Fortran support with the FLANG front-end and comparison tests that will come in due course with the LLVM FLANG support still maturing.