News AMD auf Reddit zu Fastest Cores: Is Windows Right? Or Ryzen Master? It's Both!

User-News

Von eratte

Hinweis: Diese "User-News" wurde nicht von der Planet 3DNow! Redaktion veröffentlicht, sondern vom oben genannten Leser, der persönlich für den hier veröffentlichten Inhalt haftet.
Fastest Cores: Is Windows Right? Or Ryzen Master? It's Both! The Inside Scoop & What Happens Next

SUMMARY UPFRONT: 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. We plan to align Ryzen Master with Windows to alleviate the confusion. If you would like the details, please read on. :)

Hello, everyone. Over the past week or two, we’ve seen an uptick in chatter alleging that Windows is selecting the wrong fastest core. These posts typically cite Ryzen Master as evidence, though I’ve also seen some trawling of the Windows event log as justification. With apologies to the authors of these posts, who have done time-consuming investigative work, they are unfortunately incorrect. Today I wanted to share with all you a few lesser-known details that will make it clear why Ryzen Master and Windows are both correct, but for different reasons.

The firmware maintains the relative ranking of the cores. The list is maintained by reading voltage/frequency characteristics generated by the cores during final test and assembly.

Both Windows and Ryzen Master read this FW-generated ranking to determine the fastest core selection.

If you check the core rankings with the ‘sysfs’ command in Linux, some have noticed that our cores are ranked about 3% apart. This does not mean one core is 3% faster than another.

Instead, you need to know that CPPC2 (aka “preferred core” or “fastest core”) is a “continuous, abstract, unit-less performance scale” (ACPI spec, section 8.4.7). To translate: the rankings mean nothing beyond asserting which cores are fastest. It so happens that arbitrarily ranking the cores ~3% apart is perfect for communicating the ranking to the OS, without leaving room for rounding errors when this arbitrary scale is interpreted to set the CPU’s performance target.

Now we’re at the handoff to the OS. This is where things get more complicated. 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.) Additionally, I believe it’s now widely understood in this community that corralling workloads within a CCX, when possible, is optimal for “Zen 2” performance. Windows 10 May 2019 Update also respects this. So, if Windows is going to pick and use a fastest core, it needs a partner within the same CCX to ensure all the criteria are met for optimal performance. This is the best-performing configuration for 1T and lightly-threaded scenarios.

Ryzen Master, using the same firmware readings, selects the single best voltage/frequency curve in the entire processor from the perspective of overclocking. When you see the gold star, it strictly means that is the one core with the best overclocking potential. As we explained during the launch of 2nd Gen Ryzen, we thought that this could be useful for people trying for frequency records on Ryzen. To be crystal clear: this core may not be optimal for boost performance, it is irrelevant to OS fastest core selection, and it may not meet other technical criteria involved in selecting optimal cores for automated scheduling.

Therefore: both Windows and Ryzen Master are correct for their own needs, using the same common set of information prescribed by the firmware. Core selection is working as intended and designed, but we definitely see and understand it could be clearer. We hope this post begins to clear things up, and…

As a next step: we’ll be updating Ryzen Master to flag the fastest cores in the same manner Windows does so that there is no confusion. The core pair flagged by Ryzen Master will be the same pair that were selected for the best autonomous performance.

For day-to-day system use, our guidance remains unchanged: install any version of Windows from May 2019 (or newer) and keep it up-to-date, grab the current chipset driver from July 7 onwards, and use the latest BIOS from AGESA 1002 onwards. You will see the expected “fastest core” experience. No additional updates are required. If a user wants to confirm with their motherboard as well to remove all doubt, then you can force-enable the following BIOS settings: Global C-States, CPPC, CPPC Preferred Core(s). These settings are available in the AMD CBS menu of virtually any motherboard. Our official guidance is auto/default ON for these settings, but it’s a step you can take out of an abundance of caution.

Hope this clears things up, and I’ll be back to let you know when Ryzen Master is updated. You will see a post from me when the build with this change is live.

HYPOTHETICAL 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.

This is a grossly simplified example of the selection process, but you can see why and how Windows and Ryzen Master might take the same information and present different views. With this example you can also see why ranking the cores 1-n is not enough context to determine the most performant configuration.
66 comments

Annadtech dazu: AMD Clarifies "Best Cores" vs "Preferred Cores" Discrepancies For Ryzen CPUs (Annadtech)
 
AMD vermeidet also zur Microsoft-These der alternierenden Cores eines CCX für Threads hoher Priorität Stellung zu nehmen. Man würde annehmen wollen AMD hätte von selbst die Core-Paare gekennzeichnet wenn das die bessere Lösung darstellt.

Vermutlich würde MS besser für Low-Priority Threads optimieren und diese konsequent alle auf dem schlechtesten CCX zusammenfassen. Den besten CCX und Core mit seinem CCX für High Priority Prozesse reservieren und den Rest dem Zufall überlassen.

Kennt jemand Analysen zum Cache Thrashing unter MS Windows? Vermutlich könnte hier im Victim Cache für Zen ein Vorteil gegenüber Intel-Arch liegen.
 
Netter Versuch, aber da passt was nicht ganz.

CPPC ist ein Register Set womit sich der schnellste Kern in Echtzeit ermitteln lässt, unter dem gegeben Auslastungszustand der CPU.
Dies wird dann dem Kernel bereit gestellt, damit dieser weiß welche freien Kerne im Moment die schnellsten sind.

Aber gut, irgendeine Erklärung braucht man ja und so Abwegig kann Robert nicht sein. ;)
 
Zurück
Oben Unten