An Early Look At The GCC 12 Compiler Performance On AMD Zen 3
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".
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.
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.
HMMer's performance was seeing some improvements under GCC 12 when built with the "-march=native" optimizations.
C-Ray was experiencing a large regression when built with at -O2.
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.
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".
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.
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.
HMMer's performance was seeing some improvements under GCC 12 when built with the "-march=native" optimizations.
C-Ray was experiencing a large regression when built with at -O2.
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.
11 Comments