Extensive Benchmarks Looking At AMD Znver1 GCC 9 Performance, EPYC Compiler Tuning

Written by Michael Larabel in Software on 20 February 2019 at 11:26 AM EST. Page 2 of 6. 13 Comments.
GCC 9.0 Znver1 x86-64 Linux Compiler Benchmarks

First up was the SciMark2 C micro-benchmarks, which tend to be quite prone to compiler optimizations and other changes for these basic tests. The composite result shows right away how the GCC performance has evolved on EPYC since the 2016 compiler release with first-cut Znver1 tuning through the latest state now with the upcoming GCC 9 compiler. The generic x86-64 performance state of the GCC9 built SciMark2 binary aligns with the Znver1 tuned performance on previous compiler releases. With the znver1-optimized binary under GCC 9.0.1, the performance increases by 5%. With the current stable GCC 8 compiler, between x86-64 and Znver1 was just a 3% difference but fortunately AMD developers and SUSE's compiler team in particular have done a lot of Zen compiler tuning over the past year for GCC 9.

GCC 9.0 Znver1 x86-64 Linux Compiler Benchmarks
GCC 9.0 Znver1 x86-64 Linux Compiler Benchmarks
GCC 9.0 Znver1 x86-64 Linux Compiler Benchmarks
GCC 9.0 Znver1 x86-64 Linux Compiler Benchmarks

With the OpenMP-threaded GraphicsMagick imaging program, there's actually been a performance regression since GCC 7 that doesn't appear to be AMD specific but affects the generic x86-64 code too. But at least for what it's worth, GCC 9 is running slightly faster than GCC 8.

GCC 9.0 Znver1 x86-64 Linux Compiler Benchmarks

With the Himeno pressure solver, on previous GCC releases using Znver1 tuning actually hurt the performance of the resulting binary. But with GCC 9 it yields slightly better performance -- at least no longer a regression -- and the best performance of the tested compilers/configurations.


Related Articles