An Early Look At The GCC 12 Compiler Performance On AMD Zen 3

Written by Michael Larabel in GNU on 22 October 2021 at 06:07 AM EDT. 11 Comments
GNU
GCC 12 isn't seeing its stable release until around March~April as usual, but with feature development slowly wrapping up as approaching the next stage of development next month to focus on fixes, recently I wrapped up some preliminary benchmarks for how GCC 12.0 is currently performing against GCC 11.2 on an AMD Ryzen 9 5950X (Zen 3) system.

This is just an initial look at the GCC 12.0 performance as it stands right now for the speed of the resulting binaries compared to when built under GCC 11.2. The benchmarks under test were built under both GNU Compiler Collection releases with "-O2", "-O3", "-O3 -march=native", and "-O3 -march=native -flto".
GCC 12 Ryzen 9 5950X Early Testing

The results at this time and on this hardware though didn't end up being too eventful. There were no dramatic differences overall but largely on-par with GCC 11 performance while this next compiler release has been busy adding new C/C++ language features, new CPU targets, and other improvements.

Out of dozens of benchmarks carried out, only in a few were there differences worth mentioning, and thus this quick one-page article for now. As GCC 12.1 stable approaches next year and testing on more hardware, I'll be back around with more GCC 12 compiler benchmarks. But for now at least from these AMD Zen 3 results it's on stable ground with no broad changes one way or another.
GCC 12 Ryzen 9 5950X Early Testing

GCC 12 Ryzen 9 5950X Early Testing

GCC 12 Ryzen 9 5950X Early Testing

GCC 12 Ryzen 9 5950X Early Testing

Most benchmarks were showing only subtle performance changes between GCC 11.2 and the current GCC 12 development code. Not too unexpected with no ground-breaking optimizations introduced, the AMD Znver3 initial tuning having squeezed into GCC 11, etc.
GCC 12 Ryzen 9 5950X Early Testing

HMMer's performance was seeing some improvements under GCC 12 when built with the "-march=native" optimizations.
GCC 12 Ryzen 9 5950X Early Testing

C-Ray was experiencing a large regression when built with at -O2.
GCC 12 Ryzen 9 5950X Early Testing

GCC 12 Ryzen 9 5950X Early Testing

GCC 12 Ryzen 9 5950X Early Testing

Some of the CPUMiner-Opt mining benchmarks were showing some uplift when built by GCC 12. CPUMiner-Opt though still fails to build with link-time optimizations.

That's the small subset of results with GCC 11 vs. GCC 12 performance changes worth commenting on out of a few dozen benchmarks looked at so far... Stay tuned for more when GCC 12 stable is closer.
Related News
About The Author
Michael Larabel

Michael Larabel is the principal author of Phoronix.com and founded the site in 2004 with a focus on enriching the Linux hardware experience. Michael has written more than 20,000 articles covering the state of Linux hardware support, Linux performance, graphics drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated benchmarking software. He can be followed via Twitter, LinkedIn, or contacted via MichaelLarabel.com.

Popular News This Week