Some GPU (5090,4090,3090,A600) idle power consumption, headless on Linux (Fedora 42), and some undervolt/overclock info

some-gpu-5090-4090-3090-a600-idle-power-consumption-v0-5difgej3fdpf1

Just an small thread about some power consumption of those some GPUs if some people are interested.

As extra info, all the cards are both undervolted + power limited, but it shouldn’t affect idle power consumption.

Undervolt was done with LACT, and they are:

3090s: 1875Mhz max core clock, +150Mhz core clock offset, +1700Mhz VRAM offset.

A6000: 1740Mhz max core clock, +150Mhz core clock offset, +2000 Mhz VRAM offset.

4090 (1): 2850Mhz max core clock, +150Mhz core clock offset, +2700Mhz VRAM.

4090 (2): 2805Mhz max core clock, +180Mhz core clock offset, +1700Mhz VRAM offset.

5090s: 3010Mhz max core clock, +1000Mhz core clock offset, +4400Mhz VRAM offset.

If someone wants to know how to use LACT just let me know, but I basically use SDDM (sudo systemctl start sddm), LACT for the GUI, set the values and then run

sudo a (it does nothing, but helps for the next command)
(echo suspend | sudo tee /proc/driver/nvidia/suspend ;echo resume | sudo tee /proc/driver/nvidia/suspend)&

Then run sudo systemctl stop sddm.

Also, if you have set LACT one time, it is auto applied on each reboot, so I have disabled SDDM and just run the suspend/resume command and it works the same way.

The suspend command is a must, else my 3090s idle at like 20-25W, and my 4090s at 15-20W.

This mostly puts the 3090s, A6000 and 4090 (2) at 0.9V. 4090 (1) is at 0.915V, and 5090s are at 0.895V.

Also this offset in VRAM is MT/s basically, so on Windows comparatively, it is half of that (+1700Mhz = +850Mhz on MSI Afterburner, +1800 = +900, +2700 = 1350, +4400 = +2200)

Also as info, maybe (not) surprisingly, the GPUs that idle at the lower power are the most efficient.

I.e. 5090 2 is more efficient than 5090 0, or 4090 6 is more efficient than 4090 1.

2 Likes

Thanks for sharing your LACT configs @Panchovix … I was laughing that again I stumble into this github discussion and see some of the usual suspects like you and Ph0rk0z :

My 3090TI FE is able to do about +150MHz GPU Core and (1500MT/s or possibly a little more) it seems. If I try to push to say +250MHz, I noticed that ComfyUI Wan 2.2 video generation will run unusually faster but have mostly black/empty output or occasional glitchy squares/patches then I have to reboot to “fix” it haha…

Have you done any a/b testing with stock throttled nvidia-smi -pl 350 vs LACT “undervolt and overlcock” to measure actual WattSeconds of power usage for a given task? It’d be interesting to see some hard data/benchmark results.

1 Like

Haha we’re all in the same thing!

I have done that testing on the 5090s.

Running a hard limit with nvidia-smi -i 0 -pl 475 vs using LACT UV+OC+PL limit, the former is a good amount slower.

For example for SDXL, batch size 2, batch count 2, 890x1088, 1.5 hires upscale, 25 steps first pass of DPM++ SDE and 10 steps of Kohaku_LoNyu_Yog on the hires pass.

The former does the task taking between 39.3s and 40s, and the latter does it between 36.3 and 36.5s.

Basically with just the power limit the core clocks drop a lot, like to the 2000Mhz range, while with that +1000Mhz offset (sounds really high but Blackwell 2.0 has some weird VF Curve) it does at 2400Mhz.

Hope I explained myself.

1 Like

Wow, do you have more info on that?
My 3090s idle at 25~30W. Doing this trick made then go a bit down to 15~20W, so thanks for that!

2 Likes

Honestly I’m not sure how it works. I took that command from a reddit thread time ago about someone talking idle power.

I just know that it works flawlessly all this time, and it helps for the 4090s as well.

Updated to latest 580.82.09 P2P driver (I did the update here GitHub - Panchovix/open-gpu-kernel-modules: NVIDIA Linux open GPU with P2P support, PR showing it working on 580.82.09-p2p by Panchovix · Pull Request #5 · aikitoria/open-gpu-kernel-modules · GitHub)

And got a little lower idles now.

2 Likes

@Panchovix thanks for the detailed info on your SDXL benchmark.

I vibe coded a simple logging script using ubergarm/DeepSeek-V3.1-GGUF IQ5_K (no thinking) to use python NVML bindings and record GPU power usage, clocks, and other metrics at a 1Hz rate to CSV file.

Then I ran ik_llama.cpp swee-bench on small dense model that I can fully offload onto my GPU easily.

Two two cases are:

  • Baseline nvidia-smi -pl 400 400Watt power cap
  • LACT indirect undervolt & overclock profile shown

This proves to me that LACT method is better than a naieve power cap as it allows the clocks to run a bit faster while staying within the specified power envelope.

You can see the llama-sweep-bench is measurably faster both for PP and TG speeds across the entire kv-cache depth. Not only is it faster it uses less overall energy to run the benchmark so very nice uplift!

Keep in mind i have a Founders Edition 3090TI FE so it has larger power/clock envelope available pretty sure.

My understanding of how this works is that despite not being able to control voltages per power state directly, by clicking Enable GPU Locked Clocks it won’t advance power state if already at maximum gpu clock.

So the effective result is we can achieve higher clocks rates at lower power states (lower voltages) and for the same power envelope squeeze a little more performance (or less heat / energy use) out of the GPU.

If anyone else wants to try it, here is the basic idea which could be extended to AMD GPUs as well as NVIDIA as shown:

  1. Install LACT in Linux and read this thread carefully and accept any risks of messing with your GPU power configuration.
  2. sudo systemctl enable lactd && sudo systemctl start lactd
  3. sudo lact
  4. Click on OC Tab
  5. Click on Enable GPU Locked Clocks
  6. Add 150 to GPU P-State 0 Clock Offset (MHz)
  7. Add 1500 to VRAM P-State 0 Clock Offset (MHz)
  8. Set Power Usage Limit as desired or leave at full for max perf.
  9. Click Apply at the bottom then click Accept within 5 seconds to confirm the dialogue box.

This profile will be applied after reboots now if you enabled lactd to on startup.

Cheers and enjoy the free performance or lower energy bills!

2 Likes

Thank you! Even though “idle” is not the goal of such a beast, it is nice to have comparable info on your very efficient build. :raised_hands:

FWIIW, we see about the same PWR and TEMPs on our 5x4090 machines at idle

Note: nvtop does not take into account the external radiators/fan power, but this is probably also very low/no at idle.

2 Likes

Necrobumping this to let others know that the `/proc/driver/nvidia/suspend` does not exist by default on the open source modules anymore, as seen here:

Got this info in this reddit thread:

On the other hand, LACT now has a GUI similar to Afterburner for setting VF curves, instead of the previous workaround of trying to set offsets:

1 Like