AMD: Windows scheduler isn't to blame for Ryzen performance problems

AMD Ryzen
AMD Ryzen

Ryzen has proved its worth already and we've only just seen the company's latest line of more advanced processors. AMD has done a stellar job in not only bringing the fight back to Intel and regaining some ground in the CPU market, but it did so while designing and launching a completely new platform. Regardless as to how you feel about AMD and its past products, that's a commendable achievement.

It hasn't been the smoothest of launches, but that is to be expected with a brand new platform. Manufacturing partners need to get accustomed to things with the new AM4 motherboards, and developers need to get everything optimized on the software side. Ryzen has performed well overall in benchmarks, but there have been a few reports of performance hits, which were addressed by AMD in a recent blog post.

Many have put it down to Microsoft's OS and how Windows interacts with the new line of processors. Those critics believe that instead of Windows seeing and communicating with Ryzen CPUs as 2x4 CPU Complex (CCX) configurations, the OS is actually detecting a 1x8 setup and scheduling as though memory across both core sets is uniform. This is believed to be the cause of the minor performance blips that were reported.

AMD has a 2x CCX topology on its processor chips, each with four independent CPU cores. Cores one to four do not share anything with five to 8, and thus you can already imagine the problems that arise when Windows moves threads around between all cores without a thought in the world. Moving between cores one through four, or five through eight, within a CCX is absolutely fine and how Ryzen is to be deployed, but when you go from, say, core one to core seven you're going to see a slight tax in latency due to cache misses, which will lead to a loss in performance.

Here's a pretty stellar explanation of the technical side of the theory:

From what we've gathered from developers and engineers voicing their own opinions on the matter, the bottom line is AMD and Microsoft at the very least need the OS to work better with Ryzen and how its physical cores are configured. Interestingly, AMD says the scheduler in Windows is not the culprit:

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.

While it may be able to distinguish between the physical cores, it could be the case that Windows isn't utilizing the 2x CCX effectively when under load, incorrectly placing threads and causing issues. The company does recommend that consumers use Ryzen with the High-Performance power plan enabled in Windows because of the following:

  • Core Parking OFF: Idle CPU cores are instantaneously available for thread scheduling. In contrast, the Balanced plan aggressively places idle CPU cores into low power states. This can cause additional latency when un-parking cores to accommodate varying loads.
  • Fast frequency change: The AMD Ryzen processor can alter its voltage and frequency states in the one millisecond intervals natively supported by the "Zen" architecture. In contrast, the Balanced plan may take longer for voltage and frequency (V/f) changes due to software participation in power state changes.

April will see an update from AMD for its processors to optimize power-policy parameters of the Balanced plan. AMD's upcoming quad-core processors should only have one CCX and thus won't be affected by these problems, but we'll have to see how things play out from the two companies with regards to eight-core Ryzen chips, especially as AMD rolls out future updates alongside Microsoft.

Rich Edmonds
Senior Editor, PC Build

Rich Edmonds was formerly a Senior Editor of PC hardware at Windows Central, covering everything related to PC components and NAS. He's been involved in technology for more than a decade and knows a thing or two about the magic inside a PC chassis. You can follow him on Twitter at @RichEdmonds.

  • It never takes long to find something to complain about, but I think Ryzen was more than most had dared to hope for. I expect these minor issues to improve as everyone figures out the best way to use this new design. We are talking about an 8 core 16 thread desktop CPU. Remember when we had to muddle by on ONE measely core?
  • again... more cores = not more power you can have 32 cores, if the SW is optimalized for 4 cores then you can throw your 32 cores out of the window because its useless
  • Probably one of the truest statements you have ever spoken on here.
  • Depends on the task. In games? Faster cores still seems better. For encoding? More cores. Though I suppose that's also where powerful GPUs can step in.
  • Try working with professional grade applications such as Premiere Pro, Blender and others. They take advantage of all those cores and leverage them. You can even assign RAM per core under Premerie to optimise rendering footage. In addition even if an application is not multi-core optimised Windows will swap application processes to the next free processor so yes having multipe cores is useful especially if you record gaming videos where games can take advantage of one set of cores and the game recorder then use another set freeing resources (RAM permitting).
  • disagree one thing is to force a "free core" to work on a task, the other thing is when the SW automatically optimizes the process for better results. More cores sounds good but its not effective. We should wait for the real life benchmarks and see what happens
  • This is probably just a driver issue and an os patch to fix it. Windows likely doesn't see the processor for what it is so its not treating it as such. I'm sure this will get patched soon enough and everything will be fine. Normal issues when using new hardware that is different.
  • The article states this isn't an "issue". A driver/patch can't fix the way the chip is designed.
  • No, it says AMD doesn't think it's a problem. However, there have been suggestions that contradict it, like how Windows 7 tests better than Windows 10 when benching Ryzen.
  • There is no issue with the scheduler, but there is an issue with the way that Windows uses the core complexes (CCX). What Windows needs to do is treat Ryzen like a special type of NUMA processor (non-uniform memory access). Basically, it should treat each core complex like a separate CPU (although with common access to main memory) so that the threads from the complexes will not talk to each other. This is definitely something that can be patched in.
  • Yes. But it damages the ryzen brand
  • Why they didn't test it before released​the product?
  • Honestly, you think they just released CPUs and never tested them? Let's think things through a little.
  • I imagine AMD know what they are talking about. I cant understand why anyone would disagree with the manufacturers of the chip itself. They have clearly investigated the claims as they state. And they say that is not the issue. Rest assured I'm sure AMD are still continuing to look for the issue.
  • Because: A. AMD only said they believe things to be working correctly. B. Windows 7 has shown better bencbhmark performance than Windows 10, in some scenarios, with core management typically seen as unexpected (if I remember correctly, it was treating virtual cores as physical ones on W10). C. AMD specifically says the Balanced profile causes some of the issues, and plans to adjust its product to work with it. Odds are, Microsoft could also look into adjusting the power profile. Basically, there is a problem with W10, and AMD is going to fix it from their side, rather than having MS do it on theirs.
  • But did the performance increased with the win7?
  • Every time? No, but there have been instances: However, in terms of gaming performance, W10 seems to be on-par with W7, in the best scenarios. It's got to do with the arch design, a few folks have explained it much better than I could (and better than this article has). There are quite a lot of unknowns with Ryzen, even a couple of weeks after launch. Things like RAM speeds, W10 scheduling, core parking, and the dual-CPU design have all been considered as weak points right now, but none come off as long-term issues.
  • This is probably the best breakdown I've seen of how Core Scheduling occurs and how AMD/Intel compare be aware there's a lot of high level technical details here. In essence Windows 10 is doing what it's supposed to be doing, and when Intel first released Hyptherthreading and multi-core arch's it caused as much problems. So this nothing unusual for new Architectures and most issues will be resolved over the coming months as OEMs come to terms what the processors can do. The fact AMD has a lot of performance in professional workloads that often beats Intel shows it's a problem more with compilation of software (i.e. for Intel Arch's) than anything to do with the hardware.
  • Since the cringe Dec announcement event of Ryzen. AMD PR has been a disaster
  • Some more useful information from AMD about building a Ryzen rig:
  • Microsoft + Intel + AMD are working great to make computing so lovely!