AMD Tackles Ryzen Master, Windows Scheduler Controversy Over Ryzen 3000 Boost Clocks
Some AMD platform owners have raised concerns about the Ryzen Master utility identifying a different, and perhaps wrong, fastest CPU core than the one that gets chosen by the Windows Scheduler in Windows 10. Likewise, some have raised doubts that the Windows Scheduler is identifying and boosting the correct core for single threaded workloads. So, which one is actually right? Turns out they both are correct.
AMD's senior technical marketing manager, Robert Hallock, posted an explanation on Reddit that clears things up. What it boils down to is how the Ryzen Master utility and Windows 10 go about ranking cores.
"Windows and Ryzen Master are both correct when identifying the fastest CPU core. The performance ranking of the cores is fused at the factory and reported by firmware, and both sources draw on that table. But Windows and Ryzen Master have substantially different goals when identifying a fastest core, which can lead to the appearance of a discrepancy," Hallock explains.
The relative ranking of cores is handled on the firmware level, with a list maintained by reading voltage and frequency characteristics generated by the cores during final testing and assembly. Both the Ryzen Master utility and Windows 10 then reference the list to determine the fastest core selection.
Where things seemingly go awry (but not really) is in the OS.
"Windows selects and prioritizes the fastest core in the firmware with an additional criterion that there must be a second core in the same CCX that’s nearly as fast. The scheduler rotates between them to ensure one core isn’t shouldering all the single-threaded work all the time. (This is why you will sometimes see a 'one thread' task jump back and forth between two different cores.)," Hallock says.
So when Windows picks the fastest core to use, it also needs a partner within the same CCX to ensure optimal performance. Ryzen Master, on the other hand, uses the same firmware readings but selects the single best voltage/frequency curve in the entire processor, with overclocking as the focus.
Hallock says Ryzen Master's approach is especially useful for people who are chasing after frequency records on Ryzen. The core it identifies may not be the optimal one for real-world boost performance, but it's irrelevant for the goal at hand. And the reason Windows does not always align with the same selection is because if a partner core happens to be in a different CCX, crossing over from one complex to another negates any added performance there might be from using a slightly faster core.
Hallock explains things further in a hypothetical (and "grossly simplified") example...
Let’s take a hypothetical 16-core AMD CPU and pick out a few cores. Core 0 and Core 1 in the first CCX on the first die can boost to 2.2GHz and 2.15GHz, respectively, for 2.175GHz average frequency. Core 13 and 15 in the second CCX on the other die can boost to 2.25GHz and 2.05GHz, respectively, for an average of 2.150GHz. Core 0 and 1 would be the CPPC preferred cores for Windows, but Ryzen Master would assign the gold star to Core 13. Core 13 might be the fastest core in the chip, but you can see it’s not the best choice for autonomous boosting. Pairing Core 13 to Core 0, theoretically the highest average frequency by a hair, would potentially be negated by crossing CCX boundaries.
So, neither Ryzen Master or Windows are wrong, they just have different approaches with different needs and goals in mind. AMD understands this can be confusing, however, and so it is planning to update the Ryzen Master utility to flag the fastest cores in the same manner Windows does.
"The core pair flagged by Ryzen Master will be the same pair that were selected for the best autonomous performance," Hallock says.
There is an ongoing conversation happening in the Reddit thread, with Hallock responding to some of the questions. You can follow along (or participate) by hitting the link in the Via field below.