The following page contains information about the current state of PM, examples of how to use it and possible ways to determine if it may be used on your system.
It is currently only possible to read temperature and performance levels on several cards, as long as you have a recent enough kernel (nouveau git from October 2010 or 2.6.37), and a supported card.
Staring with Linux 6.7 users of Turing and Ampere GPUs can use nouveau.config=NvGspRm=1
to enable power management. It's enabled by default on Ada Lovelace and newer.
Please note that this page is only a rough approximation of the current state of PM.
Key
- "DONE" means... that it is thought to be fully implemented. May contain bugs.
- "MOSTLY" means that it is mostly implemented and may have known bugs.
- "WIP" means that someone has started on the initial implementation.
- "TODO" means that someone needs to write the code. The required knowledge to write the code may or may not be known. Please ask on #nouveau if you want to get your feet wet on this.
- "STALLED" means... that whatever code has been written is accumulating color and texture similar to that 3 week old slice of pizza in your fridge.
Status Matrix
Chipset | NV04/05 | NV10 | NV20 | NV30 | NV40 | NV50 | NVC0 | NVE0 | NV110 | NV120 | NV130 | NV140 | NV160+ |
VBIOS tables parsing | |||||||||||||
Performance levels | N/A | MOSTLY | MOSTLY | MOSTLY | MOSTLY | MOSTLY | MOSTLY | MOSTLY | MOSTLY | MOSTLY | TODO | TODO | DONE |
Voltage | N/A | N/A | N/A | MOSTLY | MOSTLY | MOSTLY | MOSTLY | MOSTLY | MOSTLY | MOSTLY | TODO | TODO | DONE |
Thermal settings | N/A | N/A | N/A | MOSTLY | MOSTLY | MOSTLY | MOSTLY | MOSTLY | MOSTLY | MOSTLY | TODO | TODO | DONE |
Memory timings | N/A | ? | ? | STALLED | STALLED | MOSTLY | DONE | DONE | MOSTLY | MOSTLY | TODO | TODO | DONE |
Mem clock/timing mapping | N/A | N/A | N/A | N/A | DONE | DONE | DONE | DONE | MOSTLY | MOSTLY | TODO | TODO | DONE |
Power Management | |||||||||||||
Engine reclocking | N/A | N/A | N/A | MOSTLY | MOSTLY | MOSTLY | MOSTLY | WIP | TODO | TODO | TODO | TODO | DONE |
Memory reclocking | N/A | MOSTLY | MOSTLY | MOSTLY | MOSTLY | MOSTLY | WIP | WIP | TODO | TODO | TODO | TODO | DONE |
Automatic Reclocking | N/A | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | DONE |
Voltage adjusting | N/A | N/A | N/A | internal only | internal only | internal only | internal only | internal only | internal only | TODO | TODO | TODO | DONE |
Thermal sensors | N/A | N/A | DONE1 | DONE1 | DONE1 | DONE1 | DONE1 | DONE | DONE | DONE | TODO | TODO | TODO |
Fanspeed control | N/A | N/A | N/A | DONE | DONE2 | DONE2 | DONE2 | DONE | DONE | TODO3 | TODO | TODO | DONE4 |
Notes
- 1: I²C temperature probes cannot always be read from Nouveau's hwmon interface.
- 2: I²C fans cannot be managed with Nouveau's hwmon interface.
- 3: For GM20x reclocking we can't control the fan without high-secure firmware, so you have to have some fan connected that's not controlled internally by the GPU.
- 4: Managed by firmware
Docs
Some documentation related to power management on NVIDIA GPUs have been published as part of a research paper named Reverse Engineering Power Management on NVIDIA GPUs - a Detailed Overview.