Thursday, November 21st 2019
![AMD](https://tpucdn.com/images/news/amd-v1721205152158.png)
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
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.
67 Comments on AMD Admits "Stars" in Ryzen Master Don't Correspond to CPPC2 Preferred Cores
Life goes on, if you have no sense of humor its already over! :)
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.
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.
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.
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.
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
vacationsfactory 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.
That said, no need for the sensationalist headline.
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.
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.
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.
www.phoronix.com/scan.php?page=article&item=icelake-clear-windows&num=2
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.
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.
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).