What is best practice for overclocking / undervolting a 50xx in Linux?

A forum for discussing FAH-related hardware choices and info on actual products (not speculation).

Moderator: Site Moderators

Forum rules
Please read the forum rules before posting.
arisu
Posts: 593
Joined: Mon Feb 24, 2025 11:11 pm

Re: What is best practice for overclocking / undervolting a 50xx in Linux?

Post by arisu »

BobWilliams757 wrote: Thu Oct 30, 2025 4:07 pm Just for input - Myself and a couple others have found that lowering the memory clocks is actually more efficient. I haven't seen any testing on newere hardware, but the idea is that anything since Turing has more than enough memory bandwidth and there is little if anything to be gained. BUT driving the memory clocks up uses more power, and that power (if running power limited) could be used to increase clocks more, or simply just not use the power for something already fast enough. It might be worth some testing when using locked clocks.

As for the undervolting, it seems to be covered. But for the ultimate in how to get hard data to make your decisions, the thread below has some great ideas.

https://linustechtips.com/topic/14 ... gpus/
Lowering memory clocks is only helpful for certain WUs. The ones that require a lot of VRAM and show sustained >20% memory usage will probably benefit from an increased memory clock. But it really depends.
BobWilliams757
Posts: 602
Joined: Fri Apr 03, 2020 2:22 pm
Hardware configuration: ASRock X370M PRO4
Ryzen 2400G APU
32 GB DDR4-3200
MSI GTX 1660 Super Gaming X

Re: What is best practice for overclocking / undervolting a 50xx in Linux?

Post by BobWilliams757 »

arisu wrote: Mon Feb 23, 2026 11:33 am You can also increase the memory clock, which is useful for very large WUs (many atoms) and most GPUs handle it far better.

The actual values for both shader and memory clock offsets varies not just for individual models, but for actual individual cards themselves. That is why the current values are what they are. The default value is the value guaranteed to work on every card that passes internal QA testing.

For one particular RTX 5070 Mobile, I find that this is safe (requires Xorg with coolbits=28):

Code: Select all

nvidia-settings -a [GPU:0]/GPUGraphicsClockOffset[4]=405 -a [GPU:0]/GPUMemoryTransferRateOffset[4]=6000
That gives an additional +405 MHz to the shader clock and an additional +3000 MHz (6000 / 2, because it's DDR) for the memory clock. Power usage is capped by the firmware to 90 watts, so this results in a lower voltage to achieve the higher clocks. I can go as high as +435 MHz on my specific GPU, but then it very occasionally causes WU errors. So I dropped it down to +405 (two 15 MHz steps) to keep it safe. Meanwhile, I have a GTX 770M that can do +135 shader and +792 memory, a GTX 970M that can do +135 shader and just +209 memory, and another GTX 970M that can do +135 shader and +1600 memory. So even if you have several different identical GPUs, they might not all be stable at the same offsets.

My advice? Gradually increase shader clock in 15 MHz increments until the WU crashes, then drop it down by at least 75 MHz (five 15 MHz steps) to give you a safety margin. Do the same with memory, but do reduce the offset by 200 MHz once you reach a crash.

You shouldn't try to keep it right at the cusp of what is stable, because what's stable for one WU might not be stable for another, and you don't want to wake up finding that you just dumped a dozen WUs in a row because you just got lucky when testing. Beware that sometimes you want LOWER memory clocks, not HIGHER memory clocks. But it really depends on the WU.
I just want to emphasize that each project is different, and the advice above to leave some overhead when tweaking either core or memory clocks is very sound advice. Add to that each GPU will tolerate power differently as well, and sometimes that includes the lower limits. When I was testing stuff on my Turing GPU I had one single project that would toss errors at a power level limit of 53% which was the lowest MSI Afterburner would go on that GPU. No other project flinched at all over years once that project completed.


And while I'm at it, a question for Arisu. What is the standard memory clock on that 5070 mobile you have? It just seems like a huge bump in clocks, and I hadn't seen people pushing the 5000 series GPU's that far on memory. As for core clocks.... well they have plenty of overhead for sure. I haven't had mine for long, but so far with some tinkering haven't even managed to produce a single error code. It stays stable even with 400+ bumps on the core, as well as undervolts well. Once I have more time I'll push some limits to find out, but for now it produces well and most projects stay below 110 watts or so.
Fold them if you get them!
arisu
Posts: 593
Joined: Mon Feb 24, 2025 11:11 pm

Re: What is best practice for overclocking / undervolting a 50xx in Linux?

Post by arisu »

BobWilliams757 wrote: Thu Feb 26, 2026 12:36 am And while I'm at it, a question for Arisu. What is the standard memory clock on that 5070 mobile you have? It just seems like a huge bump in clocks, and I hadn't seen people pushing the 5000 series GPU's that far on memory. As for core clocks.... well they have plenty of overhead for sure. I haven't had mine for long, but so far with some tinkering haven't even managed to produce a single error code. It stays stable even with 400+ bumps on the core, as well as undervolts well. Once I have more time I'll push some limits to find out, but for now it produces well and most projects stay below 110 watts or so.
The standard "clock" is 12001 (remember that it's MT/s, not really MHz). GDDR7 is not really DDR, but QDR (quad date rate), and it uses double-pumped modulation, so it actually performs 8 transfers per clock. So what's reported as 12001 is actually a base clock of 1500 MHz. When I increase it by +6000 to 15001, the actual clock rate the memory chips are experiencing is just 1875 MHz (an increase of 375, not 6000). But the driver reports it in effective MT/s, not the actual clock of the memory chips in MHz. That's why the number is so big.

Most mobile GPUs use the same die as bigger GPUs, just heavily derated or with some cores fused off. The 5070 Mobile is a GB206 (same die as the non-mobile 5060) which is rated for a base memory clock of 1750 MHz, so really the memory clock is only going 100 MHz above its normal (non-derated) base clock. I just happen to have to add 6000 MT/s to get there.

I don't overclock my GPUs because they will always be under throttling, either thermal or power. So no matter how aggressively I underclock it, the clock rate will never increase past the max boost frequency (and will never achieve the maximum boost under load anyway).
Post Reply