LLVM Clang 13 Performance Is In Great Shape For Intel Xeon "Ice Lake"

Written by Michael Larabel in Software on 26 August 2021 at 09:20 AM EDT. Page 1 of 3. 5 Comments.

Earlier this month was a look at the LLVM Clang 13 performance on EPYC 7003 showing this forthcoming compiler update to be in good shape for AMD Zen 3, but how is the performance looking on the Intel side? This round of benchmarking is looking at the LLVM Clang 11 / 12 / 13 compiler performance on Intel's flagship Xeon Platinum 8380 "Ice Lake" 2P server configuration.

This round of benchmarking is looking at how the Intel Xeon Scalable "Ice Lake" performance has evolved over the past eighteen months with the LLVM Clang 11 / 12 / 13 releases. In the case of LLVM Clang 13 it was using the development snapshot as of 20 August. LLVM 13 is currently going through its release candidate phase and aiming to be released as stable around the end of September.

Across testing these three LLVM Clang releases to look at the resulting performance of the generated binaries, the CFLAGS/CXXFLAGS were maintained as "-O3 -march=native" throughout. The test server was the Intel Xeon Platinum 8380 2P with 512GB of RAM running on an Intel 7.68TB D7-P5510 SSD using Ubuntu 21.04 with the Linux 5.14 kernel. The only change being made across testing was moving the compiler used for building the open-source C/C++ benchmarks from Clang 11.0.1 to Clang 12.0 to Clang 13.0 Git using the apt.llvm.org binaries.

LLVM 13 brings AMD Zen 3 tuning, the GFX1013 target being added to the AMDGPU back-end for RDNA2 APUs, guaranteed tail calls are now supported via statement attributes for C and C++, many improvements to clang-format, the build system now allows building multiple distributions, support for ARMv9-A's Realm Management Extension (RME), the Hexagon target now supports the V68/HVX ISA, C API improvements, and a variety of other enhancements.

Right from the start we see LLVM Clang 13 continuing to show improved performance over its predecessors.

These days with LLVM Clang being effectively at pairty to GCC on AArch64 and x86_64, the performance difference between releases tend to be less so than in the past, but there still being made here and there.

There are some exceptions like with the libraw image decoder library seeing some nice improvements with Clang 13.0 on this Ice Lake Linux server.

Related Articles