Skip to content

Undervolt

MarFre22 edited this page May 2, 2021 · 18 revisions

Undervolt

Last Update: 01/05/2021

What is this?

Undervolt is a well-known process done by enthusiasts to reduce the working voltage of the CPU (in this case) in order to obtain better results.

To better understand this process, it’s nice to know some geeky “How it’s made”. All CPU’s and GPU’s are made from processing cores. They also are made of silicon wafers, which, after applying the structure in process called photolitography, are cut into individual pieces. ‘The wafers themselves are made of almost monolithic and very pure crystalline silicon, and then additionally polished and cleaned with acid. Nevertheless, perfect homogenity is not achieved. Minimal flaws determine how high the system will overclock and what voltage will work stable. Knowing this, manufacturers use some form of averaging, examine a larger pool of manufactured cores to determine the optimal values for clock frequency and voltage. On the one hand, these values must guarantee good performance, but on the other hand - keep power consumption within reason and not bring more costs (by too many rejects due to instability). In mass production, averaging is necessary but, as you know, it does not help in optimization, in any way.’ So all CPU’s and GPU’s are different despite being manufactured in the same way. To ensure the optimal stability and keep the production costs low, manufactures put on these a voltage safety margin. We can reduce this margin (in case of undervolt, worst case scenario is turn off due to lack of voltage) and extract some free goodies.

Advantages:

  • Less consumed power (laptop’s battery friendly)
  • Less heat
  • More performance
  • Doesn’t damage the hardware

Disadvantages:

  • Stability issues if done wrong (working voltage needed)

As we can see, it’s a really safe process and can give us a good free improvement. But it’s said that is a endangered process on Intel side.

How to do it?

I made this guide in order to be as simple as possible and try to keep EFI clean. To achieve that, until now the best solution I found is to use an app (Power Manager) that activates the undervolt script (using the VoltageShift.kext) every time Mac is unlocked (after boot and after suspend). This app is very light on RAM (+-4MB). Other option is creating a LauchDaemon to run every 30min, more info here and every 60min here.

Compatibility

  • Confirmed working on Catalina and BigSur.

Requirements

  • Voltage unlocked in BIOS (tested on v906) - see more here (“Enable CPU undervolting feature”).
  • Power Manager app, download here, Zip Password: "WikiUndervolt1" (without quotes).

Guide

  1. Download "VoltageShift_replace_kext.zip", unzip “voltageshift” folder and “VoltageShift-Documents_Folder.app” into your “Documents” folder.

  2. Into the “voltageshift” folder run the following command in terminal (change the kext permissions):

sudo chown -R root:wheel VoltageShift.kext
  1. Inside “voltageshift” folder you must write your password (of you login profile) in the files “voltage_info.command” and “voltage_set.command” where is said “PutYourPasswordHere”. You can set your voltage in the file “voltage_set.command” on the line 4: echo "PutYourPasswordHere"|sudo -S ./voltageshift offset -100 -60 -100, by order: decrease 100mV on CPU, decrease 60mV on GPU, decrease 100mV on Cache Memory (these values are stable, but you can execute the file and test others). Lately I have been using -107 -73 -107 (it’s stable for me, but for you may not be).

    WARNING: If you’d like to test lower values you must have to do it now! Make an exhaustive test before you proceed! If you follow this guide and restart with unstable values, you pretty done my friend… Don’t do it!!

    After execute the “voltage_set.command” file, you have, more or less, this output, you are good. voltageshift_set.command output

  2. Install the Power Manager App (download here), and import my custom Schedule File into the app. Import Schedule File

  3. Confirm that you start the app (upper left corner).

Start the app

  1. That’s it :)

Support

If you have any questions or if you found any bug, please tell us - make an issue about it. All help is welcome ;)

Sorry for any typo.

Credits

This guide was originally published in fragments here and here. Thanks all the help and support! Not in any order, thank you all by your contribution to the issues above:

Excerpt taken from the site: dreammachines.eu/