AMD EPYC 9755 Performance On The Linux 6.11 & Linux 6.12 Kernels

Written by Michael Larabel in AMD on 24 October 2024 at 08:36 AM EDT. 1 Comment
AMD
For the recently launched AMD EPYC 9005 series "Turin" processors there is good support out-of-the-box running on the likes of Linux 6.8 as found with Ubuntu 24.04 LTS. The one exception is if wanting to engage CPU power monitoring you need a RAPL/PowerCap patch that was just upstreamed in v6.12. But what about using a newer kernel for greater performance in light of all the upstream optimizations to the kernel in general? Here are some Linux 6.8 vs. 6.11 vs. 6.12 kernel benchmarks on a dual AMD EPYC 9755 server.

Linux 6.8 as shipped by Ubuntu 24.04 LTS is in good shape for 5th Gen AMD EPYC, but of course, I'm always excited about what's coming down the pipe in future kernel versions... There's been many great changes upstreamed to the kernel since that point earlier in the year. Linux 6.11 is the latest stable kernel version right now and what's found in the (non-LTS) Ubuntu 24.10. Linux 6.11 has some great features while Linux 6.12 is in development for releasing in November. Linux 6.12 is expected to be this year's Long Term Support (LTS) kernel version and it's super heavy on new features from real-time "PREEMPT_RT" to sched_ext to new hardware additions and much more.

AMD EPYC Turin CPU


So for some quick benchmarks today, here are some numbers I recently carried out comparing Linux 6.8 (Ubuntu 24.04 stock kernel) to Linux 6.11 upstream stable and then the Linux 6.12 Git development state as of last week.
AMD EPYC Turin Linux Kernels

The same AMD EPYC 9755 2P server was used for all these kernel benchmarks without any modifications to the software/hardware besides swapping out the kernel version employed. The 6.11 and 6.12 Git kernel builds were following the same mainline PPA kernel configuration.
High Performance Conjugate Gradient benchmark with settings of X Y Z: 144 144 144, RT: 60. Linux 6.12 Git was the fastest.

DaCapo Benchmark benchmark with settings of Java Test: Jython. Linux 6.12 Git was the fastest.

ClickHouse benchmark with settings of 100M Rows Hits Dataset, Second Run. Linux 6.12 Git was the fastest.

CockroachDB benchmark with settings of Workload: KV, 50% Reads, Concurrency: 512. Linux 6.11 was the fastest.

For most workloads there were no big changes in performance going from Linux 6.8 earlier this year to Linux 6.12 currently under development...
DaCapo Benchmark benchmark with settings of Java Test: Apache Kafka. Linux 6.11 was the fastest.

DaCapo Benchmark benchmark with settings of Java Test: Apache Lucene Search Index. Linux 6.12 Git was the fastest.

Timed Linux Kernel Compilation benchmark with settings of Build: defconfig. Linux 6.11 was the fastest.

Timed LLVM Compilation benchmark with settings of Build System: Ninja. Linux 6.11 was the fastest.

GROMACS benchmark with settings of Implementation: MPI CPU, Input: water_GMX50_bare. Linux 6.12 Git was the fastest.

PostgreSQL benchmark with settings of Scaling Factor: 100, Clients: 1000, Mode: Read Write. Linux 6.12 Git was the fastest.

Many of the workloads were only subtly faster on Linux 6.11~6.12 than Linux 6.8.
Timed Linux Kernel Compilation benchmark with settings of Build: allmodconfig. Linux 6.11 was the fastest.

Hackbench benchmark with settings of Count: 16, Type: Thread. Linux 6.11 was the fastest.

Hackbench benchmark with settings of Count: 32, Type: Thread. Linux 6.11 was the fastest.

Hackbench benchmark with settings of Count: 32, Type: Process. Linux 6.11 was the fastest.

Stress-NG benchmark with settings of Test: MMAP. Linux 6.12 Git was the fastest.

Stress-NG benchmark with settings of Test: Pipe. Linux 6.11 was the fastest.

Stress-NG benchmark with settings of Test: Futex. Linux 6.12 Git was the fastest.

Stress-NG benchmark with settings of Test: MEMFD. Linux 6.12 Git was the fastest.

But for some benchmarks particularly those that are very kernel focused, there were indeed gains to find when upgrading from Linux 6.8 to Linux 6.11/6.12.
Stress-NG benchmark with settings of Test: Cloning. Linux 6.12 Git was the fastest.

Stress-NG benchmark with settings of Test: Pthread. Linux 6.12 Git was the fastest.

Stress-NG benchmark with settings of Test: SENDFILE. Linux 6.11 was the fastest.

Stress-NG benchmark with settings of Test: Mixed Scheduler. Linux 6.12 Git was the fastest.

Stress-NG benchmark with settings of Test: Context Switching. Linux 6.12 Git was the fastest.

Stress-NG benchmark with settings of Test: Radix String Sort. Linux 6.12 Git was the fastest.

Stress-NG benchmark with settings of Test: System V Message Passing. Linux 6.11 was the fastest.

In many of the larger, real-world workloads there were minimal to small changes while in more of the micro-benchmarks and other focused areas there were some nice gains observed with Linux 6.11/6.12. With Linux 6.12 expected to be this year's LTS kernel version, it will find use by hyperscalers and other large organizations that maintain their own distributions / customized software stacks and tend to jump between the LTS kernel versions. Linux 6.12 overall is looking quite nice for 5th Gen AMD EPYC.
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