All Projects → kitsunyan → Intel Undervolt

kitsunyan / Intel Undervolt

Licence: gpl-3.0
Intel CPU undervolting and throttling configuration tool

Programming Languages

c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to Intel Undervolt

gummy
Linux brightness/temperature manager for X11
Stars: ✭ 13 (-97.54%)
Mutual labels:  temperature
Js Quantities
JavaScript library for quantity calculation and unit conversion
Stars: ✭ 335 (-36.67%)
Mutual labels:  temperature
Llvm
Intel staging area for llvm.org contribution. Home for Intel LLVM-based projects.
Stars: ✭ 424 (-19.85%)
Mutual labels:  intel
Clojurecl
ClojureCL is a Clojure library for parallel computations with OpenCL.
Stars: ✭ 266 (-49.72%)
Mutual labels:  intel
Esp Mqtt Json Multisensor
(OBSOLETE) ESP MQTT JSON Multisensor for Home Assistant. Supported sensors include the TEMT6000 light, AM312 PIR, DHT22 temperature/humidity sensors. RGB led supports flash, fade, and transition. Over-The-Air (OTA) uploading, too!
Stars: ✭ 323 (-38.94%)
Mutual labels:  temperature
Realsr Ncnn Vulkan
RealSR super resolution implemented with ncnn library
Stars: ✭ 357 (-32.51%)
Mutual labels:  intel
getCRUCLdata
CRU CL v. 2.0 Climatology Client for R
Stars: ✭ 17 (-96.79%)
Mutual labels:  temperature
Anakin
High performance Cross-platform Inference-engine, you could run Anakin on x86-cpu,arm, nv-gpu, amd-gpu,bitmain and cambricon devices.
Stars: ✭ 488 (-7.75%)
Mutual labels:  intel
Co2monitor
CO₂ & Temperature monitor
Stars: ✭ 333 (-37.05%)
Mutual labels:  temperature
Sgx Hardware
This is a list of hardware which is supports Intel SGX - Software Guard Extensions.
Stars: ✭ 381 (-27.98%)
Mutual labels:  intel
Rusty Clock
An alarm clock with environment stats in pure bare metal embedded rust
Stars: ✭ 269 (-49.15%)
Mutual labels:  temperature
Ironos
Open Source Soldering Iron firmware for Miniware and Pinecil
Stars: ✭ 3,945 (+645.75%)
Mutual labels:  temperature
Stats
macOS system monitor in your menu bar
Stars: ✭ 7,134 (+1248.58%)
Mutual labels:  temperature
Openfpgaloader
Universal utility for programming FPGA
Stars: ✭ 264 (-50.09%)
Mutual labels:  intel
W1thermsensor
A Python package and CLI tool to work with w1 temperature sensors like DS1822, DS18S20 & DS18B20 on the Raspberry Pi, Beagle Bone and other devices.
Stars: ✭ 446 (-15.69%)
Mutual labels:  temperature
CaravanPi
System for measuring and displaying various values in caravans and motor homes, including climate values, filling levels and levelling data. MagicMirror (https://magicmirror.builders/) is used for presentation. A circuit board design is available now
Stars: ✭ 14 (-97.35%)
Mutual labels:  temperature
Beaengine
BeaEngine disasm project
Stars: ✭ 342 (-35.35%)
Mutual labels:  intel
Libxsmm
Library for specialized dense and sparse matrix operations, and deep learning primitives.
Stars: ✭ 518 (-2.08%)
Mutual labels:  intel
Ocl
OpenCL for Rust
Stars: ✭ 453 (-14.37%)
Mutual labels:  intel
Ilgpu
ILGPU JIT Compiler for high-performance .Net GPU programs
Stars: ✭ 374 (-29.3%)
Mutual labels:  intel

intel-undervolt

intel-undervolt is a tool for undervolting and throttling limits alteration for Intel CPUs.

Undervolting works on Haswell and newer CPUs and based on the content of this article.

Disclaimer

This tool may damage your hardware since it uses reverse engineered methods of MSR usage. Use it on your own risk.

Building and Installing

Run ./configure && make && make install to build and install intel-undervolt to your system.

You can also configure the following features:

  • --enable-systemd — systemd support (intel-undervolt service and intel-undervolt-loop service)
  • --enable-elogind — elogind support (intel-undervolt system-sleep script)
  • --enable-openrc — OpenRC support (intel-undervolt-loop service)

Configuration

You can configure parameters in /etc/intel-undervolt.conf file.

Undervolting

By default it contains all voltage domains like in ThrottleStop utility for Windows.

The following syntax is used in the file: undervolt ${index} ${display_name} ${undervolt_value}. For example, you can write undervolt 2 'CPU Cache' -25.84 to undervolt CPU cache by 25.84 mV.

Power Limits

power package ${short_term} ${long_term} can be used to alter short term and long term package power limits. For example, power package 35 25.

You can also specify a time window for each limit in seconds. For instance, power package 35/5 25/60 for 5 seconds and 60 seconds respectively.

Temperature Limit

tjoffset ${temperature_offset} can be used to alter temperature limit. This value is subtracted from max temperature level. For example, tjoffset -20. If max temperature is equal to 100°C, the resulting limit will be set to 100 - 20 = 80°C. Note that offsets higher than 15°C are allowed only on Skylake and newer.

Energy Versus Performance Preference Switch

Energy versus performance preference is a hint for hardware-managed P-states (HWP) which is used for performance scaling.

For instance, with performance hint my i7-8650U is able to run at 4.2 GHz, and overall CPU performance appears to be higher, but the clock speed is always locked to 4.2 GHz unless multiple cores are loaded or CPU is throttled. With balance_performance hint, CPU increases the clock speed only under load but never goes higher than 3.9 GHz, but performance of integrated GPU is significantly better at the same time.

intel-undevolt is able to change HWP hint depending on the load, which allows to achive either better performance or better battery life. This feature is available in daemon mode only which will be described below. The following syntax is used to configure HWP hint: hwphint ${mode} ${algorithm} ${load_hint} ${normal_hint}.

For instance, if I want to get high CPU and GPU performance from AC, I need to set performance hint when CPU is under load but GPU isn't (performance hint reduces GPU performance in my case). Hint switching can be configured depending on power consumption of core and uncore: hwphint switch power:core:gt:8:and:uncore:lt:3 performance balance_performance. intel_rapl module is required to measure power consumption.

To get a better battery life, clock speed can be reduced until CPU is under continuous high load, which will hold the lowest CPU speed most of the time. Hint switching can be configured depending on the CPU load: hwphint switch load:single:0.90 balance_power power.

Multiple hwphint switch rules can be used, the hint will be selected depending on current hint, which can be configured by another tool (e.g. tlp). You can use hwphint force rule to set the hint independently, but only one rule can be declared in this case.

Usage

Applying Configuration

Run intel-undervolt read to read current values and intel-undervolt apply to apply configured values.

You can apply your configuration automatically enabling intel-undervolt service. Elogind users should pass yes to enable option in intel-undervolt.conf.

Measuring the Power Consumption

intel_rapl module is required to measure the power consumption. Run intel-undervolt measure to display power consumption in interactive mode.

Daemon Mode

Sometimes power and temperature limits could be reset by EC, BIOS, or something else. This behavior can be suppressed applying limits periodically. Some features like energy vesus performance preference switch work in daemon mode only. Use intel-undervolt daemon to run intel-undervolt in daemon mode, or use intel-undervolt-loop service. You can change the interval using interval ${interval_in_milliseconds} configuration parameter.

You can specify which actions daemon should perform using daemon configuration parameter. You can use once option to ensure action will be performed only once.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].