🌐
Reddit
reddit.com › r/amd › guide: zen 3 overclocking using curve optimizer (pbo 2.0)
r/Amd on Reddit: Guide: Zen 3 Overclocking using Curve Optimizer (PBO 2.0)
December 22, 2020 -

UPDATE: I will continue to update this post with relevant learnings if I have them and updated results if I'm still tuning. I answered almost every question the first day, but I can't keep up with answering your questions, especially about your individual cases. Please help each other.


I come from many generations of Intel builds. Over the decades, the experience of overclocking Intel roughly translated to pouring voltage into core and maybe some into uncore while raising the multiplier until you hit a ceiling. Overclocking Zen 3 has been a completely different experience, with boost and PBO doing smart things that you want your OC efforts to support and optimize rather than replace.

I've spent many hours over the past four days overclocking both my 5900X and 5600X rigs, and I've learned a lot on the way. I figured I should share some important information with the community.

I included a background section for newbies that many of you might want to skip.

BACKGROUND

Your CPU will algorithmically boost the frequency of its cores depending on workload. For single threaded workloads, it will boost one core, and for multithreaded workloads, it will boost multiple cores. The frequency at which your core(s) will boost is governed by internal limits, such as power, current, voltage, temperature, and likely other factors, but the important thing to understand is that, holding limits constant, your CPU can boost one core to a higher frequency than it can boost multiple cores. This should make common sense to you.

PBO raises the current and power limits that govern your CPU's boost algorithm. You can raise your PBO settings as high as you'd like, but PBO has a hard limit of allowing 105W TDP CPUs to draw ~220W and 65W TDP CPUs to draw ~130W. PBO does not raise your CPU's max boost frequency, which is 4.8GHz stock for the 5900X and 4.65GHz stock for the 5600X, both of which are typically achievable only when the CPUs are boosting 1-2 cores. Practically speaking, enabling and maxing out PBO translates to your CPU boosting clocks during multithreaded workloads until your CPU is drawing ~220W / ~130W.

Auto OC raises the maximum stock boost clock by an offset, up to +200MHz, that you set. For example, a +200MHz offset will raise the stock 4.65GHz boost limit of a 5600X to 4.85GHz. Auto OC does not guarantee your CPU will be able to reach the boost clock under load. All it does is allow the CPU to try, but the CPU boosting algorithm will still take into account all the factors as usual to determine boost.

PBO 2.0 w/ Curve Optimizer: Undervolting is a way of overclocking CPUs and GPUs that have an internal table that maps voltage to operating frequency. Basically, a 50mV undervolt tells a CPU that instead of operating at, say, 2GHz at 1V, operate at 2GHz at 0.95V instead, and whatever frequency is mapped to 1V is now >2GHz. When a Zen 3 CPU is undervolted, this means that the same power limits that govern its boost algorithm all map to higher operating frequencies.

Curve optimizer basically allows you to undervolt each core independently.

GUIDE STARTS HERE

The steps for using Curve Optimizer to OC are:

  1. Curve Optimizer is part of PBO 2.0, so enable PBO and set it to your platform's limits.

  2. Under PBO, leave the scalar at Auto. Auto performed the best for me, but if you want to try to tweak this, I'll mention when you should do this.

  3. In Curve Optimizer, start with an all core undervolt of -5. Iterate between STABILITY TESTING (HIGHLY TRICKY. SEE BELOW.) and lowering this by -5 each time until you find the lowest stable value.

  4. Now you know the undervolt limit of at least one of your cores. You can now go into per core undervolting to find which cores you can bring down further using the same iterative method above.

  5. You're done. Now's the time to test a custom scalar value if you really wish to.

You will find that undervolting nets significant gains in both single and multithreaded performance. The more you can undervolt, the greater the gains.

AN IMPORTANT COMPLICATION: UNDERVOTING & AUTOOC

The relationship between undervolting stability and your AutoOC setting is critical. Broadly speaking, the more aggressive you undervolt, the more gains you get, but the higher you set your AutoOC offset, the less aggressive you can stably undervolt. This should make sense to you because your cores require more voltage to attempt the higher boost ceiling you specified. Practically speaking, you will likely find that your once stable undervolt setting is now unstable if you raise AutoOC from +0 to +200MHz.

Let's illustrate this relationship using an example. Say you set your AutoOC offset to +200MHz for a CPU with a 4.8GHz boost limit because you want it to boost to 5GHz. However, you find that the best stable undervolt you can achieve now results in a single core boost speed that barely blips to 4.95GHz. At this point, you should lower your AutoOC offset in order to undervolt further so that your undervolt boost can actually achieve what your offset specifies.

