Thursday, November 21st 2019

AMD Admits "Stars" in Ryzen Master Don't Correspond to CPPC2 Preferred Cores

AMD in a blog post earlier today explained that there is no 1:1 correlation between the "best core" grading system displayed in Ryzen Master, and the "preferred cores" addressed by the Windows 10 Scheduler using CPPC2 (Collaborative Power and Performance Control 2). Deployed through BIOS and AMD chipset drivers, CPPC2 forms a middleware between OS and processor, communicating the system's performance demands at a high frequency of 1 ms (Microsoft's default speed for reporting performance states to processors is 15 ms). Ryzen Master, on the other hand, has had the ability to reveal the "best" cores in a Ryzen processor by ranking them across the package, on a CCD (die), and within a CCX. The best core in a CCX is typically marked with a "star" symbol on the software's UI. The fastest core on the package gets a gold star. Dots denote second fastest cores in a CCX.

Over the past couple of months we've posted several investigative reports by our Ryzen memory overclocking guru Yuri "1usmus" Bubly, and a recurring theme with our articles has been to highlight the discrepancy between the highest performing cores as tested by us not corresponding to those highlighted in Ryzen Master. Our definition of "highest performing cores" has been one that's able to reach and sustain the highest boost states, and has the best electrical properties. AMD elaborates that the CPPC2 works independently from the SMU API Ryzen Master uses, and the best cores mapped by Ryzen Master shouldn't correspond with preferred cores reported by CPPC2 to the OS scheduler, so it could send more workload to these cores, benefiting from their higher boosting headroom.
The "best cores" as defined by SMU and reported by Ryzen Master are hence decided on the basis of electrical properties, and hard-coded at the time of die binning in the factory. The "preferred cores" as defined by CPPC2 are those cores to which AMD wants the OS scheduler to send the most traffic to, not just on the basis of their superior physical or electrical properties, but also being optimal for Windows scheduler core rotation policy. Windows scheduler is programmed to not keep a long application work thread allocated to a particular core indefinitely, but to periodically rotate it between a pair of two cores. The rationale behind this is thermal management (spreading the heat across two cores that are spatially apart).

On monolithic multi-core chips such as the i9-9900 or i9-9980XE, in which all cores not only sit on the same die, but are also part of the same group (no CCX here), core rotation works as intended, as all cores share the L3 cache, and a relieving core can pick up work from where its rotation pair partner has left off, by pulling data from the L3 cache.

AMD's "Zen" multi-core topology complicates this, as not all cores share the same L3 cache; and in 12-core, 16-core, or Threadrippers, not all cores sit on the same die. This is where CPPC2 fits in, giving Windows the awareness of the topology it needs, so it can rotate threads among cores without hurting performance by forcing workloads onto a core that uses a separate instance of cache, which forces data reloads from RAM. So how does CPPC2-reported "favored cores" fit into the scheme of things? CPPC2 deliberately misreports "favored cores" to the Windows scheduler — to build core rotation pairs within localized groups of cores, rather than picking cores from different CCXs or CCDs to build rotation pairs.

"Ryzen Master, using 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 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," reads the AMD blog on the discrepancy between Ryzen Master "best cores" and CPPC2 Preferred Cores. "Overall, it's clear that the OS-Hardware relationship is getting more complex every day. In 2018, we imagined that the starred cores would be useful for extreme overclockers. In 2019, we see that this is simply being conflated with a much more sophisticated set of OS decisions, and there's not enough room for nuance and context to make that clear. That's why we're going to bring Ryzen Master inline with what the OS is doing so everything is visibly in agreement, and the system continues along as-designed with peak performance," it adds. "Best cores" and "preferred cores" are hence both "right." The former refers to a physically high-quality core, while the other is more "circumstantial", for better performance. Sources: Reddit, Anandtech
Add your own comment

67 Comments on AMD Admits "Stars" in Ryzen Master Don't Correspond to CPPC2 Preferred Cores

#26
bug
Solaris17
huh? I dont get alot of this thread. Microsoft is not responsible for writing the scheduler around a particular manufacturer. If a host device wants something a certain way you need to include that in the driver.
That's just common sense. It does not apply when one party is the darling of the internet ;)
Posted on Reply
#27
Axaion
john_
I never said that I want to feel, the way you feel.
Also I never said that I would like to describe myself, the way you described yourself.
Well, i did get bamboozled by buying it /:

