Undervolting CPU

From ArchWiki
Jump to: navigation, search

Undervolting is a process through which voltage to computer processors and components is decreased dynamically on run-time. It is a process within dynamic voltage scaling that enables conserving electric voltage to reduce energy consumption and heat produced by computing components without affecting their performance.

Warning: Misconfiguration of CPU voltage and/or temperatures might result in permanently damaged hardware. You have been warned!

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. Compatible with intel_pstate.

Tools

intel-undervolt

intel-undervolt is a tool for undervolting Haswell and newer Intel CPU using MSR. This tool is based on the content of this article. This tool also allow to alter power limits and temperature limit using MSR and MCHBAR registers.

Installation

The tool can be installed as intel-undervoltAUR.

Configuration and usage

The following command prints in use voltage settings:

# intel-undervolt read

Now edit the configuration file /etc/intel-undervolt.conf. Example config with undervolted CPU Cache by -100mV:

Note: Looks like 'CPU' and 'GPU' values does not have any effect (at least on ASUS Zenbook UX430UQ laptop).
/etc/intel-undervolt.conf
...
apply 0 'CPU' 0
apply 1 'GPU' 0
apply 2 'CPU Cache' -100
apply 3 'System Agent' 0
apply 4 'Analog I/O' 0
...

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.