On the flip side, say you have a +0 offset, but your stable undervolt has your single core boost pretty much glued to its limit of 4.8GHz. In this situation, you should increase your AutoOC offset and back off on your undervolting until your offset is again equal to the what your undervolt boost can achieve.

EVEN MORE IMPORTANT: STABILITY TESTING

Your Curve Optimized undervolt will not be stable in low power workloads long before it will show any stability issues in any high power workloads, including every single benchmarking tool you use, including Cinebench and Prime95. An unstable undervolt will result in your PC sometimes randomly freezing, restarting, or BSODing when you're not doing much beyond browsing File Explorer or similar tasks.

Finding a low power workload for stability testing undervolting was the primary challenge of this entire process. The best one I found is the Windows 10 Automatic Repair and Diagnosis workload that can happen pre-boot. You can manually trigger this workload by restarting your PC after it posts but before Windows boots two consecutive times. The third boot will automatically start this workload after post.

This workload completing successfully means it will put you into a menu with a Restart option that you can click on to successfully restart your computer. An unstable undervolt can result in a myriad of different things going wrong, including:

  1. The PC suddenly reboots by itself before you reach the menu screen.

  2. A BSOD at any point in the workload.

  3. Making it to the menu and choosing to restart the PC, but then your PC freezes before restarting.

Once you have successfully triggered the Automatic Repair process, your next boot will be normal. However, if you reset your PC during this next normal boot before Windows successfully loads, it will trigger Automatic Repair in your subsequent boot again.

To test stability, I recommend 10x consecutive successful passes of this workload. This involves using the Automatic Repair workload to restart your computer, resetting your computer in the next boot to trigger the workload again, and repeating. I hope your PC has a reset button next to the power switch, because that comes in handy here.

UPDATE


This stability test works most consistently for finding the limits of your top 2-3 cores in terms of priority. You will notice that after finding these limits, you can undervolt your other cores significantly lower while still passing this test. I haven't yet found a reliable, consistent, and reproducible workload to test these other cores beyond just using your PC and waiting for a random restart or WHEA/other BSOD. Others have mentioned their own jury rigged tests in the comments that you can try.

Finally, low power stability testing is in addition to normal high load stability testing via the usual benchmarks. In fact, if you are failing those, then your OC efforts are in an even worse state than those who only fail low load stability.

MY RESULTS

My final results for my 5900X are:

Core 0: -18
Core 1: -5
Core 2: -18
Core 3: -18
Core 4: -18
Core 5: -18
Core 6: -18
Core 7: -18
Core 8: -18
Core 9: -18
Core 10: -18
Core 11: -18

Scalar: Auto
AutoOC offset: +25 MHz (4.95GHz stock boost limit for unknown reasons, so 4.975GHz with offset)

Cinebench R23 results: https://i.imgur.com/BQNcdbk.png

Takeaways:

  1. My all core undervolt wasn't stable beyond -5. As you can see, I eventually realized that it was my Core 1 bottlenecking that.

  2. My core 1 happens to be my highest priority core. This means my single threaded score is not nearly as impressive as I'd like. Silicon lottery at play here.

  3. I only really bothered individually optimizing Core 1, 2, 0, and 5, as those are my highest priority cores. I always tested cores 3 and 4 together and found stability with them at -20. I tested all my second CCD's cores (cores 6-11) in one batch; there may be some optimizations there, but I couldn't be bothered.

  4. While my highest priority core could only support a -5 undervolt, my other cores can be undervolted quite significantly, resulting in a pretty impressive multicore benchmark score, IMO.

My final results for my 5600X are:

Core 0: -8
Core 1: -8
Core 2: -4
Core 3: -8
Core 4: -8
Core 5: -4

Scalar: Auto
AutoOC offset: +200 MHz

Cinebench R23 results: https://i.imgur.com/88JXBOh.png

Takeaways:

  1. SC boost was glued to 4.85 GHz, which is the maximum allowed.

  2. More interestingly, MC all core boost was at 4.6-4.65 GHz, which is basically the stock single core boost of the chip. Pretty impressive.

🌐
SkatterBencher
skatterbencher.com › home › amd curve optimizer
AMD Curve Optimizer - SkatterBencher
August 6, 2024 - If we set a Curve Optimizer to negative 30, we can shift the entire voltage-frequency curve along the frequency axis. And, suddenly, we need a lot less voltage for every operating frequency. For example, for 5 GHz we needed about 1.08V by default, but with a -30 CO, now we only need 0.995V! Moreover, the frequency is also boosting higher! The highest frequency with all eight cores active has increased by 200 MHz to 5830 MHz.
Discussions

