Jump to content

Undervolting CPU (Español)

From ArchWiki

El Undervolting es el proceso en el cual el voltaje del CPU es disminuido para reducir su gasto energético y temperatura sin afectar su rendimiento. Tenga en cuenta que la mayoría de las motherboards de escritorio permiten alterar la configuración del voltaje del CPU desde las BIOS.

Warning Una configuración incorrecta del voltaje del CPU puede resultar en daño permanente del hardware. ¡Has sido avisado!

Antecedentes

Los CPUs modernos implementan escalado de frecuencia, mediante el cual la frecuencia es ajustada dinamicamente para ahorrar energía cuando se encuentra en reposo y aumentar el rendimiento cuando se requiere. Al aumentar la frecuencia, el voltaje requerido para abrir la compuerta rapidamente también aumenta, por lo tanto los CPUs tambien escalan el voltaje simultaneamnte con la frecuencia. La curva predeterminada de frecuencia-voltaje es relativamente conservadora y dependiendo de la loteria del silicón (que tanto pueden ganarle las compuertas lógicas de tu CPU a los parámetros esperados de la curva), un voltaje más bajo puede ser utilizado sin tener que bajar la frecuencia.

Debido a que la disipación del poder esta relacionada con el voltaje al cuadrado, el undervolt puede permitir un ahorro significativo de energía y reducción del calor. Un menor voltaje esta usualmente asociado con una vida media más alargada para el dispositivo, debido a que la mayoría de los mecanismos de deterioro de los semiconductores (BTI, Electromigración) son al menos parcialmente dependientes de la temperatura y el voltaje.

Los riesgos del undervolt incluyen un cálculo incorrecto de los resultados (posiblemente una incapacidad para el arranque) debido al uso de voltaje insuficiente para la frecuencia. Prepárese para reiniciar su sistema o resetear su BIOS a través del jumper JBAT para deshacer su undervolt.

Para comprobar la estabilidad y exactitud de un undervolt, se recomienda el stress testing utilizando una aplicación con checks numericos (mprime, linpack). Solamente el arranque no es suficiente ya que errores en el calculo pueden resultar en comportamientos no esperados y potencialmente dañinos (demostrado por medio de los "atques de undervolt"). Conforme van envejenciendo los CPUs, sus compuertas se vuelven más lentas y requieren de un voltaje más elevado para estabilizarse, preparese para modificar la configuración de su undervolt.

Warning Puede llegar a hacer que la computadora se congele de manera aleatoria aun cuando la computadora se encuentre estable durante días, meses o años y se encuentre totalmente estable bajo otro sistema operativo con la misma configutación de undervolt. El CPU puede degradarse con el tiempo y solo comenzar a crashear o congelarse a los meses o años de haber aplicado su undervolt. Por lo tanto, es cruical que recuerde revertir a la configuración original en caso de que su computadora se congele de manera regular.

Voltajes

On Intel CPUs you can separately control the core, cache, System Agent (also known as NB/SOC/Uncore) and the integrated GPU voltages. If there is integrated analog I/O you can control that part's voltage too. The core and the cache are self-explanatory. The System Agent includes the memory controller.

On Zen-based AMD CPUs you can separately control core, NB/SOC/Uncore, VDDG_CCD, VDDG_IOD, VDDP_CLDO, and PLL/1P8. The first two are similar to their Intel counterparts. VDDG_CCD is for signaling from cores to the IO die. VDDG_IOD is for signaling from the IO die to the cores. VDDP_CLDO is for the memory controller. The PLL/1P8 voltage is the voltage of the base clock signal.

When you lower one voltage, make sure to run the corresponding test in mprime. For example, if you touch the memory controller or SOC-related voltages, run the Large test.

¿Qué tan lejos puedes llegar?

Disminuir 100 a 200 mV de Intel CPU y CPU Cache suele ser estable (aparentemente). Disminuir más de 200mV puede resultar en crasheo, o no tener ningún efecto.

¿Cuando es necesario el undervolt?

Se sabe que un gran número de motherboards AM5 (Ryzen 7xxx, 9xxx) aplican un voltaje del SOC/Uncore elevado cuando EXPO está habilitado. Esto puede llevar a fallas en el CPU con áreas de decoloración o protuberancias donde se encuentra el dado del IO. Se puede reparar con una actualización de la BIOS. Si no hay actualizaciones disponibles y el voltaje del SOC continua por encima de 1.3 V, se debe realizar un undervolt manual en la BIOS.

Hay un problema similar en CPUs Intel generación 13 y 14 en el cual el voltaje del núcleo se encuentra elevado, causando envejecimiento prematuro. Se soluciona con una actualización del microcodigo.

intel-undervolt

Note After the patches for the Plundervolt vulnerability, recommendations for most OEMs on older Intel CPUs have been to enable the Overclocking Lock MSR bit (which disables voltage control). That can usually be worked around. Newer processors (except K, HK and HX models) instead comes with hardware-fused Undervolt Protection, but some OEMs still allow for AC loadline 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. It is not compatible with Tiger Lake and above, but is compatible with intel_pstate.

Instalación

La herramienta puede ser instalada como intel-undervolt.

Configuración y uso

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
...

Una vez guardado el archivo de la configuración se puede probar con el siguiente comando:

# intel-undervolt apply

Debe mostrarse Success (Éxito) si la configuración fue aplicada. Puede asegurarse que la configuración esta siendo utilizada en ese momento al utilizar el siguiente comando:

# intel-undervolt read

Una vez encontrada la configuración estable, puede habilitar intel-undervolt.service para hacer los cambios persistentes.

amdctl

This article or section is out of date.

Reason: amdctl solo soporta las familias de CPU hasta la 19h (Zen 3), y no CPUS más actuales. (Discuss in Talk:Undervolting CPU (Español)#amdctl support scope)

amdctl es una herramienta para hacer undervolt en CPUs AMD k10 y más actualizados.

Instalación

La herramienta se puede instalar como amdctl-gitAUR.