Credit: AMDWe aren't accustomed to AMD being the target of enthusiast ire, but Ryzen 3000's seeming inability to hit its advertised boost clocks has led to complaints on enthusiast forums and reddit. We ran a series of tests to determine if our Ryzen 5 3600X, which we purchased at retail, can hit its advertised 4.4 GHz boost clock. We discovered several new things along the way. We shared our discoveries with AMD before publication, and the company has confirmed several of our findings.
- Only one core on our Ryzen 5 3600X processor will hit AMD's rated boost frequency. AMD confirmed some cores in Ryzen 3000-series processors are faster than others, which is denoted in Ryzen Master. That means that not all cores on can hit the single-core turbo frequencies. Instead, there are a mix of fast and slow cores.
- We recorded up to a ~75 - 100MHz difference between the fastest and slowest cores, with only one core reaching the single-core boost frequency. AMD hasn't shared the definition of the frequency that is acceptable for slower cores (it is rational to expect this to be the base frequency). While we recorded relatively small frequency deltas in our sample, it impacts performance and denotes a shift in AMD's binning strategy compared to the per-core turbo performance of Zen/Zen+.
- Previous-gen Ryzen processors can reach boost frequencies on all cores. Intel also says its processors can reach the turbo frequency on all cores.
- Workloads running on Ryzen 3000's slower cores experience lower frequencies than the chip's rated boost speed, and thus lower performance.
- The combination of Windows 10's new Ryzen-aware scheduler and AMD's chipset drivers allow the operating system to schedule single-threaded tasks into the fastest cores (thread pinning). AMD has previously disclosed the Windows 10 scheduler and the CPCC2 feature, but not that the combined features assign threads to the fastest cores. This functionality requires the latest version of Windows 10. This is somewhat similar to Intel's Turbo Boost Max 3.0 on its HEDT processors, but Intel doesn't set this as a requirement to reach the normal Turbo Boost 2.0 clock speeds.
- Older versions of Windows cannot schedule threads into the fastest cores as efficiently, thus resulting in lower clock frequencies and performance for Ryzen 3000-series processors in some workloads, which may be at the root of many user complaints.
- Most test utilities do not measure performance fast enough to catch bursty frequency boost activity. They also do not measure certain types of power states that could indicate higher boost activity.
- We theorize the slower cores could be a contributing factor to low overclock ceilings with Ryzen 3000 processors. Ryzen 3000 series processors hit all-core overclocks 200-300MHz below the single-core boost frequency. Slower cores simply may not be able to achieve/sustain higher frequencies, thus serving as the weakest link in the chain.
Head to the bottom of the page for testing details. For now, let's take a look at our results.
Ryzen 5 3600X Precision Boost 2 Behavior
We ran a series of single- or lightly-threaded tests in rapid succession. The test begins with five iterations of a LAME workload (~35 seconds apiece) that are inherently single-threaded. This is followed by one run apiece of POV-RAY and Cinbench R20, both in single-core testing mode. AMD processors downshift based on the power requirements of the instructions from the task, so these single-threaded tests give us the best chance of capturing single-core boost activity.
Our first chart in the album below quantifies the frequency of all the cores during the a single run of the test, with each dot representing a frequency measurement. Each color corresponds to a different core. With six cores banging away, that gives us a total of ~12,500 data points in the chart. Naturally, that means some measurements will overlap, so we also provide frequency charts for each individual core during the same run.
As you can see above, we were able to record sustained periods of boost activity, albeit at 4.35 GHz, which is below the chips rated 4.4 GHz Precision Boost frequency. We could chalk this up to the method in which our test utility measures performance, its inability to capture certain power states (CC6 gating, PC6 gate), or simply missing super-fast peak frequencies of short duration due to the 100ms polling interval.
In either case, this is close to the rated 4.5 GHz boost speed of the chip, but it only happens on a single core. The per-core frequency charts clearly show that Core 4 is the only core that boosts to 4.35 GHz.
Typically we would see more interspersed frequency jumps among cores, largely due to the Windows scheduler's irritating and seemingly irrational tendency to allocate threads into different cores on a whim. This normally happens often, so Core 4's sustained boost speed, and the fact that other cores aren't boosting to 4.35 GHz at all, stands out as abnormal given typical scheduler behavior. It also helps point us in the right direction regarding core utilization.
For more clarity, we charted thread utilization to see which cores were active during the workloads. As this is a 12-threaded processor, that means we have a total of ~25,000 data points, so the same rules of overlapping measurements apply. The charts in this album show the data for a single benchmark run. The first chart shows all the cores simultaneously. The other charts show the data just for that core.
As we can see in Core 4's breakout chart, it is by far the most active. In fact, it is the only core that reaches 100% utilization during the tests.
The OS would appear to be scheduling each one of our benchmark tests on the same core, every time. If all the cores could achieve the same boost, we would expect different cores each time based on localized thermals. But no: we get Core 4 every time. Why? The only thing it correlates to is that Ryzen Master shows it as the best core on the chip.
AMD's Ryzen Master software marks four cores as the fastest in any given chip, but these assignments are different for each chip based on the quality of the cores. In the 'Cores Section,' Ryzen Master marks the fastest core in each CCX with a star, while one core (Core 4 in our chip) is marked with a gold star. That denotes that this is the single fastest core in the entire chip. The software also marks two cores with circles, which are the second-fastest cores in each CCX. AMD began marking the fastest cores with Threadripper processors, but positioned the feature as allowing enthusiasts to determine which cores could sustain higher individual overclocks.
The next logical course of action is to disable Core 4 to see if any other cores will then hit the 4.35 GHz peak speed. Then what happens if we disable all four of the fastest cores? We'll get there shortly on the following pages, but first we have to cover the new scheduler scheme to make those results more understandable.
Pinning Threads Into The Fastest Cores
For a quick sanity test, we tested an Intel Core i5-9600K with the same operating system revision to ensure that there hasn't been a change to the Windows scheduler. The key takeaway here is that the workloads migrate among the -9600K's cores. This is the traditional scheduler behavior we're accustomed to, but it runs counter to the test results that we obtained from the Ryzen 5 3600X.
Here we can see that the Core i5-9600K boosts to 4.52, at one time or another, on all cores during the benchmarks. (You'll note that the -9600K completes the workloads faster than the Ryzen 5 3600X, as denoted by the shorter line. That's because these workloads are all based on completing a specific workload, as opposed to being artificially limited by a time restriction.)
The -9600K's maximum boost speed is below the rated 4.6 GHz boost. Unfortunately, MSI's motherboard dynamically adjusts the BCLK during our tests, with a general trend of it being between 100.4 and 100.6 MHz, which muddies the measurements. However, the multiplier never exceeds 45. Intel grants motherboard vendors wide latitude with all of the various components that comprise its Turbo Boost policy, so some of the lower-than-boost speed may be a result of MSI's specific parameters. (Now we've found something else to investigate further.)
In contrast, AMD's Precision Boost 2 handles power states, and thus frequency, inside the chip itself, meaning that shouldn't impact our test results with the Ryzen processor.
We followed up with AMD for more clarity on why single-threaded workloads are being targeted at the 3600X's fastest core, and the company clarified:
Ryzen and the Windows 10 scheduler can cooperate to ensure those lighter workloads make it onto the fastest cores in the processor. In Ryzen Master, the fastest core in each CCD is marked with a gold star, the second fastest with grey stars. Identifying and prioritizing the fastest cores helps to maximize 1T performance, and that is part of the CPPC2 functionality we’ve previously mentioned. 3rd Gen AMD Ryzen is part of the healthy audience of processors in recent history that behave this way.
The Windows scheduler (starting with Win10 1809) additionally prioritizes filling an entire CCX with one process’ threads before moving elsewhere (either migration or newly-spawned threads). So between fastest cores and CCX awareness, Windows 10 May 2019 Update and the AMD Chipset Driver work in concert to deliver maximum performance.
AMD has revealed its Collaborative Power Performance Control 2 (CPCC2) feature at the launch of its processors, but to our knowledge, the messaging focused on the feature allowing faster power state transitions (which it also does), but not working in concert with the Windows 10 scheduler to assign threads to the fastest cores. We also cannot find any statements to that effect in the reviewer guide, so this is news to us.
AMD also announced the new Ryzen-aware Windows 10 scheduler, which it said is designed to pin threads within a single CCX before scheduling them to an adjacent CCX. Again, there was no mention of assigning threads into the fastest cores, and this is not listed in the reviewer guide.
So, what does all of this mean? Each core in a processor has a different maximum boost capability, hence Intel's development of its Turbo Boost Max 3.0 feature (for HEDT chips) that locks threads to preferred cores that can boost higher than others. However, all of Intel's cores are capable of reaching the standard Turbo Boost 2.0 frequencies, and according to our testing, so are all of the cores in previous-gen Ryzen models.
That stands in contrast to AMD's new policy of only having certain cores that can reach the peak frequency. That means that only one, or a few, of the cores in each Ryzen processor would need to bin at the advertised single-core boost clock to meet AMD's (perhaps legal) requirements, while other cores can be slower-performers that can't reach the maximum boost clock.
Let's see what that looks like when we disable the fastest cores on the following pages, and then we'll test the Ryzen 5 3600X on an older version of Windows to see the impact on performance, and finally compare Ryzen 3000's binning strategy to the company's binning of 2000-series parts. For those that are interested, here's how we tested. For the rest, on to the next page.
It's important to note that modern CPUs operate on the order of billions of cycles per second (though changing power states takes 1-2ms for Ryzen 3000 processors), so capturing an accurate picture of boost activity requires monitoring the processor with granular polling settings. Most CPU utilities poll the processor for its 'vital' statistics every second, thus missing fast state transitions, but many utilities allow you to adjust the granularity.
It's notable that the overhead of using granular polling can incur additional functional overhead on the processor, in effect creating its own workload that impacts performance via the 'observer effect.' Simply put, polling the processor too frequently can impact its performance and how it behaves during the observation period, so while we're looking for enhanced accuracy, we also have to avoid injecting inaccuracy by polling the processor too frequently. That can trigger different power states that render test data inaccurate.
We dialed in a 100ms polling rate for our testing, meaning we query the processor every 100 milliseconds and then log the average of those measurements every second. This setting didn't seem to have a noticeable impact during idle activity, but we have to remember that Windows also spawns background activities (seemingly at random) that can cause spikes in activity that are hard to attribute to any specific process.
We purchased our Ryzen 5 3600X at retail, so these tests are representative of a shipping processor. Unless explicitly stated otherwise, we tested with the latest version of Windows 10 Pro 1903, which has the new Ryzen-aware scheduler and AMD chipset drivers. We used the same equipment listed in our Ryzen 5 3600X review for testing, so head to the test setup page for a list of the hardware.
We have to caution that the current crop of measurement tools may not be able to capture some power states and that AMD's opportunistic boost algorithms respond to VRM currents, temperatures, and socket power differently. We are testing with one of the most well-appointed motherboards in terms of power delivery, and a beefy Corsair H115i cooler to attempt to extract the utmost performance from the chip at stock settings. There is a possibility that some of these results could vary in different test environments, or from chip to chip, but we did learn enough to spot a few trends in our testing.
MORE: Best CPUs
MORE: All CPUs Content