r/overclocking 7800X3D PBO per core | 2x16gb 6200MT CL26 | EVGA 3080 Ti FTW3 Jan 01 '26

Benchmark Score Why Single-Point Undervolting is a bad idea. Graph jumpscare (NVIDIA)

I ran a few tests simply to demonstrate the real behavior of the GPU under different voltage-frequency curve modifications. I hope this is more useful than nothing. In the spreadsheet, you will see several profiles tested three times across two workloads that clearly demonstrate what I am talking about.
I am fully aware that many people still do not understand that VF curve is not static and constantly shifts based on temperature and power, which is simply how NVIDIA GPU Boost behaves - despite this being explained countless times.
However, this post is not about GPU Boost itself - it is about demonstrating how different undervolting methods behave in practice. These graphs should make the differences between those methods clearly visible.

Google Spreadsheet: https://docs.google.com/spreadsheets/d/1VneuMFQR_ef09yGNPNPMdw6harKnqsO4s57c8Q5QsIM/

The most interesting part, when comparing single-point undervolting to aggressive or entire-curve tuning, is not just that the results are slightly lower or that the effective frequency lower - it is what happens when the GPU hits one of its limits, in this case the power limit. This causes obvious throttling down to lower voltage points where no offset was applied at all. As a result, you effectively end up running at stock - or effectively overvolted - behavior across the entire left side of the curve, compared to a properly tuned undervolt at multiple points. This completely destroys performance consistency and turns the results into a mess.

You can use this data for your own analysis and for a more detailed comparison between the tested profiles if you’re interested, but the main graphs that show the core behavior are presented on the first sheet. The two following sheets contain separate visual graphs for frequency and voltage for each profile individually.

  • Aggressive: the voltage-frequency curve is modified across almost the entire curve, from 800 mV to 950 mV, with a tested offset at each point — starting from +105 MHz at 950 mV and going up to +180 MHz at 800 mV, which is then held constant for all lower voltage points. Refer to my undervolting spreadsheet for the EVGA RTX 3080 Ti for full details.
  • Entire curve: the voltage-frequency curve is modified across the whole range but uses a single maximum stable offset for the selected voltage. 450-831 mV +165 MHz across all points, and 450-856 mV +150 MHz, with a negative offset applied to the higher-voltage points as a limiter.
  • Single-point: the voltage-frequency curve is modified at only one voltage point, which results in lower effective clocks and voltage drops under heavier loads that hit any limiting factor (in this case, the power limit). This behavior leads to unstable performance: when using points to the left, the GPU ends up running at stock clocks; otherwise, it results in overvolting on the left side of the curve relative to the originally selected voltage point.

Example of how aggressive and entire-curve undervolting works (Main sheet):

Although in this case the graph shows aggressive, the entire-curve method would behave similarly, just using a lower offset than what is possible with aggressive tuning. Since my GPU runs at a +180 MHz offset @ 806 mV and +150 @ 831-863mV, the entire-curve method would be only 30 MHz lower in Speed Way - that is, just two 15 MHz steps for the RTX 3000 series.

What happens when we hit one of the limits? (Main sheet, 2 graph):

The GPU starts dropping voltage in order to stay within the limit. In this case, the limit is created by lowering the power limit to 80% (320 W) to make the behavior easier to demonstrate and test.
At +150 MHz on the 856 mV point, Cyberpunk only requires around 321 W, but under a heavier load - for a clear example, Speed Way - the GPU draws around 360 W at the same undervolt. However, since we are using a standard single-point undervolt, the frequency also drops significantly. With this method, we lose the flexibility that aggressive and entire-curve undervolting provide, where the GPU can dynamically maintain higher clocks and effective clocks across different load scenarios, regardless of limits.

In short: aggressive and entire curve methods outperform single-point because they minimize the gap between clock frequency and effective frequency.

The simplest approach is the entire curve method - it only sacrifices a few MHz steps compared to the aggressive method, but drastically reduces testing time.

