Set GPU Clock Speed To Maximum


I have an Nvidia 1080 GPU, and I want to set the GPU clock speed to maximum.

I was advised to set the performance state to P0 using this command:
sudo DISPLAY=:0 XAUTHORITY=/var/run/lightdm/root/:0 nvidia-settings -a [gpu:0]/GPUPowerMizerMode=1 #1 is P0 highest performance mode

However, in this setting, the performance of the Clocks is about 80% of the maximum. I want it to be the maximum all the time (similar to the jetson_clocks command available for Jetson Nanos.

The second problem is that the performance mode is changed to P2 Automatically after a small amount of time. I want it to be maximum performance all the time (make the change permanent)

To the best of my knowledge, the setting of so called application clocks with nvidia-smi is not supported for consumer cards.

All modern GPUs use dynamic clocking, and clocks can be regulated down by the management software due to thermal or power limitations. My observation (Pascal, Turing) is that clocks start to be reduced as soon as the GPU temperature exceeds 60 degree Celsius. Under heavy load that happens within 30 seconds or so on the GPUs I own. Under continuous heavy load in the warm California summer my GPUs heat to 80 or even 85 degree Celsius, and clocks are reduced to around 80% of the maximum.

So your best bet for keeping GPU clocks high is to keep the GPU very cool. Anecdotally, in the winter I can get ambient temperature down to 10 degrees Celsius (50 degrees Fahrenheit) by opening my office window and then my GPUs typically hit their power limit under continuous heavy load, rather than the thermal limit. If you have a way to set the fan speed, try setting it to maximum speed. Note: this may get very loud, and it may reduce the lifetime of the fan for all I know. I don’t have experience with water cooling, but that is another approach you may want to research.