AMD AOCC Performance On EPYC 7773X Milan-X Against GCC, Clang Compilers
Out of 56 C/C++ benchmarks carried out on this AMD EPYC 7773X 2P server, building the software with AMD AOCC 3.2 led to the fastest performance 66% of the time followed by GCC 11.2 built binaries picking up wins 19.6% of the time and LLVM Clang 14.0 at 14%. See all the benchmark results in full via this OpenBenchmarking.org result page.
If taking the geometric mean of that diverse range of 56 different C/C++ open-source workloads built under all three compilers, AOCC 3.2 came in front with a measurable lead over the other compilers. LLVM Clang 14.0 as the default Clang on Ubuntu 22.04 LTS was ~2% faster (geo mean) than the default GCC 11.2 system compiler on Ubuntu Jammy Jellyfish. Meanwhile AMD AOCC 3.2 was about 8% faster than the GCC 11.2 built binaries on Ubuntu 22.04 LTS for this AMD EPYC Milan-X server with 1.5GB of L3 cache and 128 cores / 256 threads.
While we certainly wish for all relevant AMD optimizations to get into upstream GCC and LLVM/Clang, AOCC does continue to show itself useful if wishing to maximize the performance out of AMD Zen CPUs on Linux for optimizations not yet upstreamed or relevant/suitable for upstreaming. AOCC 3.2 as the latest release is from last December so it will be interesting to see what more AMD compiler engineers may be able to squeeze out this year and the benefits once re-basing against the newer upstream LLVM code-base. Plus with there (unfortunately) yet to be any "znver4" enablement in upstream GCC and LLVM, AOCC will likely remain the go-to choice at launch of next-generation Zen 4 CPUs for those wanting the best compiler support. Those wishing to try out the AMD Optimizing C/C++ Compiler can find it at developer.amd.com.
If you enjoyed this article consider joining Phoronix Premium to view this site ad-free, multi-page articles on a single page, and other benefits. PayPal or Stripe tips are also graciously accepted. Thanks for your support.