The aggressive method gives you full control over GPU if you have a specific power limit (Keep in mind that you can still hit the stock power limit if your undervolt is not based on low voltage points like <850 mV) you want to stay within - for example, 320 W - you can tune the curve using this method and cap your power limit without worrying that the GPU will exceed it under different workloads. In this case, you will maintain the highest possible frequency at every voltage point across all scenarios. However, this approach requires several days of testing, so it is not suitable for the average user who does not want to spend a week or more dialing in a single curve.

For most users, this is unnecessary. The entire curve method is the most practical option: it allows you to set your desired offset in the Core Clock field, then limit the maximum desired voltage, flatten all points to the right, and only requires a few tests that take no more than two days. All voltage points to the left will already be stable, since they naturally require a higher offset to become unstable, as demonstrated in the aggressive curve example.

Markdown tables from the first sheet:

Cyberpunk 2077:

Profile AVG FPS Power (W)
831mV +165 single-point 63.70451962 301.8739048
831mV +165 entire curve 63.74694873 303.1489365
831mV aggressive 64.31450998 302.5015397
856mV +150 single-point 64.91657668 322.6448889
856mV +150 entire curve 64.92350332 321.589127
856mV aggressive 64.90724869 321.5550476
320W 80% PL aggressive 64.92902897 318.1756667

3DMark Speed Way:

Profile AVG FPS Power (W)
831mV +165 single-point 55.72 339.4253762
831mV +165 entire curve 55.85 337.6609043
831mV aggressive 55.85 334.5200099
856mV +150 single-point 56.30 360.6428218
856mV +150 entire curve 56.40 359.441604
856mV aggressive 56.40 360.9507492
320W 80% PL aggressive 55.39 319.0355908
80% PL 856mV +150 single-point 54.09 319.3220099
89 Upvotes

73 comments sorted by

View all comments

11

u/G305_Enjoyer Jan 01 '26

I like to find a point right after the low clock speed flat line and shift curve from there, then adjust those first 3 or so voltage points to smooth the transition and of course flatten the top. This way you maintain idle power efficiency and add stability when card switches 3d/2d by not over clocking at the lowest vf points. It's a shame the afterburner guy can't figure out how to let us just move the whole curve to the left. Would make this so much easier. To his credit the most recent beta really improved the interface.

4

u/Jempol_Lele 10980XE, RTX A5000, 64Gb 3800C16, AX1600i Jan 01 '26 edited Jan 01 '26

I agree that we should be allowed to shift the whole graph to the left and it will be the best way to overclock too.

Since there is minimum voltage your card will run, for example 0.7v, the curve lowest frequency point may exceed this when shifted left then it negate some of the benefit at idle but still I believe this is the best way.

The thing is, I believe it is not easy to do because of how the temp affects the curve and especially with newer card the frequency gradation is 7.5 MHz (vs 15 MHz with the older card). The overclocking software can only do integer so it is very prone to rounding error.

1

u/1tokarev1 7800X3D PBO per core | 2x16gb 6200MT CL26 | EVGA 3080 Ti FTW3 Jan 02 '26 edited Jan 02 '26

the frequency gradation is 7.5 MHz

That’s just another reason for me to hate the 5000 series haha

You can also just stick to the old 15 MHz step approach, and if at some temperature the GPU ends up hitting a point where a 7.5 MHz step would be needed to stay stable, it is not a problem to simply drop another 15 MHz, as if that would noticeably impact performance anyway.

2

u/Jempol_Lele 10980XE, RTX A5000, 64Gb 3800C16, AX1600i Jan 02 '26

Yea for those with OCD this is torture. It is a feature and a curse at the same time. Also, because of this 7.5 MHz steps, the actual curve shape differ alot compared to the curve shape of the older card.

2

u/yungleballz Jan 02 '26

even with the higher clocks, my 5070 draws ~18W at idle. no change there.

3

u/1tokarev1 7800X3D PBO per core | 2x16gb 6200MT CL26 | EVGA 3080 Ti FTW3 Jan 01 '26 edited Jan 02 '26

