Zen 3 downvolt, beyound expectations

Watched a video in which they were saying about downvolt the CPU would increase its performance, get better temps, less cooler noise and less power usage.

Decided to give it a try and man, it works.

For those running Zen 3 CPU, try this in your UEFI/BIOS:

Go to AMD overclocking TAB, open the Precision Boost Overdrive:
Change the PBO setting to Advanced
PBO limits, don’t change here, we don’t want it to overclock
Go to Curve optimizer, set all cores, negative and put 30mV…

With this, you will get lower temps and because of that, the CPU will get higher frequencies for longer…
I was getting 10700 points in Cinebench 23, now I’m getting 11400… And with lower temps.

Give it a try and let me know how that worked for you…


My 5800H works fine at -50mV (set using amdctl because my UEFI doesn’t have settings for stuff like that).


I tried that, but my 5600x is not stable… -30mV was the limit for me…
Got a few reboots to find that sweet spot :slight_smile:


Just be aware that undervolting on Zen2/3 can induce clock stretching. This makes it appear to use a certain frequency and be stable but reduces performance.

You may also cause idle crashing as CO effects the entire volt/frequency curve, -30mv may not seem like much but it can cause many Zen2/3 CPUs to crash on 1 or more cores.

Edit: you also need to test with something that causes variable load. I think there is something called core cycler specifically for testing ryzen


Thanks man, I’ll be watching closely…
Ran a 30 minutes Cinebench 23 test, my CPU didn’t reach 60 Celsius and no hangups…
So I suppose that in my situation, its ok.

That not nearly long enough to conclude stability​:stuck_out_tongue_closed_eyes:

My 5600x can run 30min CB @ 2000mhz IF but its not close to stable lol

1 Like

On Asus motherboards, you don’t need to change the PBO settings, you simply change the VDDCR CPU Voltage to Offset mode, negative and increase the offset voltage.

1 Like

Guess I’ll have to wait a few days to see then… :slight_smile:

Hm, that is to advanced for me hehe, but its nice to know as it can help people with a ZEN2 CPU, since ZEN2 doesn’t have curve optimizer

Nothing advanced there, just plain UEFI:

1 Like

Indeed… easier than going to the PBO settings… :slight_smile:

Checking that right now

Is that

Is there a Linux version? :thinking:

That might be it, I’ve just heard of it in OCing circles. I dont tinker with CO and AFAIK there isnt a Linux version

Edit: that one looks like a special script for using prime95 to induce the actual load. Could likely easily be ported to linux with mprime

1 Like

-30mV was too much for me…
Tried -25mV and got errors, so tried -20mV and it was fine…
Errors happened in the first minutes of tests…

With -20mV, I ran for almost 2 hours without a single error…

I know that would be better to run it for longer, but for me its more than fine…

1 Like

My experience is, that the temperature does not go down but CPU frequency goes up. May be idle temperature is lower but certainly not temperature under load.

For my Ryzen 9 5900x the speed increase is minimal: 3-4 %. That will not be noticable in my daily life.

I found that “mprime -t” is an excellent test for stability. In my case I recieved an error like

FATAL ERROR: Rounding was 0.5, expected less than 0.4
Hardware failure detected, consult stress.txt file.

when I was reducing voltage too much. mprime -t needs to run for a longer period of time to make the CPU really hot and bring it to the limit. I let it run at least until “test 10”

This stress test is also documented here:


It says that these errors are “due to insufficient vcore to the CPU”.

I am not sure if I will keep the undervolting. There must be a reason why AMD is shipping with higher voltages.


Manufacturers are always overcautions and are also including fluctuation in production quality in the default voltage tables. That is also the reason why some chips are stable with more undervolting, while others can only do little undervolting.

Undervolting always was the safest modification to reduce power consumption/temperatures on CPU, GPU and even Mobile SoC’s (I once had a old android phone that could do wonders with undervolting and battery life).
With Zen’s auto-overclocking that is guided by core temperature, it leads to more performance, that is expected, but also to lower temperatures in low to mid load conditions.

Nowadays, CPU’s come pretty optimized out of the box already.
With my previous Intel laptop, I could easily apply -130mV while still being fully stable.
Or those good old times with a 2600k, 3.4@4.5 GHz or Celeron 300@450 MHz :slight_smile:

Those times are pretty much over now with the latest CPU generations.
Overclocking / Undervolting gains are negligible these days.

1 Like

I have to correct myself on this statement. I played around a bit with the PBO and curve optimizer settings and found the following:

Board: Gigabyte X570 AORUS ULTRA
CPU: Ryzen 9 5900X

All tests with PBO set to "Advanced.
All test with curve optimizer negative at values around 20-30

When I set PBO Limits to “Motherboard” (this is where I started) I get better performance by 3-4 % (darktable) but the temperature is not going down. I see the same high 90 °C with “mprime -t”

When I set PBO Limits to “Disable” I get only a slightly better performance of 2 % (darktable) but 10 °C less temperature with “mprime -t”.

I will keep it like that. 10 °C less temperature is a good thing to have from my point of view. @mcury : Thank you for bringing this topic to my attention :wink:


that does not change the CPU voltage

that disables Ryzen’s automatic overclock feature completely.

have you verified if it is really lower by 10° and not just a further effect of disabling PBO? One feature of PBO is that the temperature is reported 10° higher to make FAN curves ramp up faster to allow for further overclocking.
It can be seen with sensors:

Adapter: PCI adapter
Tctl:         +54.6°C  
Tdie:         +44.6°C

Tctl is the reported temperature for the FAN curve, Tdie is the real temperature.


I didnt say that. curve optimizer negative at values around 20-30 changes the voltage. The point is, that PBO Limits set to “disable” or “Motherboard” makes a difference for me in terms of performance and temperature.

What do you mean with that question? I am using lm-sensors Tctl to check the temperature. And Tctl is 10 °C lower. What do you mean with “verify”?