domingo, 12 de noviembre de 2017

ULPS en AMD Enduro: ¿Activar o desactivar?

AMD ZeroCore Technology: ULPS forma parte de esta característica en notebooks.
Un tema de vital importancia en laptops es el control energético, es decir, la duración de la batería. El echo de poseer dos GPUs trae la consecuencia de un mayor consumo de energía, pero tanto "AMD Enduro" como "Nvidia Optimus" introdujeron características para solucionar este inconveniente.

Centrándonos en AMD, al estar en "Modo Dinámico" o "AMD Enduro", por lógica el iGPU es el principal, pero ¿Qué está haciendo el dGPU?
Si te interesa saberlo, continúa con la lectura:

I. ¿Qué es ULPS?
Literalmente es "Ultra-Low Power State". Es un regulador energético que no sólo está presente en AMD Enduro, sino también en Crossfire. Su propósito es ahorrar energía apagando el dGPU, y cuando se llama a alguna aplicación mediante los "Perfiles Enduro" procede a activar el dGPU.
Además ayuda a mantener la duración y vida útil de la batería. Parte esencial de Enduro.
Como se mencionó anteriormente:
AMD Enduro incluye lo siguiente:
-dGPU apagado (se activa cuando se llama a una aplicación a través de los perfiles de aplicación, ULPS es el encargado de esta característica).
-Mejor rendimiento de la batería y vida útil.
Ahorro de energía y más características de Enduro.
Si vamos un poco más allá, ULPS puede ser desactivado, pero entonces:
II. ¿Cuáles son las ventajas y desventajas de tener ULPS desactivado (ULPS=0)?

Ventajas:
  1. Mayor rendimiento con aplicaciones en el dGPU, tomando en cuenta las limitaciones de Enduro.
  2. Menor tiempo de espera (delay) al iniciar la renderización de contenido en el dGPU.
  3. Solución a problemas de wakeup, TDR, BSODs.
  4. En Catalyst superiores al 14.4 soluciona el bug de demora de arranque de Windows (por culpa del Modo dinámico forzoso) en Win8.1/10. [El bug, en la mayoría de los casos, consiste en una pantalla negra entre el logo de carga y el inicio de sesión de windows].
Desventajas:
  1. Menor duración y vida útil de la batería.
  2. Reducción de la vida útil del dGPU.
  3. El dGPU estará siendo utilizado con una baja frecuencia, alrededor de 100-300MHz cuando NO rendericen contenido.
  4. En "algunos notebooks" puede causar uso excesivo del dGPU (sin renderizar contenido) con la consecuencia que el ventilador estaría girando más de lo normal para disminuir su temperatura. En tal caso deben tener ULPS activado.
  5. Mayor temperatura en el notebook al ejecutar aplicaciones simples.
III. ¿ULPS viene por defecto activado o desactivado?
En drivers oficiales está activado (por defecto).
En drivers alternativos como "UnifL" puede venir en cualquier estado. Ellos deciden cambiarlo a voluntad.

IV. ¿Cómo puedo averiguar antes de instalar un driver alternativo si este va a venir con ULPS activado o desactivado?
Les proporcionaré un ejemplo con los Catalyst 14.12 UnifL. Procedan con los siguientes pasos:

1. Ubicarse en la ruta de extracción del driver:
"C:\Drivers\Catalyst_14.12_Omega_UnifL_v1.0\AMD\14.12\Packages\Drivers\Display\WB6A_INF"
    La ruta puede variar, es un ejemplo.

2. Abrir el inf correspondiente a su sistema operativo:
    C0298924.inf -->Windows 10
    C7298924.inf -->Windows 7
    CU298924.inf -->Windows 8.1
    Infs predeterminados de los Radeon Software 16.1.1 No-GCN.
    Los 2 primeros caracteres indican el sistema operativo.

3. Buscar el siguiente dword: "EnableUlps" (encontrarán varios)
    Si la línea es:
    HKR,, EnableUlps,     %REG_DWORD%,   1 --> ULPS activado
    HKR,, EnableUlps,     %REG_DWORD%,   0 --> ULPS desactivado
Y así fue como el equipo UnifL solucionó el bug de demora de arranque en Windows 10.
V. ¿Cómo activar o desactivar ULPS? (Método manual)
Si no se desea instalar software alguno, entonces basta con utilizar el "Editor del registro" de Windows para activar o desactivar esta característica:
  • Paso 1:
Abrir el registro de Windows "regedit.exe":
Buscar en Windows el "Editor del registro".
  • Paso 2:
En el menú "Edición" dar clic en "Buscar" y en la nueva ventana digitar "EnableUlps" (sin las comillas) y dar clic en "Buscar siguiente":
Buscar el dword "EnableUlps".
  • Paso 3:
Al dword encontrado le deberán asignar un valor hexadecimal:
1 = ULPS activado
0 = ULPS desactivado
NOTA: También existe un SZ llamado "EnableUlps_NA", este no debe ser modificado.
En este caso se desactiva ULPS. Este dword incluso puede ser encontrador en PCs de escritorio con un solo GPU.
  • Paso 4:
Una vez asignado el valor hexadecimal, precionar la tecla [F3] y repetir el paso 3 hasta que el mismo "regedit" no encuentre más dwords.
Tener en cuenta que la cantidad de dwords "EnableUlps" es casi 7.
  • Paso 5:
