Easy Overclocking and/or Undervolting NVIDIA Cards on CachyOS
This tutorial describes how to overclock and/or undervolt NVIDIA cards under Linux. While NVIDIA cards don’t have the same breadth of tools available as under Windows (no MSI Afterburner or direct control over the voltage curve), there are still relatively easy ways to boost clocks or undervolt your card if you know how to do it.
In this tutorial, we’ll set up Python scripts for adjusting various boosts/offsets and create a service to run these scripts automatically after boot.
Prerequisites
- A CachyOS system with an NVIDIA graphics card
- Root access
Setup Process
1. Prepare the Environment
Open a terminal of your choice (Konsole, Alacritty, etc.) and follow these steps:
-
Switch to root:
-
Create and navigate to the NVIDIA directory:
2. Set Up Python Virtual Environment
-
Create a virtual environment:
-
Activate the virtual environment:
-
Verify the activation:
It should return “/root/NVIDIA/venv/bin/pip”.
-
Install required modules:
-
Deactivate the virtual environment:
3. Create the Loader Script
Create a file named nvidia-oc.sh
in /root/NVIDIA/
:
Make the script executable:
4. Determine GPU Clock Ranges
Find your card’s standard minimum and maximum clocks:
Note down the topmost and bottommost ‘Graphics:’ clock values.
5. Create the Python Script
Create a file named nvidia-oc.py
in /root/NVIDIA/
with the following content:
Replace MINCLOCK
, MAXCLOCK
, CLOCKOFFSET
, and MEMOVERCLOCK
with appropriate values.
6. Test the Configuration
Run the script:
Monitor the GPU:
Test your configuration with games or other GPU-intensive tasks.
7. Create a Systemd Service
Create a file named nvidia-oc.service
in /etc/systemd/system/
:
8. Enable and Start the Service
Check the service status:
Conclusion
You now have custom clocks and possibly undervolting for your NVIDIA card on boot. Remember to test thoroughly and adjust values as needed for stability and performance.