Life goes on, if you have no sense of humor its already over! :)
Posted on Reply
#28
Kaotik
"admits"? Really? @btarunr you're trying to make it sound like AMD has tried to fool people or has done something to hide the reality or some other such, why?
They've told exactly what the "Stars" etc mean and show, and that hasn't changed (until the update that changes them to show what Windows sees as preferred cores) - they show the highest clocking core of the CPU, and 2 best clocking cores of each CCX based on their properties.
Posted on Reply
#29
1usmus
AMD Memory Guru
Kaotik
"admits"? Really? @btarunr you're trying to make it sound like AMD has tried to fool people or has done something to hide the reality or some other such, why?
They've told exactly what the "Stars" etc mean and show, and that hasn't changed (until the update that changes them to show what Windows sees as preferred cores) - they show the highest clocking core of the CPU, and 2 best clocking cores of each CCX based on their properties.
this is not always the case, unfortunately
Posted on Reply
#30
Jism
Looking at the way it's programmed to switch in between cores, these CPU's are fragile. It's just not all about thermal management, but pretty much degradation. Look at 2x00 series. Many reviewers just boot a 1.4V into a CPU and hit a OC on that. The 1.4V is seen to degrade the CPU in just months (!).
Posted on Reply
#31
voltage
If this were Intel, the internet would Explode. Instead, its "thank you for much for this news" :laugh: :kookoo:
Posted on Reply
#32
thesmokingman
voltage
If this were Intel, the internet would Explode. Instead, its "thank you for much for this news" :laugh: :kookoo:
Has the internet exploded due to all the Intel security flaws? Where are the class action lawsuits? :rolleyes:
Posted on Reply
#33
Vario
Kaotik
"admits"? Really? @btarunr you're trying to make it sound like AMD has tried to fool people or has done something to hide the reality or some other such, why?
They've told exactly what the "Stars" etc mean and show, and that hasn't changed (until the update that changes them to show what Windows sees as preferred cores) - they show the highest clocking core of the CPU, and 2 best clocking cores of each CCX based on their properties.
Its typical btarunr writing, it is sensational, there's melodrama to it, with a hero and a villain, though the reality is often quite dry and undramatic.
Posted on Reply
#34
Zubasa
Axaion
Lmao, with every passing day i feel more and more scammed for buying a 3700x and Crosshair VII x470 board

You dumb asshole, Axaion.
Axaion
That if they cant even get their own software right, then what hope is there?
DeathtoGnomes
AMD software maybe right but what matters just as much is microsofts software and how it works AMD software into windows. If AMD and m$ dont work together on the integration of their software with each others software, than when issue rise, it comes down to finger pointing. Its no secret that m$ doesnt appear to like AMD as AMD loves to pass around a headache or two.
Solaris17
huh? I dont get alot of this thread. Microsoft is not responsible for writing the scheduler around a particular manufacturer. If a host device wants something a certain way you need to include that in the driver.
https://www.techpowerup.com/261094/microsoft-releases-windows-10-november-2019-update-1909
Only as recently that M$ finally optimized for Turbo Boost Max 3, which was launched with the X299 platform from 2017.
I think people are assuming too much here, M$ is just incompetent at fixing their Windows Scheduler.

It also took years after Intel Hyperthreading was introduced before M$ make Windows aware of HT.
IDK why it takes so long for this to become "breaking news". Windows 10 contains a lot of legacy code, some goes all the way to Win Vista.
Posted on Reply
#35
robot zombie
Jism
Looking at the way it's programmed to switch in between cores, these CPU's are fragile. It's just not all about thermal management, but pretty much degradation. Look at 2x00 series. Many reviewers just boot a 1.4V into a CPU and hit a OC on that. The 1.4V is seen to degrade the CPU in just months (!).
Is that really the case though? All I've seen are a handful of people saying things like "it's been proven." But I see many more people running them around or even a little beyond 1.4... with very few, if any definitive reports of degradation. I'd think if they were really so fragile we'd have more concrete reports of chips dying off. But if they're out there, I can't find em! Only a few sporadic accounts from people who think that's what happened to them. Which, maybe it did! But it reminds me of the RTX memory failure issue. Something that people say is a thing that's happening a lot, when the real number was probably still pretty low, and it was just one big, freak occurrence.

I could also go after the claim of switching cores being a sign of known fragility. It could just as easily be thermal and there's no logical reason to go one way or the other, because the longer a core is loaded down, the hotter it gets. It's one of those nebulous things. If you want it to be for degradation, there's a rationale. If you want it to be temperatures, there's also a rationale. Nobody but AMD really knows.

Reviewers pumping 1.4v in for their OC testing and calling it a day... yeah, not a fan of that myself. Probably encouraging a good chunk of less experienced builders to run way higher voltage than they need. 1.4 is too much, and there's a good chance, at least with the 12nm and 14nm, that you will see eventual degradation. That's undeniable. AMD itself has recommended not going over 1.35 for a continuous-use all-core, IIRC.

Whether that makes them weak or unreliable, I'm not sure. How many modern CPU's are really expected to run at 1.4v continuously? I'd think that most people with some experience from either side of the fence would say that's pretty high.

