AMD's 3D V-Cache Optimizer Driver For Squeezing More Ryzen 9 9950X3D Performance

AMD Ryzen 9 9950X3D box

Merged for the Linux 6.13 kernel was the AMD 3D V-Cache Optimizer driver for being able to influence the kernel’s scheduling decisions on AMD processors where only a subset of CCDs have the larger 3D V-Cache. With this new driver users can communicate their cache vs. frequency preference for influencing where new tasks are first placed if on the CCD with the larger L3 cache or with the higher frequency potential. Here is a look at the impact of using the AMD 3D V-Cache Optimizer driver with the new AMD Ryzen 9 9950X3D.

AMD 3D V-Cache Optimizer Linux controls

AMD posted the 3D V-Cache Optimizer driver for Linux last October and now with the Ryzen 9 9950X3D launch is the first new product from AMD since the driver was mainlined back in Linux 6.13 to be able to make use of it. Via the driver’s sysfs interface the cache vs. frequency preference can be set to affect the CPU core reordering depending upon whether you’re wanting new tasks to try to be placed on the higher frequency CCD or larger cache (3D V-Cache) CCD.

amd_x3d_mode

On Linux 6.13+ and when the kernel is built with the AMD_3D_VCACHE Kconfig option, on a Ryzen X3D processor like the Ryzen 9 9950X3D it’s possible to read the current preference via the /sys/bus/platform/drivers/amd_x3d_vcache/AMDI0101\:00/amd_x3d_mode sysfs interface. By default for the Ryzen 9 9950X3D it was using the “frequency” preference as default. But if writing “cache” to /sys/bus/platform/drivers/amd_x3d_vcache/AMDI0101\:00/amd_x3d_mode it will prefer using the CCD with the larger cache. This cache vs. frequency bias can all be easily manipulated at run-time for those interested.

AMD Ryzen 9 9950X3D with Linux 3D V-Cache Optimizer

For yesterday’s Ryzen 9 9950X3D Linux review all CPUs were benchmarked at their defaults on Linux 6.13. For this article is running through all of the Ryzen 9 9950X3D benchmarks again after setting the “cache” mode with the 3D V-Cache Optimizer driver. No other changes were made to the system during the testing besides opting for the cache preference.

AMD Ryzen 9 9950X3D X3D 3D V-Cache Optimizer Linux Driver Benchmarks

Let’s see how this 3D V-Cache Optimizer driver bias change makes an impact on the brand new Ryzen 9 9950X3D under Linux. The benchmark results with the “- X3D Optimizer cache” are the new run using the 3D V-Cache Optimizer preference changed to cache.

PyPerformance benchmark with settings of Benchmark: async_tree_io. Ryzen 9 9950X3D - X3D Optimizer cache was the fastest.

Leveraging the AMD 3D V-Cache Optimizer Linux driver made for a very noticeable difference on the single-threaded workloads… With PyPerformance for example to test the Python scripting performance, with the “cache” preference set the Python scripts were now executing on the CCD with 3D V-Cache and it made for a very noticeable improvement in some of the sub-tests.

Z3 Theorem Prover benchmark with settings of SMT File: 1.smt2. Ryzen 9 9950X3D - X3D Optimizer cache was the fastest.

Z3 Theorem Prover benchmark with settings of SMT File: 2.smt2. Ryzen 9 9950X3D - X3D Optimizer cache was the fastest.

Other single-threaded workloads like the Z3 theorem prover also benefited a lot from this 3D V-Cache Optimizer driver for being able to help with task placement to the CCD having the 3D V-Cache. For multi-threaded workloads they end up hitting both CCDs anyhow so no real difference there.

Zstd Compression benchmark with settings of Compression Level: 19, Long Mode, Compression Speed. Ryzen 9 9950X3D - X3D Optimizer cache was the fastest.

Zstd Compression benchmark with settings of Compression Level: 12, Compression Speed. Ryzen 9 9950X3D - X3D Optimizer cache was the fastest.

Zstd Compression benchmark with settings of Compression Level: 19, Compression Speed. Ryzen 9 9950X3D - X3D Optimizer cache was the fastest.

Zstd compression was seeing much better performance as well from the cache bias set.

Renaissance benchmark with settings of Test: Apache Spark PageRank. Ryzen 9 9950X3D - X3D Optimizer cache was the fastest.

GNU Octave Benchmark benchmark with settings of . Ryzen 9 9950X3D - X3D Optimizer cache was the fastest.

