Would you believe that many computers and smartphones can run cooler and consume less power? A trick exists, called undervolting, which can increase your CPU’s efficiency with few drawbacks. If performed right, devices generally produce less heat while exhibiting improved battery performance.
The process can require a great deal of patience and confidence as the potential for disaster exists. Only the stouthearted should even make an attempt. For those of you looking for quicker solutions to reduce battery drain, check out Tim’s excellent article on mainstream methods of cooling your computer down.
This article introduces undervolting to the uninitiated, focusing on explanation, methods of implementation, the available compatible hardware and what software exists. For a more detailed guide on how-to undervolt, check out this instructional guide.
After an intense session of Call of Duty or Modern Warfare 3, you may notice your computer or graphics processor getting unusually hot. That’s because a simple relationship exists between the the speed at which a device runs and its temperature. When you use your computer to perform CPU intensive tasks, it will run at a higher frequency, and thus produce greater heat, than it would at idle.
There’s a formula that electrical engineers use to explain this relationship. Unfortunately, I wasn’t smart enough to be an engineer so my understanding is weak, but here goes: P = V^2/R, where power is equal to voltage squared, divided by resistance.
As you can see from the equation, lowering voltage has a tremendous effect on power. But the question remains: How could it be possible for us to lower voltage while maintaining performance? Keep in mind three factors:
- Not all CPUs are the same: Because of the ridiculously complex manufacturing required in fabricating a processor, no two CPUs are exactly the same. Rather than responding identically to voltages, CPUs exhibit a range of tolerances. Consequently, the companies that make processors established a baseline voltage that most CPUs can use without issue. Unfortunately, this voltage is oftentimes higher than required and produces a great deal of waste heat as a byproduct. Because of this, the majority of CPUs can actually use a lower voltage a various frequencies.
- A CPU’s speed progression isn’t linear: A computer’s speed varies from its top-rated clock cycle, typically measured in gigahertz, to its lowest possible speed. The progression between its fastest and slowest speed does not move in a linear fashion, but in a stepped pattern. I’ve seen differing terminologies for these “steps” on differing CPU architectures. For the PC (x86), I’ve seen it referred to as P-states. ARM does not appear to have a similar naming convention.
- You can decrease a CPU’s voltage: CPUs exhibit a range of voltages tolerances across frequencies. For example, using special software you might lower the voltage (sometimes referred to as a “VID“) at different frequencies. If too low, it will cause crashes and blue screens, so caution is advised.
Three Steps To Undervolt a Device
- Backup Your Information: In case something goes catastrophically wrong you may get permanently boot-looped. Therefore it’s crucial to have your information backed up.
- Gradual Voltage Changes: Whenever you lower your voltages, there’s always the possibility that it will cause a reboot. Some handheld devices enter what’s known as the “sleep of death“, which means the phone requires a hard reset. If you saved your voltages this can result in an unbootable condition, since it loads up unstable voltages. Remember to gradually move the voltages down (and never above the default value!) and then rigorously stress test at each step. However, it’s important to note that the multipliers associated with faster processor speeds undervolt more efficiently than those at lower speeds, since the highest speeds produce the most amount of heat. On mobile devices, undervolting makes the biggest difference in both energy consumption and heat production.
- Stress Testing: After moving your voltages down one multiplier, you will want to stress test rigorously. Stress testing software for both Android and PC exists, which make this process much easier. It simply runs your CPU at the fastest possible speed, or at a range of frequencies. Simply set your undervolt value and then fire up your stress testing software.
For Desktops & Laptops
Some desktops and laptops can alter their voltages through their BIOS. Different motherboard manufacturers, unfortunately, use differing terminologies: Some use the term “voltage offset“, which reduces voltages uniformly across all steps. Other boards only reduce voltages at the highest CPU frequencies – you should Google your motherboard’s make plus the search term “undervolt” or “voltage offset“.
For example, my undervolt settings from my EFI (it’s basically a BIOS):
Intel CPUs: Unfortunately, Intel chipsets, Sandy Bridge and later models, do not benefit in any substantial way from lowering voltage. While my own experiences show some impact on temperature, the experts believe otherwise. The most common method of undervolting older Intel CPUs is ThrottleStop for the Windows OS.
Throttlestop lowers voltages across a range of CPU frequencies – simply check the “Set Multiplier” box then reduce the “VID” number to drop voltages.
AMD CPUs : particularly its Brazos, Llano and Trinity lines, can undervolt with great effect. One of the best examples is the undervolting software available for the Brazos series of CPU/APU. The software used to manipulate voltage values is known as BrazosTweaker. There’s also FusionTweaker. Users report up to 30% reductions in temperatures and solid increases in battery life.
For AMD chipsets, other voltage manipulation methods exist, such as PSCheck and AMD Overdrive. However, although PSCheck is the best program, it’s also the hardest to get hold of. I ended up biting the bullet and installed a zip from a complete stranger’s Dropbox—that’s always a terrible idea and you should never do that, unless you’re me. In which case you make regularly poor decisions and installing strange files from sketchy sources is the least of your worries.
Stress-Testing: To stress-test your device, simply lower your voltage by a single step and then fire up the stress testing software. In my experience anywhere from 5-10 minutes of testing is sufficient. If the computer crashes or freezes, move the voltage back up at least one step before moving onto the next multiplier (sometimes referred to as a P-State, pictured below). Continue repeating the process at each stepping point, lowering the voltage until instability occurs. Notice that as frequencies increases, so too does voltage.
The best software for stress-testing is Prime95. Prime95 runs complex mathematical formulas on your computer, which causes the the CPU to run super hot. If you’ve set the voltage too low, your computer will crash and you’ll know the absolute lowest limit of your processor’s voltage tolerance. Approximately 5-10 minutes of stress testing should weed out incorrect voltages.
From the Prime95 “Run a Torture Test“, make sure to select “Small FFTs“.
We’ve discussed undervolting on MakeUseOf before for laptops. Also, read about Tina’s breakdown of some mainstream solutions for getting your heat under control.
Tablets, Smartphones & Android Powered Devices
Before attempting to undervolt your device, you must have root access (link goes to SuperOneClick) and you should have installed a custom ROM supporting undervolting. While, technically, you only need a custom kernel that supports UV, most custom ROMs include a custom kernel.
Most cell phones with a custom kernel and the right software can undervolt – however, doing so requires special firmware, or software that exists at a level higher than the operating system. Firmware is stored on solid state memory in an area normally inaccessible to the end-user. However, if you have the right firmware, some software can modulate the voltage fed to the CPU.
My favorite software for undervolting is IncrediControl. Just run the app and select the “SVS” tab from the top menu bar. From there, you must use extreme caution. Proceed to lower voltages one step at a time. I recommend only lowering the voltages on the two or three highest frequencies; as indicated by the power equation, reducing voltages at higher frequencies has a greater impact on overall heat production.
Stress-Testing: For stress-testing, to my knowledge there’s only one app worth using: StabilityTest. Simply choose either “Classic Stability Test” or “Scaling Stability Test“. If you only intend on undervolting your highest CPU frequency, the classic test should suffice. However, if you plan on undervolting a range of values, go for the scaling test.
Cooling down your devices and getting better battery life takes only three steps: First, backup your device. Second, make gradual voltage adjustments. Third, stress test each time you make a voltage adjustment. For Android devices, this requires that you have root access and have installed a custom ROM. For computers, you must have a newer AMD chipset, such as Llano, Brazos or Trinity. On Intel system, you must have Core2Duo or thereabouts.
Remember to never raise your voltages above the default value. Raising your voltages will likely destroy your computer.
Does anyone else love undervolting? Let us know in the comments.
Image Credits: Lightning via MorgueFile.com; Motherboard via MorgueFile.com