A simple Rust CLI tool for overlocking, undervolting and controlling the fan of NVIDIA GPUs on Linux. Using the NVML library it equally supports X11 and Wayland.
- Set core clock offset.
- Set memory clock offset.
- Set power limit.
- Fan control using a custom linear fan curve.
- Use temperature hysteresis to prevent the fan from spinning up and down too frequently.
- Automatically set the fan control back to default on termination.
This tool is still under testing and it is impossible for me to guarantee that it works on every hardware, so use it at your own risk
Show all possible options:
./nvidia-tuner --help
Usage example:
./nvidia-tuner ---core-clock-offset 150 --memory-clock-offset 800 --power-limit 180 --pairs 50:30,70:40,90:60,100:100
This command takes temperature and fan speed pairs as an argument. In this example the fan speed will be 30% up to 50°C and 100% above 100°C. The fan speed between the given temperature and fan speed pairs is linearly interpolated to enable smooth transitions.
- Download the binary file from the latest release.
- Copy it to
/usr/local/sbin/
. - Create the systemd service file
/etc/systemd/system/nvidia-tuner.service
with the following content:
[Unit]
Description=nvidia-tuner
[Service]
Type=oneshot
ExecStart=/usr/local/sbin/nvidia-tuner ---core-clock-offset 150 --memory-clock-offset 800 --power-limit 180 --pairs 50:30,70:40,90:60,100:100
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=graphical.target
- Reload the systemd manager configuration to recognize the new service:
sudo systemctl daemon-reload
- Start the service:
sudo systemctl start nvidia-tuner.service
- Enable the service to start automatically at boot:
sudo systemctl enable nvidia-tuner.service
- Check the systemd journal for any errors:
sudo journalctl -u nvidia-tuner.service