That aside, the way Ryzen 3000 currently jumps from core to core, as far as anybody can tell right now, isn't quiiite the intended behavior. I'd say the reason for what they're doing with this boost stuff it is to squeeze the max performance out for the least power. I'm not talking theory, here. It's just my conclusion looking at what's going down and what the outcome is. I mean, I have played with a couple handfuls of these Ryzen chips, now. All generations. I'm not an expert and don't know nearly as much as many of the regulars here, but from what I've seen a MAX (as in, approaching or fully hitting unsafe voltage) all-core OC is pretty much always just a *little* inferior in performance to an X model attaining max boost will pull off, for less power. For instance, I have a 2600 that will do an all-core of 4.2 steady.. at around 1.3v. I can even push it past that if I'm willing to go to ~1.4v... BUT, even doing that, it never benched as high as its X-model sibling and the thermals were just impossible. That seems to be how it goes, and is a big part of the prevailing wisdom that it's best to let it boost naturally. And that's still the consensus, because it just performs better.

So I see what you're saying - you can easily cook a Ryzen running the voltage too high, but I'm much more willing to believe it's for max performance and thermals primarily, as they actually do run better when you run them the way AMD wants them.


I don't get why people get up in arms about this stuff. It's annoying, sure, but at this point it's to be expected. AMD's boost system is both very advanced and very young. It's going to be a while before they get it right. In the meantime, the Ryzen 3000 line still has some of the best-performing CPU's on the market. It's not like they're completely broken by these little quirks. It's nothing like the whole bulldozer situation where people completely didn't get what they thought they were getting and the performance wasn't what it should've been. You're still getting a good, working CPU for a good price - it just boosts funny lol.
Posted on Reply
#36
Jism
https://www.google.com/search?q=ryzen+2700+degradation&oq=ryzen+2700+degradation&aqs=chrome..69i57.3568j0j7&sourceid=chrome&ie=UTF-8

It happens. It's the reason why i am not even touching a manual overclock on my 2700x at all. The degradation usually occurs when going around or beyond 1.4V. Some say it cant even hold any boost anymore without crashing. AMD said before that as long as the current usage of a core is low, the voltage can go up on light weight threads. Once you have a heavy workload the voltage and core clocks go down, indicating that current is a factor and can kill these CPU's on long term base. If you consider on how windows switches in between one and two cores inside a unit, AMD states because of thermals but i personally think these chips are fragile to degradation in a fast way.

24/7 safe voltages should never be exceeded on these chips. This aint the Bulldozer FX that could eat 1.65V all day from 1.32V or so.
Posted on Reply
#37
AddSub
1.4375V on a Ryzen 1600X since August 2017. Holding clocks just fine. In fact with some BIOS updates I was able to hit new SuperPi and 3DMark 01/03 records just this past summer. That said, it is water cooled with a externally mounted 360mm radiator and 6x120mm fans, so nice thermals might play a part.

That said, I feel your pain Axain. Zen platform has issues galore. Every itteration of it so far. Performance wise, it has been over-hyped beyond belief (thanks Youtube "tech journalists"! How are those paid-for Taiwan vacations factory tours working out?! *cough*GamersNexus*cough*) In single threaded loads, you are really on par with Nehalem in some benchmarks, and anything using the x87 instruction set (like legacy gaming, benchmarks, and similar) and you might be more than a few % behind Nehalem even! Also, no way around it, even in 2019 Mhz’s do matter and AMD is wayyyy beyond in that race!