Various other workloads like GNU Octave as a free software MATLAB replacement and Renaissance OpenJDK Java workloads were also showing better performance when using the cache preference versus the out-of-the-box (frequency) bias.

PyPerformance benchmark with settings of Benchmark: asyncio_tcp_ssl. Ryzen 9 9950X3D - X3D Optimizer cache was the fastest.

PJSIP benchmark with settings of Method: OPTIONS, Stateful. Ryzen 9 9950X3D - X3D Optimizer cache was the fastest.

PJSIP benchmark with settings of Method: INVITE. Ryzen 9 9950X3D - X3D Optimizer cache was the fastest.

For a variety of single or lightly threaded tests setting the 3D V-Cache Optimizer “cache” preference was helping further enhance the performance over the default Ryzen 9 9950X3D performance.

AOM AV1 benchmark with settings of Encoder Mode: Speed 11 Realtime, Input: Bosphorus 4K. Ryzen 9 9950X3D - X3D Optimizer cache was the fastest.

AOM AV1 benchmark with settings of Encoder Mode: Speed 9 Realtime, Input: Bosphorus 4K. Ryzen 9 9950X3D - X3D Optimizer cache was the fastest.

AOM AV1 benchmark with settings of Encoder Mode: Speed 10 Realtime, Input: Bosphorus 4K. Ryzen 9 9950X3D - X3D Optimizer cache was the fastest.

AOM AV1 benchmark with settings of Encoder Mode: Speed 6 Two-Pass, Input: Bosphorus 4K. Ryzen 9 9950X3D - X3D Optimizer cache was the fastest.

AOM AV1 video encoding also performed faster with the cache bias set in the amd_x3d_mode sysfs interface.

CockroachDB benchmark with settings of Workload: KV, 95% Reads, Concurrency: 128. Ryzen 9 9950X3D was the fastest.

srsRAN Project benchmark with settings of Test: PDSCH Processor Benchmark, Throughput Total. Ryzen 9 9950X3D was the fastest.

srsRAN Project benchmark with settings of Test: PUSCH Processor Benchmark, Throughput Total. Ryzen 9 9950X3D was the fastest.

Of course, some workloads do perform better on the frequency CCD default preference.

LiteRT benchmark with settings of Model: Mobilenet Quant. Ryzen 9 9950X3D - X3D Optimizer cache was the fastest.

Some LiteRT (TensorFlow Lite) tests were helped with the 3D V-Cache Optimizer driver change.

Node.js V8 Web Tooling Benchmark benchmark with settings of . Ryzen 9 9950X3D - X3D Optimizer cache was the fastest.

Stargate Digital Audio Workstation benchmark with settings of Sample Rate: 96000, Buffer Size: 1024. Ryzen 9 9950X3D was the fastest.

Apache IoTDB benchmark with settings of Device Count: 800, Batch Size Per Write: 100, Sensor Count: 800, Client Number: 100. Ryzen 9 9950X3D was the fastest.

Cryptsetup benchmark with settings of AES-XTS 256b Encryption. Ryzen 9 9950X3D was the fastest.

It was interesting to measure the impact of making use of the new AMD 3D V-Cache Optimizer driver on Linux 6.13 for influencing the cache vs. frequency CCD selection with the Ryzen 9 9950X3D.

Selenium benchmark with settings of Benchmark: Speedometer 3.0, Browser: Firefox. Ryzen 9 9950X3D - X3D Optimizer cache was the fastest.

The Speedometer 3.0 web browser benchmark within Firefox on Linux was performing better with the amd_x3d_mode change.

Those wanting to see all of my Ryzen 9 9950X3D benchmarks repeated with the 3D V-Cache Optimizer tuning can see this result page.

Here is the side-by-side of the results with a measurable difference. The bars on the right are where the AMD Ryzen 9 9950X3D was performing better with the “cache” amd_x3d_mode set for the 3D V-Cache Optimizer driver (differences compared to yesterday’s data) while on the left is where the 9950X3D was fastest out-of-the-box with the “frequency” default bias.

AMD Ryzen 9 9950X3D X3D 3D V-Cache Optimizer Linux Driver Benchmarks

There are certainly some classes of workloads where setting the cache preference with the 3D V-Cache Optimizer driver on Linux systems is definitely worthwhile. Hopefully this testing helped you get an idea if changing the amd_x3d_mode is worthwhile for your software uses/workloads.

Now onward to the AMD Ryzen 9 9900X3D Linux testing up next.