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.

Tango-view-fullscreen.pngThis article or section needs expansion.Tango-view-fullscreen.png

Reason: Needs to be expanded. It could be that PHC needs to be merged here as well. (Discuss in Talk:Undervolting CPU)

Overview

  • PHC - a tool to undervolt some old generation Intel and AMD processors. Not compatible with intel_pstate CPU frequency driver.
  • #intel-undervolt - a tool for undervolting Haswell and newer Intel CPU using MSR. Not compatible with Tiger Lake and above. Compatible with intel_pstate.
  • #amdctl - a tool for undervolting K10 and newer AMD CPUs.
  • K10ctl - overclock and undervolt an AMD K10 processor (e.g. Phenom, Phenom II) by changing its P-States.

Tools

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.

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.

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.