Precision Boost Overdrive 2, is AMD’s overclocking toolkit to adjust the parameters governing the Precision Boost 2 algorithm.
AMD Precision Boost Overdrive 2
Together with the launch of the Ryzen 5000 desktop processors in November 2020, AMD introduced Precision Boost Overdrive 2.
Precision Boost Overdrive 2, or PBO 2, is AMD’s powerful overclocking toolkit that allows you to adjust some of the parameters governing the Precision Boost 2 algorithm. As a result of the tuning, you can potentially achieve higher operating frequencies for a more extended period, thus substantially improving your system’s performance.
A crucial advantage of Precision Boost Overdrive is that it retains all the intelligent frequency boosting mechanisms present in Precision Boost. That means you get both the high-frequency single-core and medium-frequency all-core boost. That sets it apart from manual overclocking, as you’ll see later in this video.
The Precision Boost Overdrive 2 toolkit for Raphael is identical to Vermeer. There are a total of seven tools available to tune the Precision Boost 2 algorithm:
- 4x Platform Configuration Tools: PPT, EDC, TDC, Thermal Throttle
- 3x CPU Configuration Tools: Scalar, Boost Override, and Curve Optimizer.
Package Power Tracking, or PPT, is the total power the processor can draw from the socket before the boost levels off. Typically, the limiting factor is your CPU thermal solution.
Electrical Design Current, or EDC, represents the maximum peak current the voltage rail can demand under transient conditions for a short, thermally insignificant time. Independent EDC tuning is available for both the VDDCR and VDDCR_SOC voltage rails. Typically, the limiting factor is the choice of VRM components and their maximum rated specification.
Thermal Design Current, or TDC, represents the maximum sustained current the voltage regulator can support. Independent TDC tuning is available for both the VDDCR and VDDCR_SOC voltage rails. Typically, the limiting factor is the choice of VRM thermal solution and the VRM components.
Platform Thermal Throttle allows the user to decrease the maximum allowed processor temperature. The configurable values range from 0 to the product-specific TjMax, typically 95 degrees Celsius. Lowering the thermal throttling point is generally not recommended as it will negatively impact your performance. However, it can be helpful if you want to run a temperature as low as possible.
Scalar is a tool that allows the user to override the warranted silicon stress level, or FIT, to achieve higher frequency. You can adjust the maximum allowed FIT level to 10 times higher than the factory-fused limit. While the tool offers precise granularity, typically, you’ll find the available options to range between 1X and 10X in steps of 1 multiple.
The effect of increasing Scalar is that the Precision Boost algorithm should aggressively pursue higher voltages as it is less concerned with CPU lifespan.
Boost Clock Override, or Fmax Override, allows the user to override the arbitrary clock frequency limit between -1000 MHz and +200 MHz in steps of 25 MHz. It is available for both the CPU core clock and, if present, the Graphics core clock. It’s important to note that the override only adjusts the upper ceiling of the frequency and doesn’t act as a frequency offset. Ultimately, the Precision Boost 2 algorithm still determines the actual operating frequency.
On some motherboards, you may see Fmax Override options higher than +200 MHz. While it may be possible to write these values to the processor registers, they won’t actually get applied.
Curve Optimizer is a tool that allows the user to adjust the voltage margin of each individual CPU core. It does this by offsetting the voltage of the CPU core VFT table. While you don’t have exact control over the voltage of each frequency-temperature point, Curve Optimizer allows you to effectively undervolt your CPU.
Curve Optimizer allows end-users to adjust the factory-fused VFT curve, or voltage-frequency-temperature curve, for each CPU core separately. The VFT curve is a unique curve for each core inside your CPU that defines the required voltage for a given frequency at a given temperature. Higher frequencies or higher operating temperatures require higher voltage.
Curve Optimizer adjusts the VFT curve by offsetting the voltages of the factory-fused VFT curve. By setting a positive offset, you increase the voltage point. Conversely, you decrease the voltage point by setting a negative offset.
You can offset the entire curve by up to 30 steps in a positive direction and up to 300 steps in a negative direction. Each step represents around 5mV.
It may seem odd that the negative curve optimizer has expanded to 300 steps. I’ll get back to that later
The traditional overclocking approach for AMD Ryzen CPUs is to set a negative curve optimizer. Two things happen when you adjust the VFT curve with a negative point offset.
- First, you effectively tell the CPU that it needs less voltage for a given frequency. And, as a consequence, at a given voltage, it can apply a higher frequency. So, when the Precision Boost 2 algorithm determines sufficient power and temperature headroom to use 1.35V, with the negative point offset, it will target a higher frequency.
- Second, the CPU temperature will be lower because you use less voltage at a given frequency. That extra thermal headroom will also encourage the Precision Boost algorithm to target higher voltages and frequencies.
Now, to get back to the negative 300 curve optimizer. This one’s a bit difficult to illustrate as BIOS options and public tools only allow up to 30 steps. However, with non-public tools, I was able to gather additional data.
The approach is straightforward: I record the actual voltage and effective clock frequency during a workload as I adjust the curve optimizer setting. I do this for three scenarios where I vary the voltage offset from the CPU Vcore voltage regulator.
As a quick reminder: the CPU will issue the voltage request to the voltage regulator with a VID request. The voltage regulator then adjusts the voltage output according to this request. When we use a negative curve offset, the VID request from the CPU is lower, and thus the voltage output from the voltage regulator is lower. We can also configure the voltage controller to add a positive offset to the VID request. Then the output voltage will be the CPU VID plus any offset from the controller.
The scenarios are: 0mV offset, +50mV offset, and +100mV offset.
First, look at the chart mapping the curve optimizer setting and the actual voltage. As you can see, adding a voltage offset to the voltage controller adjusts the impact of the negative curve optimizer on the effective voltage.
For example, at -40 curve optimizer, the actual voltage is
- 1.22V with 0mV offset,
- 1.257V with +50mV offset, and
- 1.288V with +100mV offset.
Also, 1.22V is achieved with a curve optimizer setting of
- -40 with 0mV offset,
- -52 with 50mV offset, and
- -64 with 100mV offset.
Second, let’s look at the chart mapping the voltage/frequency curve. Here we can see the impact of the curve optimizer and voltage offsets on the operating frequency. The curve is homogenous, indicating that the Precision Boost algorithm always tries to maximize the frequency for a given operating voltage regardless the curve optimizer or voltage offset.
We can see that at 1.23V, the frequency is
- 5290 MHz with a -29 curve optimizer and 0mV offset,
- 5298 MHz with a -50 curve optimizer and +50mV offset, and
- 5306 MHz with a -62 curve optimizer and +100mV offset
Further experimentation showed that up to -72 is stable with a +150mV offset. With a +750mV offset, I could test a -300 curve optimizer. Beyond -300, there was no further effect on the voltage or frequency.
Precision Boost Overdrive preserves all the automated intelligence and boost built into the Ryzen CPU. So, AMD claims it provides the user with the best of both worlds: on the one hand it provides the user with an ability to leverage superior cooling to achieve higher performance, and on the other hand the algorithm will still aim to maximize the performance in a wide variety of workloads. In fact, a major benefit of Precision Boost Overdrive is that it increases both the single-core and all-core maximum frequency. That is not the case when manual overclocking as typically the user must sacrifice a lot of single-core frequency.
Precision Boost Overdrive uses a proprietary algorithm with inputs from plenty of sensors inside the CPU to determine what is the optimal frequency and voltage at any given time. It is important to mention that using Precision Boost Overdrive is a form of overclocking and is therefore not covered by warranty.
Precision Boost Overdrive 2: Practical Example
Right, now that we are up to speed on Precision Boost Overdrive 2 and Curve Optimizer, let us put the theory to the test.
Warning: if you are allergic to big Excel spreadsheets outside of work hours, then look away now.
The approach we took to exploring PBO2 is simply trying out every option one by one and monitoring the impact it has on our CPU frequency, voltage, power, and temperature. Our test consists of two back-to-back runs of Geekbench 5. We chose Geekbench 5 because it offers a single test suite that covers a wide variety of workloads including single-core and all-core, AVX and non-AVX, CPU-centric and memory-centric, and so on. We used HWinfo to log the system and then compiled an Excel spreadsheet with all the information.
Here it is … yea I know it is a bit chaotic but let me walk you through it.
In total, we have 10 test scenarios and tracked 13 measurements. Each scenario builds on top of the previous one.
- In Scenario 1, we leave all BIOS settings by default and disable Precision Boost Overdrive
- In Scenario 2, we leave all BIOS settings by default and enable Precision Boost Overdrive
- In Scenario 3, we keep Precision Boost Overdrive enabled and also set Max CPU Boost Clock Override to +200MHz.
- In Scenario 4, we additionally enable D.O.C.P. and manually enforce FCLK to run in synchronous mode.
- In Scenario 5, we manually set the PPT, TDC, and EDC limits
- In Scenario 6, we set the scalar value to 10X.
- In Scenario 7, we use the Curve Optimizer and try an all-core negative value of 30 and 15. While negative 30 did in fact pass our PBO-2 tests, ultimately it was not stable enough to pass the other benchmarks.
- In Scenario 8, we continue with Curve Optimizer all-core negative 15 and configure the most aggressive VRM settings with CPU load-line calibration level 4.
- In Scenario 9, we use the same settings but just change the load line to level 1.
- Scenario 10 is our SkatterBencher OC Strategy #4 where we tuned the Curve Optimizer for each core individually.
The 13 measurements include:
- Maximum CPU Core Clock Frequency and Average CPU Clock Frequency for frequencies over 4 GHz
- Maximum Effective CPU Clock Frequency and Average Effective Clock Frequency for frequencies over 4 GHz
- Maximum VID and average VID for VIDs over 1.2V
- Maximum Vcore and average Vcore for voltages over 1.2V
- Peak PPT
- Peak TDC
- Peak EDC
- Peak CPU Package Power
- Peak CPU Temperature
We explained the difference between Core Frequency and Effective Clock in a previous AMD Ryzen overclocking guide.
Core Frequency is the frequency that is configured by the CPU and read from the CPU registers. This is the frequency that you will see in CPU-Z for example. Effective Clock measures the average actual clock across a polling interval.
The difference between the two values is that the Core Frequency is the frequency as measured in one moment in time, whereas the Effective Clock measures the total clock cycles between two moments in time.
These two measurements can differ a lot because modern CPUs like the Ryzen 5000 have very advanced power-saving features. When a CPU core has nothing to execute it will quickly go to a low power state. This is great as it opens up more power budget for any of the other cores that do need to execute. So those other cores may boost to a higher frequency.
The effective clock is the more relevant measure of the two when overclocking and performance tuning as it will tell you what the actual frequency is as opposed to what is the configured frequency.
Now let us go over some of the interesting findings.
- The Max Vcore does not really change going from PBO disabled to a fully tuned PBO. There is no way for us to increase the Vcore ceiling, so this will be the limiting factor for the Frequency.
- While the maximum Vcore does not change, the average Vcore when over 1.2V does increase from 1.36 to 1.45 when playing with PBO. So, on average, higher voltages will result in higher frequencies.
- Curve Optimizer has a powerful impact on the maximum clock frequencies that the PBO algorithm will use. With the right cooling and the right CPU, you can effectively reach the upper maximum limit.
- Fmax Offset, or Boost Override, does not have that much of an impact unless you also use the other PBO tools.
- If we look at the Effective Clock Frequency distribution, we can see that even during two back-to-back runs of Geekbench 5, more than 60% of the time the system is effectively idle.
- The Scalar is supposed to force the CPU to pursue higher voltages more aggressively. While a lot of people say the scalar has no impact on their performance, we can actually see its impact when looking at the Vcore distribution. You can see that the range before enabling Scalar is from 1.32v to 1.42v. After enabling the Scalar, the range is from 1.37v to 1.44v. So, it is clear that the CPU is indeed setting higher voltages.
Before we move on to the benchmark results, one last thing. Since Curve Optimizer clearly has a significant impact on the potential overclocking headroom, it makes sense to take the time to find the best setting for each individual core. Even if only a couple of cores can use negative 30, these will be the cores that give you the highest performance in lightly threaded workloads.
There are several approaches how to find the best cores but here is mine.
- First, go in the BIOS and set all cores to negative 30.
- If this boots into the OS, open both HWinfo and Prime 95
- Run the Prime 95 all-core workload and monitor the effective clock frequency. You will find that some cores will operate stably at the highest frequency, some will not.
- Note down which cores are either crashing or suffering from clock stretching.
Clock Stretching is a safety feature that is built into all AMD Ryzen CPUs. When the CPU thinks the actual voltage is too low to sustain a stable system at a given frequency, it will reduce the clock period until the voltage is back at the acceptable level.
The result of clock stretching is that while the system will report the Core Frequency as usual, the effective clock will be lower. So, since a lower amount of clock cycles occur the performance will also be lower.
Clock Stretching has been a major topic among AMD Ryzen enthusiasts. Typically, users would find that setting a higher frequency would result in lower performance. The best way to check if clock stretching is happening is by checking the Effective Clock measurement in HWinfo. If the effective clock is significantly lower than the configured core frequency when the system is under load, then it is likely that clock stretching is happening on your system.
Now back to the Curve Optimizer approach.
- Reboot and go back into the BIOS. For those cores which were not stable, decrease the negative curve offset.
- Then go back in the OS and repeat the same test.
- Repeat this process until you find the setting that is stable for all cores.
You will notice four things:
- Curve Optimizer is a powerful addition to the PBO toolbox and can give enthusiasts quite a bit of extra overclocking headroom.
- There can be a great difference between your cores. In my case, I had 4 cores that could do negative 30 and two cores that could only do negative 13.
- You will find that as you adjust the curve optimizer for the unstable cores, the Prime 95 frequency will decrease. That is of course because there is only 1 frequency and voltage applied to all cores in the CPU die. So, the performance is capped by your worst cores.
- The ideal Curve Optimizer setting also depends on the VRM load-line. So, I suggest that if you are going down the road of Curve Optimizer that you first set your VRM loadline level.
AMD Precision Boost Overdrive 2 in SkatterBencher Guides
We use AMD Precision Boost Overdrive 2 in the following SkatterBencher guides:
- SkatterBencher #48: AMD Ryzen 5 7600X Overclocked to 5544 MHz (link)
- SkatterBencher #47: AMD Ryzen 7 7700X Overclocked to 5750 MHz (link)
- SkatterBencher #46: AMD Ryzen 9 7900X Overclocked to 5900 MHz (link)
- SkatterBencher #45: AMD Ryzen 9 7950X Overclocked to 5950 MHz (link)
- SkatterBencher #43: AMD Ryzen Threadripper “5990X” Overclocked to 4825 MHz (link)
- SkatterBencher #35: AMD Ryzen 3 5300GE Overclocked to 4628 MHz (link)
- SkatterBencher #29: AMD Ryzen 9 5900 B2 Overclocked to 5152 MHz (link)
- SkatterBencher #27: AMD Ryzen 9 5950X Overclocked to 5117 MHz (link)
- SkatterBencher #26: AMD Ryzen 9 5900X Overclocked to 5223 MHz (link)
- SkatterBencher #24: AMD Ryzen 7 5700G Overclocked to 4850 MHz (link)
- SkatterBencher #18: AMD Ryzen 5 5600X Overclocked to 4850 MHz (link)