Yesterday, AMD released new chipset drivers for its Ryzen CPU platforms, which include some of the best CPUs for gaming. After hearing about updates to the Zen 2 architecture and talk of what to expect from the upcoming Ryzen 3000 CPUs, I was very curious to see if the new drivers would affect performance in a positive way. To understand what's supposed to be going on, however, there's some background information to cover.
The Windows 10 scheduler previously was somewhat unaware of the lower level details of your CPU cores. It had some basic knowledge of physical versus logical cores (eg, Hyper-Threading and SMT create a second 'logical' core that shares resources with a second core), but that was about it. The problem with this approach is that as CPUs become more complex, not all cores are created equal.
Specifically for AMD, its Ryzen CPUs have two CCXes (Core Complexes), each with half of the L3 cache. Potentially, if an application is assigned to a core on the first CCX and then spawns a thread that gets allocated to a core on the second CCX, there will be higher latencies for accessing data across the CCX boundary. Things get potentially even worse with Threadripper, where there are two separate chips in a package, each with two CCXes—plus two separate memory controllers from each chip. Pulling data from the other chip's L3 cache, or from RAM connected to the other Chip's memory controller, will be slower than accessing local data.
The Windows 10 May 2019 update, combined with the new chipset driver from AMD, is supposed to improve the process scheduling (aka, the "topology awareness" that AMD's Robert Hallock tweeted about) so that threads from the same application are more likely to run on the same CCX, thus reducing the chance for higher latency memory and cache accesses. And that brings us to the testing and results.
I've been in the process of updating all my CPU benchmarks for the pending launch of AMD's Ryzen 3000. May 2019 update in hand, I got all my testbeds ready and started benchmarking. But this new chipset driver could potentially invalidate all of those earlier results! So yesterday I downloaded the drivers and retested the Ryzen 7 2700X.
Here's the summary of results, showing the "new" vs. the "old" (of just a week or so ago), along with the percent change in performance. What I don't have is a full set of results from before the May 2019 update, which could have been more useful. It seems most of the fixes for thread scheduling are already handled okay by Microsoft's built-in drivers, so I'm not quite sure what this update changes. But enough talk, let's let the benchmarks tell the story:
Wow. Um, that's not really very exciting. There's always a bit of wiggle room in benchmarks, which is why every test is run multiple times. Anything that shows more than a one percent drop in performance was run at least four times, and the above table shows the best results achieved. With the new chipset driver installed, performance was slightly lower in the vast majority of CPU benchmarks, with PCMark 10 faring particularly poorly. Power use was also down slightly (a good thing, sort of), not that the deltas really matter that much.
Looking at the gaming results, most of these are within margin of error (one percent), but Far Cry 5 shows a slightly larger dip while Assassin's Creed Odyssey shows a relatively significant six percent improvement.
But overall? The changes are largely just noise. The multithreaded performance is unchanged (0.04 percent), while the complete set of benchmarks shows a miniscule 0.6 percent drop. Again, this could be because the Windows 10 May 2019 update already took care of most of these changes, or it might just be that the thread scheduling just doesn't matter that much. Or maybe this will have more of an impact on Ryzen 3000, and not matter so much with existing Ryzen CPUs.
I'm actually glad there were no massive changes, as it means I don't have to retest all the CPUs yet again. But it sure would have been nice to see a palpable change in performance. I'd suggest you just keep whatever chipset drivers you're currently running in the meantime—or upgrade for any bug fixes but don't expect a suddenly faster PC. The chipset drivers for Zen 2 that enable CPPC2 (basically faster clockspeed ramping) have not yet been released, but those won't help older Ryzen CPUs.