Reiniciar el equipo.

Si desactivaron ULPS desbloquearán una sección en el "Software de gestión gráfica" "Catalyst Control Center".
Opción oculta desbloqueada, si se desactiva el checkbox se obtendrá un mejor tiempo de reacción en el dGPU.
VI. ¿Cómo activar o desactivar ULPS? (Método automático)
Utilizando softwares, como es el caso de:

MSI Afterburner
  • Paso 1:
         Ingresar a "Opciones" o "Settings":
  • Paso 2:
         Realizar lo siguiente con el checkbox "Disable ULPS":
Desactivar el checkbox = Activa ULPS
Activar el checkbox      = Desactiva ULPS
         Clic en "Aceptar".
Desactivando ULPS. MSI Afterburner no solo sirve para realizar Overclock.
  • Paso 3:
         Reiniciar el equipo.

RadeonMod
  • Paso 1:
         Ingresar a la pestaña "Tweaks"
  • Paso 2:
         Dar doble clic en ULPS para cambiar su "State":
On = Activa ULPS
Off = Desactiva ULPS
Activando ULPS. RadeonMod, una utilidad que posee muchos tweaks.
  • Paso 3:
         Reiniciar el equipo.

VII. ¿Cómo saber si el cambio de estado de ULPS funcionó?
Fácilmente uno puede notar un aumento en la temperatura del notebook y menor duración de la batería si ULPS está desactivado, pero en esta sección mostraré ejemplos con GPU-Z:

ULPS = 0
En la primera captura, tanto "GPU Clock" como "Memory" poseen baja frecuencia por estar desactivado el ahorro energético, además podemos visualizar de mejor manera todas las característica del dGPU sin renderizar contenido.
GPU-Z con ULPS=0 sin renderizar contenido, se visualizan los "clocks" a baja frecuencia.
En la segunda captura se muestra la temperatura correcta del dGPU en "GPU Temperature", esto es posible por el echo que el dGPU está utilizando baja frecuencia pero sin renderizar contenido.
GPU-Z con ULPS=0 sin renderizar contenido, se visualiza la temperatura correcta del dGPU.
ULPS = 1
En la primera captura no se muestra mucha información por el simple echo que el dGPU no está renderizando contenido y se encuentra apagado, trayendo como consecuencia que el software no pueda encontrar toda información.
GPU-Z con ULPS=1 sin renderizar contenido, se visualiza poca información.
En la segunda captura se muestra una temperatura de 0.0°C, que es absurdo. Esto es un indicador que el dGPU está apagado y por tal motivo el software no puede analizar la información correcta.
GPU-Z con ULPS=1 sin renderizar contenido, no se visualiza la temperatura del dGPU.
La tercera captura es un caso especial de la segunda, donde el software encontró información pero la interpreta de mala manera, miren la captura: 1726.3 MHz de frecuencia en un dGPU Radeon 7600M y a -1.0°C, esta es la forma en que GPU-Z dice que no se está utilizando el dGPU.
GPU-Z con ULPS=1 sin renderizar contenido, se visualizan datos erróneos.

Por último se muestran dos capturas de Resident Evil 6 con ULPS = 1, donde se visualiza toda la información por el motivo que el dGPU está trabajando y el software puede encontrar toda la información.
GPU-Z con ULPS=1 renderizando contenido, se muestra toda la información.
GPU-Z con ULPS=1 renderizando contenido, se muestra la temperatura correcta del dGPU.
ADVERTENCIA:
Es responsabilidad del usuario aplicar el contenido de esta publicación.

Palabras finales
Hola a todos, aquí quantum-phy en otra publicación.
Planeo publicar contenido poco a poco, por lo que no esperen publicaciones diarias xD
Hablando de ULPS, personalmente prefiero que esté por defecto, es decir, activado, en mi caso "AMD Enduro" regula bien el apagado del dGPU, así que sin problemas.
En cuanto a Windows 10, si se desactiva ULPS se soluciona el bug de demora de arranque, es una lástima que AMD nunca solucionara este gran defecto en notebooks pre-GCN, pero utilizando el Catalyst 14.8 se "soluciona" este problema.
Si mencionamos el "delay" al iniciar la renderización de contenido, en verdad que funciona mejor con ULPS=0, las aplicaciones abren mucho más rápico por el echo que el dGPU no debe "despertar de su sueño", esto es muy importante en los benchmarks porque los segundos son decisivos y lo mejor no es esperar un tiempo adicional a que el dGPU "despierte".
En internet existen muchos lugares que recomiendan desactivar ULPS pero casi ninguno mencionan sus consecuencias a largo plazo, por tal motivo les comparto esta publicación para aclarar las dudas.
Finalmente, no olviden que los enlaces de descarga de MSI Afterburner, RadeonMod y GPU-Z se encuentran en el Menú "Descargas" de este blog.

Espero que esta información sea de ayuda.
Un saludo.

Estado

=======================================
Recomiendo este post donde se recopila mucho contenido útil y en español para jugar en Linux.
-¿Jugar en Linux?, están locos estos pingüinos

[Linux] ¿Fidelity FX Super Resolution (FSR) en cualquier juego?
- Pruebas en el canal de YouTube

[Linux] GalliumToggle publicado en GitHub.
=======================================

quantum-phy (NestorBase11)

Videos Destacados

Entradas recientes