How to Undervolt your NVIDIA GPU

I recently looked into the greenwithenvy package which is a pretty decent replacement for the MSN afterburner.

That said, whenever I made adjustments to the voltage (I mainly just wanted to undervolt my gpu by a few watts), it wouldn’t save the settings, which I found out later had to do with nvidia-smi persistence settings. I soon found myself writing a systemd service but in looking around I found that there was already a tool called nvidia-persistenced, which when called would set the nvidia-smi pm = 1 command and then it was as simple as writing a systemd command that would set the voltage to what I wanted.

Below is the very simple set of commands:

sudo nvidia-persistenced

cd /etc/systemd/system

touch nvidia-tdp.service

And then use your favorite text editor to edit the nvidia-tdp.service file. Enter the following:

[Unit]
Description=Set NVIDIA power limit

[Timer]
OnBootSec=5

[Install]
WantedBy=timers.target

[Service]
Type=oneshot
ExecStart=/usr/bin/nvidia-smi -pl <desirednumber>

And that’s that! To test it, make sure to reboot and then take a look using greenwithenvy or even nvtop and you should be good to go. Just enable it using systemctl:

sudo systemctl enable nvidia-tdp

This was mainly for my own reference, but since it could possibly benefit others looking to undervolt their Nvidia cards, I thought I might as well post it here.

__Mods, of course, if you find this isn’t relevant, please remove, and sorry for the inconvenience if that was the case.

2 Likes