AMD’s new Ryzen microprocessor has revitalized the company’s CPU business and makes a credible play for the workstation, desktop, and (soon) the server markets. Its gaming performance, however, was initially concerning. At 1080p, the company’s CPUs are well behind Intel, at least in certain titles.
Additional testing in our GTX 1080 Ti review showed that these losses don’t occur across the board, even at that resolution. There’s little gap between the 1800X and the 6900K at 1440p and effectively none at all at 4K. AMD has said itself that these losses may reflect the fact that Ryzen is so different from its own previous FX processors — but that didn’t explain why some users saw higher minimum frame rates in Windows 7 as compared with Windows 10. When we contacted AMD about these questions last week, the company told us it was investigating the problem, and some of the preliminary results from that investigation are now available.
In a recent blog post, AMD’s Robert Hallock shed some light on AMD’s research into this question and whether or not the Windows 10 scheduler is causing problems for AMD’s Ryzen microprocessor. From the post:
We have investigated reports alleging incorrect thread scheduling on the AMD Ryzen™ processor. Based on our findings, AMD believes that the Windows® 10 thread scheduler is operating properly for “Zen,” and we do not presently believe there is an issue with the scheduler adversely utilizing the logical and physical configurations of the architecture. [Emphasis added]
As an extension of this investigation, we have also reviewed topology logs generated by the Sysinternals Coreinfo utility. We have determined that an outdated version of the application was responsible for originating the incorrect topology data that has been widely reported in the media. Coreinfo v3.31 (or later) will produce the correct results.
Finally, we have reviewed the limited available evidence concerning performance deltas between Windows® 7 and Windows® 10 on the AMD Ryzen™ CPU. We do not believe there is an issue with scheduling differences between the two versions of Windows. Any differences in performance can be more likely attributed to software architecture differences between these OSes.
Smoke, but no fire
The fact that the issue isn’t related to thread scheduling in Windows 7 versus Windows 10 doesn’t mean that the enthusiasts who reported higher minimum frame rates in the older operating system were wrong, as such. While Microsoft takes great pains to maintain backward compatibility with older operating systems, the fact is, there are sometimes subtle performance differences between hardware when testing one OS versus another.
Sources we spoke to AMD about the minimum frame rate differences some readers have observed don’t believe the difference in game performance has anything to do with scheduler differences between Windows 7 and Windows 10. While it’s not a common occurrence, we’ve seen some of these issues crop up before. Several years ago, when testing Metro Last Light (not Redux), I observed that the game ran much more smoothly on Windows 8 compared with Windows 7 and discussed the issue with AMD, who confirmed that the OS was working as intended. An article at Tech Report from several years ago also observed that Windows 8 was actually better for Radeon GPUs than Windows 7.
More recently, during our own Ryzen CPU tests, I tried turning on Grid: Autosport’s compatibility modes for Windows 7 and 8 to deal with some crashes I was having. While this did help stabilize the game, it also decreased the overall frame rate. (I eventually found a different method of stabilizing the game, and our tests on Ryzen and Intel CPUs were conducted with Compatibility Mode disabled.) None of these tests has direct bearing on the Ryzen situation, but they serve to illustrate the overarching point — sometimes, hardware does perform somewhat differently from one operating system to another, without any smoking gun that implies a broken OS scheduler or fundamental problem with the results themselves.
This doesn’t mean that some games wouldn’t benefit from being optimized to run on Ryzen CPUs, as AMD has already stated. It just means that the thread scheduler itself is not a problem. Remember, SMT presents more cores to the operating system, but it operates by sharing execution resources within the CPU core. AMD’s previous Piledriver architecture had a completely different design that shared front-end resources like the decoder and scheduler blocks, but had separate integer pipelines with their own ALUs. It’s not ridiculous to imagine that games that expected a Piledriver-like configuration on an AMD CPU could run into problems when executing on Ryzen.
AMD’s blog post illustrates the importance of not rushing to judgment when a brand new CPU debuts and throws some odd performance results. Forum dogpiles can be attractive, but that doesn’t make they’re always right.