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 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.
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.
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.
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.
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.
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 was seeing much better performance as well from the cache bias set.
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.
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 video encoding also performed faster with the cache bias set in the amd_x3d_mode sysfs interface.
Of course, some workloads do perform better on the frequency CCD default preference.
Some LiteRT (TensorFlow Lite) tests were helped with the 3D V-Cache Optimizer driver change.
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.
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.
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.