LLVM Clang 6.0 Benchmarks On AMD's EPYC Yield Some Performance Benefits

Written by Michael Larabel in Software on 2 January 2018 at 08:29 AM EST. Page 1 of 3. 3 Comments.

With LLVM 6.0 being branched this week and that marking the end of feature development on this next compiler update before its stable debut in February, here are some benchmarks of the very latest LLVM Clang 6.0 compiler on AMD's EPYC 7601 32-core / 64-thread processor as we see how well the AMD Zen "znver1" tuning is working out.

As covered in our recent LLVM/Clang 6.0 feature overview, this half-year update to this open-source compiler does feature improvements to the AMD Zen "znver1" scheduler model and it is now considered "complete." The AMD znver1 tuning was originally added last year to LLVM Clang 5.0.

Given the znver1 support in Clang as well as GCC is still in flux with compiler developers still optimizing for these latest-generation AMD processors, I was curious to see how this support is working and if it's any faster than Clang 5.0. Additionally, how well znver1 compares to other "-march=" targets.

First up are benchmarks comparing LLVM Clang 5.0 and Clang 6.0 SVN (as of 1 January 2018) when testing with the AMD EPYC 7601 on the TYAN Transport SX TN70A-B8026 while running Ubuntu 17.10. When testing the compilers and rebuilding the test profiles, the compiler flags (CFLAGS/CXXFLAGS) were set to "-O3 -march=znver1" for catering towards the Zen architecture.

Following those Clang 5.0 vs. 6.0 benchmarks on this highest-end AMD EPYC processor are tests from Clang 6.0 when comparing the performance of generated binaries when using the -O3 optimization level but comparing the -march=znver1, -march=haswell, and -march=x86-64 optimization targets. The x86-64 target is the generic route for AMD64/x86_64 binaries while the Haswell target was also tested as previously with LLVM Clang 5.0 it was found that using Intel Haswell as an optimization target sometimes yielded greater performance than the znver1 target that was incomplete at the time.

All of these C/C++ compiler benchmarks with AMD EPYC were carried out using the Phoronix Test Suite.


Related Articles