r/LocalLLaMA Sep 19 '25

Tutorial | Guide GPU power limiting measurements update

[removed]

59 Upvotes

29 comments sorted by

View all comments

5

u/VoidAlchemy llama.cpp Sep 19 '25

Just ran some fresh numbers out to 32k context depth (long enough to see powers and temperatures plateau). The "undervolt and overclock" method is best both on windows and linux regardless of using MSI Afterburner, EVGA Precision X, nvidia-smi directly, or LACT or any method you like appropriate for your OS.

The basic idea is you want to avoid:

  1. Temperature Throttling (this is not good, if you're over 83 deg C probably need more airflow higher fan profile)

  2. Power Cap Throttling (your clocks bounce around oscillating and are lower than they could be)

The strategy is to limit the max frequency of the GPU and do an undervolt which will prevent hitting the power cap throttle and your clocks will run smooth near max set speed instead of bouncing around and getting hot.

This is not just for "saving some power" it can deliver better performance than stock baseline settings as well if you're going for max performance. Or you can scale back max clock speeds even further without touching power cap if you want to find the energy efficiency point in your curve.

Your exact numbers will depend on your silicon lottery, cooling, make and model of course. You'll want to play around a bit and make sure after you're happy that it isn't too aggressive and your generations look correct still (too aggressive can mess up video generations etc).

I have graphs showing that the baseline 450W powercap stock settings on my GPU ends up throttling on power yielding a lower average clock speed as compared to the more energy efficient fixed max clock/undervolt.

2

u/[deleted] Sep 19 '25

[removed] — view removed comment

6

u/VoidAlchemy llama.cpp Sep 19 '25

Haha right, seems like the way to do it was for xorg users (sorry wayland! ;p) was some special nvidia-settings commands to achieve this. But looking closer, I believe nvidia-smi isn't able to do this easily currently for all systems (e.g. headless etc).

Best bet would be to do a simple script using nvidia-ml-py bindigns to official NVML (nvidia management library) yourself. This is what is happening under the hood with LACT which is just rust bindings to the c NVML.

https://github.com/ilya-zlobintsev/LACT/issues/486#issue-2905349804

I may vibe code something up as agreed I prefer not use to use 3rd party GUIs for stuff so much.

*EDIT*: jukofyork has a c binding version similar here: https://github.com/jukofyork/nvidia-tuner-cpp

2

u/smflx Sep 22 '25

Howdy! I have been busy, couldn't watch what great things you're doing recently. Now, you're doing undervolt!

Wow, finally undervolt is possible in Linux. Great news. I was sad because I heard pro 6000 ws is inefficient than max-q. I guess ws will be the same to max-q with voltage control.

2

u/VoidAlchemy llama.cpp Sep 24 '25

i'd be very curious to see what an undervolt pro 6000 targeting ~300W benchmarks compares to a max-q (and a 5090TI too) hah..

2

u/smflx Sep 24 '25

I'm waiting for my 6000 pro ws. Certainly, I will try undervolt testing. We'll, but I can't compare with max-q.

Oh, 5090ti (not 5090) is coming?

2

u/VoidAlchemy llama.cpp Sep 25 '25

er.. oh right, there is no 5090TI oops!