Anyway, all that aside, I like it. It is a very very very nice value CPU. (I still own a CPU from every AMD platform, from K5 to this Ryzen and same goes for Intel as well as a few Socket 370 Via Samuel's) For last-year gaming/benchmarking though, it managed to bottleneck my decade old GTX 580, a single one, in certain benchmarks. (I own three) Much less a single RX 580 (I own four), if we are going to go by 580-anything. Just not a good gaming platform outside modern gaming titles that can actually take advantage of all the cores.
Posted on Reply
#38
TheLostSwede
Thanks for a much more sensible explanation compared to what Anandtech posted, as I couldn't make head or tails of what they were trying to say in their explanation.
That said, no need for the sensationalist headline.
Posted on Reply
#39
Noztra
#33 Some people might call it clickbait.
Posted on Reply
#40
Naito
Make sense. The Windows scheduler is either too stupid and/or too focused on the Intel design philosophy to optimally load and manage threads within AMD's CCX architecture, so using a bunch of metrics such as, individual core performance, CCX performance, cache location, etc, they have the firmware/drivers fool Windows in an attempt to have the scheduler use the most suitable core.

The stars and dots are a ranking for the physical quality and performance of a core, whereas the CPPC2 'preferred cores' is a ranking based on the aforementioned metrics and are used to 'trick' the scheduler.
Posted on Reply
#41
laszlo
windows scheduler may not be good but is taking the info from cpu; i agree with solaris that driver should give instructions to the scheduler and not vice-versa...
Posted on Reply
#43
_Flare
@DeathtoGnomes yes, i believe the intle CPUs with the mesh-architecture could gain an advantage if the windows scheduler would be aware of the core near or far from I/O or memory, even if it is monolitic.

The inherent goal of the windows scheduler has remained as a kind of time-slice and hierarchic priority planning until today, thats really old and comes out of the single-core era.
On top of that came the thermal and efficiency planning, wich looks like a kind of panicreaction microsoft made after the first dual-cores came out.
This legacy led to the scheduler making apps hop over the cores because of some insane temperature-abstraction-causes and to cores "more efficient" .. meaning lower clocked cores.
This legacy is now what gets manipulated by some kinds of "patches" and hidden settings and offsets in powerprofiles.
Microsoft eventually is not able to change the scheduler so courageous, how it would be needed by now. Thas very sad, i think.
The linux community is more courageous related to their scheduler.
Posted on Reply
#44
Vya Domus
tabascosauz
And some applications, like CPU-Z in evaluating single-thread performance, aren't written to leverage any core except Core 0, regardless of power plan.
It's not the application that targets core 0, Windows does. This can't be fixed by AMD or anyone else except Microsoft, thread scheduling has always semi-broken even back when all CPUs had uniform topologies and clockspeeds.
Posted on Reply
#45
kapone32
Windows is exactly why Ryzen CPUs work better in Linux.
Posted on Reply
#46
Zubasa
Naito
Make sense. The Windows scheduler is either too stupid and/or too focused on the Intel design philosophy to optimally load and manage threads within AMD's CCX architecture, so using a bunch of metrics such as, individual core performance, CCX performance, cache location, etc, they have the firmware/drivers fool Windows in an attempt to have the scheduler use the most suitable core.

The stars and dots are a ranking for the physical quality and performance of a core, whereas the CPPC2 'preferred cores' is a ranking based on the aforementioned metrics and are used to 'trick' the scheduler.
It is more than this.
The Windows Scheduler is worse even for Intel CPUs.
Often the difference is quite significant that not even the extra "bloat" in Windows can explain the difference.

Note: the graphs are Time in ms, lower time is faster. All these test are run on the same Dell machine with Ice Lake 1065G7 CPU.
https://www.phoronix.com/scan.php?page=article&item=icelake-clear-windows&num=2

Posted on Reply
#47
Khonjel
So basically: Best Core is absolute best core as validated by AMD from the factory.
Preferred Core is relative best core assigned by Windows Scheduler.

AMD gonna update ryzen master in the future to match Windows Scheduler.

Is that everything.
Posted on Reply
#48
londiste
Zubasa
It is more than this.
The Windows Scheduler is worse even for Intel CPUs.
Often the difference is quite significant that not even the extra "bloat" in Windows can explain the difference.

Note: the graphs are Time in ms, lower time is faster. All these test are run on the same Dell machine with Ice Lake 1065G7 CPU.
https://www.phoronix.com/scan.php?page=article&item=icelake-clear-windows&num=2
The results in that article are more nuanced than that.
Windows wins 50% of these tests, Clear Linux 37% and Ubuntu 13%.
Windows 10 geometric mean is lowest by 4/8.5% but without redoing the calculations it would seem this is largely due to couple very bad results.
Posted on Reply
#49
bug
Naito
Make sense. The Windows scheduler is either too stupid and/or too focused on the Intel design philosophy to optimally load and manage threads within AMD's CCX architecture, so using a bunch of metrics such as, individual core performance, CCX performance, cache location, etc, they have the firmware/drivers fool Windows in an attempt to have the scheduler use the most suitable core.

The stars and dots are a ranking for the physical quality and performance of a core, whereas the CPPC2 'preferred cores' is a ranking based on the aforementioned metrics and are used to 'trick' the scheduler.
So you're saying Microsoft should have had a CCX aware scheduler, before AMD launched the CCX?
All cores were created equal until Ryzen, the scheduler was good enough for that. Now that even AMD can't point out the "best" core accurately, it's still Microsoft's fault for not being able to pick it from the line up?

To be clear: all the scheduler should do is ask the driver which is the best core and put it to good use. The driver is supposed to come from AMD first and foremost.

Also, I'm not saying Windows's scheduler is perfect. No scheduler ever is (Linux itself support like a dozen scheduler, none of which is better than the rest is every situation).
Posted on Reply
#50
Kaotik
Khonjel
So basically: Best Core is absolute best core as validated by AMD from the factory.
Preferred Core is relative best core assigned by Windows Scheduler.

AMD gonna update ryzen master in the future to match Windows Scheduler.

Is that everything.
At least pretty much everything.
Posted on Reply
Add your own comment