AMD claims it found no connection between the scheduler in Windows and Ryzen performance hits, but others in the community disagree.
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.