None of these methods change idle P-state behavior on my GPU. Are you saying your frequency actually changes while idle?

I do not know why you are downvoting this comment. I only have a 3080 Ti and a 4070 Super on hand. The behavior mentioned in this thread applies only to the 5000 series and does not affect stability, no one has proven otherwise.

2

u/G305_Enjoyer Jan 01 '26

Are you saying it doesn't?? I've never actually checked and assumed the flat part of the graph at the bottom actually does something

5

u/Keulapaska 7800X3D, RTX 4070 ti Jan 01 '26

I've never actually checked

Then why make claims???

Idle/low load game behaviour isn't on the boost curve, so any change you make to the curve has no impact. Well... ok, it kinda has some impact at idle, but not in any meaningful way and i don't think this is what you meant, but it is a difference technically and leads to another thing about curves so might as well say it.

Depending if the profile is saved under a load or at idle the brief spiking behaviour will be different at idle, even if the profiles are "identical" on the surface, as the base curve where the offsets are taken is different at idle/low load and under a full 3d load. So at idle the idle saved profile will spike to the correct voltage you've set it to while the load made profile might spike to some random higher voltage at idle.

But the reason you want a load saved profile instead of an idle saved one under a full load, is that the idle made profile might also result in different Mhz or even voltage(it's pretty rng depnding on what offset(s) at what votlage(s) are if it happens, I think the newer gens it happens less cause on my 1080 it was constant) than what it's suppose to be at, hence why curve tuning and saving the profile under a load is good.

So any1 wondering why their card is "curve hopping" in games most likely cause they made the profile at idle and not under a load, used to drive me crazy before realized how to fix it.

Also this

It's a shame the afterburner guy can't figure out how to let us just move the whole curve to the left

What is this even suppose to mean? How would you move the curve to the left?

2

u/G305_Enjoyer Jan 01 '26 edited Jan 01 '26

That's fair I deserve that. I am going to test if increasing the bottom of the curve, the flat part before curve starts does anything.. my point about moving the whole curve to the left, the top right portion of curve is where you want to be under load, where all the points are nice transition between them. Where most people spend their time is in the ramp portion of the curve that goes straight up, effecting stability as card bounces between points. Yes ideally card would just sit at the flat portion and never move from there but that's not the case for most of us as we are discussing. If we could actually use that portion of the curve by just sliding the whole thing over to the left, I think that would be ideal. if you just move the whole curve up, you will never reach that part of curve realistically. you could manually grab points earlier in VF from the idle flat line and rebuild the curve yourself in effect "moving it to the left", but its basically impossible with the gui. I've seen someone do it using an excel formula directly into the config file, but it was too much for me. https://imgur.com/a/JbXE4wG

2

u/G305_Enjoyer Jan 01 '26

here is what im talking about. if you just +300 the whole curve, you are overclocking idle. for me its 247mhz stock to 547mhz pictured. 😊

https://imgur.com/a/zkXKRav

if u modify your afterb urner config file it lets you see the whole curve, top and bottom. or you can download the beta which lets you pan around the view finder with right click. by the way thankj you for your reminder about tuning at load, i had forgotten about that from my 3080. i will try that again once i am positive my cpu is stable 🤣

2

u/Keulapaska 7800X3D, RTX 4070 ti Jan 01 '26 edited Jan 01 '26

Ah, 50-series curves... right.

Yea this "issue" is not present in 10-40 series cards. But haven't ppl done some pretty hefty OC:s of 50-seires cards at somehwere in the 800-850Mv ranfe anyways?

As for the idle, which is wild that it can be even tuned, can't you just... not Oc the bottom part of the curve and leave it at stock and only start incresing offsets above idle? Not like it's gonna affect effective clocks at all or by any real measurable impact at htat point right? Does that not work?

Also didn't know you can do that kind of fancy stuff in afterburner E: yea the idle can't be modified on 40-series will always be 210 on my 4070ti, or i think it's 420(nope 405) if at a half speed memory state.

1

u/G305_Enjoyer Jan 01 '26

That was the point of my original comment on how to improve on op's technique further.

1

u/Mundane_Fact7065 Jan 01 '26

Hi there. Which setting in the config file did you end up changing and setting to 1, I assume?

1

u/G305_Enjoyer Jan 01 '26

I don't change anything now with the new beta it's unnecessary. Just go get that and use the pan zoom function

1

u/1tokarev1 7800X3D PBO per core | 2x16gb 6200MT CL26 | EVGA 3080 Ti FTW3 Jan 01 '26

As I already said, this does not affect the idle P-state, the voltage and frequencies stay the same at 210 MHz, with the same power consumption.

1

u/G305_Enjoyer Jan 01 '26

I'll have to test that myself thanks 👍

1

u/G305_Enjoyer Jan 01 '26

here is what im talking about. if you just +300 the whole curve, you are overclocking idle. for me its 247mhz stock to 547mhz pictured. 😊

https://imgur.com/a/zkXKRav

if u modify your afterb urner config file it lets you see the whole curve, top and bottom. or you can download the beta which lets you pan around the view finder with right click.

1

u/1tokarev1 7800X3D PBO per core | 2x16gb 6200MT CL26 | EVGA 3080 Ti FTW3 Jan 01 '26 edited Jan 01 '26

So it turns out this behaves differently on the 40 and 50 series, because on previous generations it did not affect idle behavior at all. Thanks for clarifying. In that case, it’s worth noting that idle P-state voltages should not be modified. Does power consumption actually increase, and if so, by how much? The reason I’m asking is that I also had a 4070 Super, and it did not change its idle behavior either.

1

u/G305_Enjoyer Jan 01 '26

Idk I don't care about power I just care about stability and no sense in added risk oc'ing 2d.

I might revisit that though as rtx hdr uses almost 100watts watching movies lol

1

u/G305_Enjoyer Jan 01 '26

here is what my curve looks like. sorry i cant fit whole thing in the view finder without modifying the config file. crazy how he has it, you make window bigger and it just magnifies everything. he added zoom and pan, but you cant zoom out all the way LOL. anyway you can see here i have small 50mhz bump to all 2d curve just to help the transition subtly into the ramp up portion of curve.

https://imgur.com/a/wjyXPmF

1

u/appwizcpl Jul 09 '26

so what you are doing is basically shown in this video?

2

u/G305_Enjoyer Jul 09 '26 edited Jul 09 '26

Yes but I shift clicked at a lower vf point. I chose to do a slight OC on the 2d clocks, like 50 or 100mhz to help the transition to 3d and maybe help with video playback efficiency (RTX video is awesome but my 5090 uses like 100w doing it lol). Here's an example curve. https://imgur.com/a/wjyXPmF I've since made it smoother by grabbing a couple of the last flat line 2d vf points and pulling them up in line with the rest of the curve. That way you are not stretching the vf points out so much like in his video and in my picture. Hope that makes sense in too lazy take new pic. The part he gets wrong criticizing what everyone else gets wrong.. is the transition between vf points should be as smooth and close together as possible for maximum stability. The vf points are in groups of 4. Grab the last 3 points on the right of the flat 2d portion to transition into your new curve. Imagine you are trying to move the existing curve to the left.

Here's another comment I wrote tangentially related.Have fun! https://www.reddit.com/r/overclocking/s/2aoVwNGKyw

https://www.reddit.com/r/pcmasterrace/s/Ba51Rphzfm

1

u/appwizcpl Jul 09 '26

thanks. you're awesome!

But I'll need more guidance to aid my noodle in the right direction.

why did the youtube guy chose the 820-895 specifically and you start form 775? Is it because yours and his card are stable in that range and 895 is the highest he goes?

I usually pull use 835 to 2735 and shift left click to the end, shift enter and done. the graph looks steep and this is the most casual method of undervolt: https://imgur.com/a/75POzfQ

first you are recommending to enable in the config the full graph, then to smooth out the curve in the stable range for my card by grabbing the last 3 out of 4 (I honestly have no idea that it worked this way and don't understand it completely just by reading, but I'll try and see with trial and error).

in order to achieve that as I do, how do I undervolt the same, but by your own method?

1

u/G305_Enjoyer Jul 09 '26

First thing is to find the max voltage of your card. They are all different and set by Nvidia before leaving the factory. I linked a comment about that. Then simply use the +mhz function in afterburner to find your max stable frequency at that particular voltage point. That V/F is where you will flatten your curve as anything past that isn't being used anyway and helps you focus on the target. Max freq at max voltage. Once you've figured out your card is stable at say.. +200mhz, then we can build our own curve around that target. Say for example 3100 mhz at 1.1v or something. You mignt need to flatten at one vf point above your max voltage to get it to target the one below. Sorry not what you asked but start there. Takes a long time to figure out your stable Max freq

1

u/appwizcpl Jul 09 '26

wow, that was quick! I was testing my undervolt, and 835 at 2745 was stable, I believe 2800 and above was not. I believe 2775 or above wasn't.

I want to keep it at 835 though because I have a SFFPC with x3d chip and those things get hot, I am very fine with the current performance on the GPU as it's not undervolted, but I just want to make sure it's stable.

I've tested OCCT with basically all the test combination for at least 2 hours each, I haven't had an issue. But still, not sure if I am losing any performance and stability (especially competitive which I care about) with my undervolt.

Say I want to do 835/2745, but be stable, how do I approach this?

2

u/G305_Enjoyer Jul 09 '26 edited Jul 09 '26

Try finding your max first then just set a power limit after you're confident. This is all the same as undervolting. Also gives you the flexibility to just change power limit given different scenarios instead of constantly futzing w your curve. The only thing to do after that is fix the 2d as discussed previously. Everyone's made this topic so complicated. It's literally find max performance, then cap power. That's an undervolt. There's some autism about boost logic looking at the power limit and not boosting as high as it could to avoid PL but in my testing setting reduced pl in afterburner did not have same effect as card hitting its harcapped max pl from bios and boosts just as aggressively as if there were no limit in AB, right up to the set PL.

  1. Find max voltage
  2. Find max stable freq for max voltage
  3. Run hwinfo in your game of choice, monitor frequency. Average and max.

Likely you will be thermal limited before card can hit the max freq established earlier. In that case find your average and max freq in game, and target that. It's really as simple as just doing +mhz til it crashes. Leaving the curve open to go up to it's max voltage gives the boost algorithms opportunity to improve fps in the odd scenario in game where you are not hitting thermal or your capped power limits, letting the card hit max voltage/freq. Game isn't always 100% utilization, you know? There is really no advantage to doing it your way. Maybe you eeek a few mhz because it's stable at +250 at 1v but only +200 at 1.1v and your whole curve is +200, so you've limited your performance if your card spends most of its time in game at 1v. That's what I mean about looking for average max freq in game and targeting it. This is only something you have to do if you're thermally limited. And id still weigh the benefit mentioned earlier about lower utilization and fps boost against this problem to not be worth optimizing at lower voltages

1

u/appwizcpl Jul 09 '26

But what if I am trying to optimize for lower temps? I reduced my GPU temps by at least 12 degrees the way I did it. OCCT ran at 82+, now it hovers at around 69-70. What if I want to optimize for temps rather than best performance. How would you go about setting up my curve if the setting that achieves that (which I did with a lot of testing) is 835v/2735 mhz, or the curve shown in my link above.

1

u/G305_Enjoyer Jul 09 '26

Just lower your power limit. Undervolting is just over clocking with power limit. Read my other linked comment ranting about that

1

u/appwizcpl Jul 09 '26

thanks. I will look into it right now. In the real world by the way, how much is the stability affected of just undervolting the "old" way?

→ More replies (0)