Question - Ryzen Master Curve Optimizer | Tom's Hardware Forum
You can optimize your curves and it will give benefits. When I used the CO it recommended -30 across the board. I ended up doing -30 on all except for the 2 preferred (star) cores shown in Ryzen Master. I did -15 on the gold and -20 on the silver. Anything lower then that would cause occasional ... More on forums.tomshardware.com
🌐 forums.tomshardware.com
September 6, 2024
Ryzen Master Curve Optimizer, how to know if it's really being applied ?
✅ Already did the "Automatic Optimizer" Per Core, it took about 1h 45m to complete, then it restarted. ✅ If i see this screen, this mean it's applied? ✅ Because if i restart and go to the BIOS, i don't see any changes in the CO, i understand that RM doesn't do "Permanent" changes to the ... More on forums.tomshardware.com
🌐 forums.tomshardware.com
13
0
June 19, 2022
A(nother) Guide to Ryzen 5000 Curve Optimization
Nice guide IF it actually gives extra performance. Kinda useless without some benchmarks imo.Need to know if this makes enough of a difference from my -10mV all core +150mhz. More on reddit.com
🌐 r/overclocking
93
116
August 4, 2023
What does curve optimizer do exactly
Lowers voltage via negative offset u set, which lowers heat, which allows it to boost clock speed higher. How well a chip can run at below spec voltage varies with silicon. Too much negative offset and becomes unstable ultimately. More on reddit.com
🌐 r/AMDHelp
8
8
January 26, 2024
🌐
KitGuru
kitguru.net › home › component › cpu › msi gives us a glimpse at amd’s curve optimizer undervolting feature
MSI gives us a glimpse at AMD’s Curve Optimizer undervolting feature | KitGuru
December 18, 2020 - Alongside the screenshots, the results of this system at stock and with Curve Optimizer feature configured were also compared. The BIOS settings were set to apply Curve Optimizer to all cores, the “All Core Curve Optimizer Sign” was set to “Negative”, and the “All Core Curve Optimizer Magnitude” was set to 15.
🌐
H|ard|Forum
hardforum.com › [h]ard|ware › amd processors
Ryzen Master - PBO Curve Optimizer Control - Configure in Windows Now! | [H]ard|Forum
April 20, 2022 - I’ll have to see how the curve optimizer’s recommended -30 all core offset works with my 5950X. For now, browsing the web, running Cinebench, and playing various video games has been fine. The clock speeds significantly increased while my temps significantly decreased.
🌐
Tom's Hardware Forum
forums.tomshardware.com › home › cpus
Question - Ryzen Master Curve Optimizer | Tom's Hardware Forum
September 6, 2024 - You can optimize your curves and it will give benefits. When I used the CO it recommended -30 across the board. I ended up doing -30 on all except for the 2 preferred (star) cores shown in Ryzen Master. I did -15 on the gold and -20 on the silver. Anything lower then that would cause occasional issues with the +200mhz boost override I also added.
🌐
Overclock.net
overclock.net › home › forums › amd › amd cpus
-=: AMD Ryzen Curve Optimizer Per Core + Curve Shaper + DDR5 OC :=- | Overclock.net
January 19, 2025 - Using Curve Shaper to adjust voltage and some eCLK info ... CO is per core, CS is all cores.
Find elsewhere
🌐
Thinglabs
thinglabs.io › how-to-use-the-amd-ryzen-curve-optimizer
How To Use The AMD Ryzen Curve Optimizer - thinglabs
September 8, 2024 - Begin by conducting a multi-core test—Cinebench R23 can be a suitable choice—to establish a performance baseline. In automatic mode, Curve Optimizer can manage adjustments across all cores, but fine-tuning each core individually can yield better results in specific scenarios, such as gaming where single-core performance can be crucial.
🌐
AMD
amd.com › content › dam › amd › en › documents › products › software-tools › faq-curve-optimizer.pdf pdf
FAQ - Curve Optimizer Feature in Ryzen Master What this feature is all about?
Setting higher value for the Test Duration significantly increases the derivation time but it may derive values which are relatively more · stable. Conversely, if the Test Duration is set to lower values then derivation time is lesser but the values may not be stable. ... The Stress Test Type should be set to CPU Only or Both. ... This parameter is available only after Ryzen Master derives the optimized values.
🌐
Tom's Hardware Forum
forums.tomshardware.com › home › cpus
Question - Ryzen Master Curve Optimizer, how to know if it's really being applied ? | Tom's Hardware Forum
June 19, 2022 - The only bad thing, will be i will need to Redo the Curve Optimization if i activate it.... Click to expand... Sorry, I never tried such combination but I think that RM will override any other settings done after it finished CO. ... Sorry, I never tried such combination but I think that RM will override any other settings done after it finished CO. Click to expand... I think you are right. ... A little confused here: Profile CO, says OFF. But in Current, CO: Per Core.
🌐
Linus Tech Tips
linustechtips.com › computer hardware › cpus, motherboards, and memory
+25 steps curve optimizer with maxed power limits.. - CPUs, Motherboards, and Memory - Linus Tech Tips
July 24, 2022 - I feel super dumb even asking this question but to be honest it's bugging me. I recently bought and installed a Ryzen 9 5900X, and I wanted to play with curve optimizer and test around with CB23. I've done this before on my previous 5800X. I set my curve optimizer to "per core" and changed all of...
🌐
GitHub
github.com › sp00n › CoreCycler
GitHub - sp00n/CoreCycler: Script to test single core stability, e.g. for PBO & Curve Optimizer on AMD Ryzen or overclocking/undervolting on Intel processors · GitHub
Unfortunately such an all-core stress test with Prime95 or other stress tests is not effective for testing single-core stability, because the cores cannot boost as high if all of them are stres tested, and therefore you won't be able to detect instabilities that only occur at a higher clock speed. For example, with my 5900X I was able to run a Prime95 all-core stress test for 24 hours with an additional Boost Override of +75 MHz and a Curve Optimizer setting of -30 on all cores.
Starred by 1.2K users
Forked by 42 users
Languages   PowerShell 98.1% | Batchfile 1.9%
🌐
Overclock.net
overclock.net › home › forums › amd › amd cpus
Ryzen 5000 series positive value for curve optimizer | Overclock.net
March 21, 2022 - Just remember, each step in the Curve represents either 3mV, 4mV, or 5mV (AMD has not been more specific). If you do use positive values and a high Scalar value, make sure you have very good cooling.
🌐
Cubicy
cubicy.icu › overclocking-zen3
Overclocking AMD Zen3 with PBO2 Done Right: A full guide | Cubic Y³
April 27, 2024 - Test different values until you find that the frequency reached a maximum during CPU-Z all-core testing. PBO Scalar: Manual / 10X (If your cooler sucks, make this arg lower) Max CPU Boost Clock Override: 200MHz (If your cooler sucks, make this arg lower too) Thermal limit: auto or a high value. This arg can only lower the temperature limit set by the manufacturer, so it makes no difference · Curve Optimizer: Per Core, and the NEGATIVE values for each core are all we have to determine in the next step.
🌐
AMD
docs.amd.com › r › en-US › 68886-ryzen-master-user-guide › Curve-Optimizer
Curve Optimizer - 3.1.0 English - 68886
You cannot opt-out of our First Party Strictly Necessary Cookies as they are deployed to ensure the proper functioning of our website (such as prompting the cookie banner and remembering your settings, to log into your account, to redirect you when you log out, etc.). For more information about the First and Third Party Cookies used please follow this link. More informationAllow All
🌐
Albert Herd
albertherd.com › tag › curve-optimizer
Curve Optimizer – Albert Herd
The numbers you’re inputting here will vary significantly from one chip to another, so your mileage may vary. These are my values: Negative 11 for the first preferred cores on CCX 0 (as indicated by Ryzen Master) Negative 15 for the second preferred core on CCX 0 (as indicated by Ryzen Master) Negative 17 for the other cores. If you want to start safe, you can apply a Negative 10 offset on all cores.
🌐
Overclock.net
overclock.net › home › forums › amd › amd cpus
AMD Zen 4 PBO2 (Curve Optimizer) Thread | Overclock.net
September 28, 2022 - What is the difference between using pbo level 1, level 2 or level 3 and using curve optimiser pbo 2? ... what do you guys use to determine what core caused a computer to crash? the event viewer trick for zen 3 doesn't work on zen 4 because zen 4 doesnt whea ... Overclock 1 core at a time is the approach I took. So basically started with all core until it crashed which was -8.
🌐
Overclock.net
overclock.net › home › forums › amd › amd - general
Curve optimizer values not working in bios | Overclock.net
I run ryzen master auto tuning per core curve optimizer and come came up with negative values. 26-26-26-24-26-26. Uninstall Ryzen master and made a clear cmos. Then i enter valeus above in curve optimizer and i had a boot loop (automatic repair). I had to use -20 all core in curve optimizer to be able to boot.