Undervolting CPU

From ArchWiki

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.

Warning: Misconfiguration of CPU voltage settings might result in permanently damaged hardware. You have been warned!
Note: It is no longer possible to undervolt Intel processors with modern BIOSes and microcode, due to the changes needed to patch the Plundervolt vulnerability.

This article or section needs expansion.

Reason: Mention relationship with CPU frequency scaling. It could be used as an alternative to undervolting. (Discuss in Talk:Undervolting CPU)

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:

Note: Looks like 'CPU' and 'GPU' values does not have any effect on some laptops (e.g ASUS Zenbook UX430UQ) but they do work on some (e.g ASUS ROG STRIX G502VY).
/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.

Warning: It may also make the computer freeze at what seem to be random moments even though the computer is stable during multiple days/months/years and may be totally stable under another OS with the same undervolting settings. The CPU can degrade with time and only start to crash/freeze months/years after you applied undervolting. Therefore it is crucial to always remember to revert to original settings in case of regular computer freeze.

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.