Undervolting CPU
Undervolting is a process where voltage to CPU is reduced in order to reduce its energy consumption and heat without affecting performance. Note that most desktop motherboards allow tweaking CPU voltage settings in BIOS as well.
intel-undervolt
Intel-undervolt is a tool based on this article for undervolting Haswell and newer Intel CPUs using MSR and MCHBAR registers. In addition, it also allows to change power and temperature limits. It is not compatible with Tiger Lake and above, but is compatible with intel_pstate
.
Installation
The tool can be installed as intel-undervolt.
Configuration and usage
The following command prints in use voltage settings:
# intel-undervolt read
Now edit the configuration file /etc/intel-undervolt.conf
. Example configuration with undervolted CPU Cache by -100mV:
/etc/intel-undervolt.conf
... undervolt 0 'CPU' 0 undervolt 1 'GPU' 0 undervolt 2 'CPU Cache' -100 undervolt 3 'System Agent' 0 undervolt 4 'Analog I/O' 0 ...
Decreasing CPU and CPU Cache by 100 to 200 mV is usually stable. Going above 200 mV may result in a crash, or may not have any effect at all.
Once you saved configuration file - test it:
# intel-undervolt apply
It will print Success if settings were applied. You can double check in use configuration using the following command:
# intel-undervolt read
Once you find stable configuration, you can also enable intel-undervolt.service
to make changes persistent.
amdctl
amdctl is a tool for undervolting K10 and newer AMD CPUs.
Installation
The tool can be installed as amdctl-gitAUR.