Planetzebes

Suena ahora Main Menu International Superstar Soccer Deluxe 0 oyentes
Portada: GPU Control, un GPU-Z para Wayland con sensores, ventilador y overclock sin X11

GPU Control: un GPU-Z para Linux y Wayland, con overclock y curva de ventilador

En Windows, para ver qué hace una tarjeta NVIDIA uno abre GPU-Z, y para ajustarla, MSI Afterburner. En Linux, la herramienta oficial es nvidia-settings, que depende de X11: en un escritorio Wayland como el mío (sway) se queda corta o directamente no sirve para el overclock ni para los ventiladores. Así nació GPU Control: un monitor y panel de control para tarjetas NVIDIA, nativo de Wayland, con una interfaz moderna en GTK4 y libadwaita.

No usa X11, ni XWayland, ni nvidia-settings: todo pasa por NVML, la biblioteca de gestión que trae el propio driver de NVIDIA. Está probado con una RTX 3080 Ti.

Todo lo que la tarjeta cuenta de sí misma

La pestaña Resumen es el GPU-Z de toda la vida: chip, arquitectura, proceso de fabricación, transistores, tamaño del die, shaders, ROPs/TMUs, núcleos Tensor y RT, memoria, bus y ancho de banda, enlace PCIe actual frente al máximo, VBIOS, driver y CUDA. Y algo muy útil: qué está limitando el rendimiento en cada momento (potencia, temperatura…).

Pestaña Resumen de GPU Control con una GeForce RTX 3080 Ti: temperatura, uso, VRAM, consumo, ventilador, especificaciones y relojes
Resumen: especificaciones, relojes y estado actual de la tarjeta.

En Sensores hay gráficas de temperatura, reloj, consumo, ventilador, uso y VRAM con historial de 1, 5 y 30 minutos, además del tráfico PCIe y el uso de los codificadores NVENC/NVDEC. Un botón graba todo a CSV para analizarlo después. La pestaña Procesos muestra qué programas usan la GPU y cuánta VRAM ocupa cada uno.

Pestaña Sensores de GPU Control con gráficas de temperatura, reloj, consumo, ventilador, uso de GPU y VRAM
Sensores con historial de 1, 5 y 30 minutos y grabación a CSV.

Control y overclock, con una curva que se arrastra

En Control y OC se ajusta el límite de potencia, el offset del núcleo y el de la memoria. El ventilador puede ir en automático, a velocidad fija o con una curva editable: se arrastran los puntos, doble clic añade uno, clic derecho lo quita, y una histéresis evita que suba y baje sin parar alrededor de una temperatura. Los ajustes se guardan como perfiles y, si se quiere, se aplican al arrancar el sistema.

Pestaña Control y OC de GPU Control: límite de potencia, offsets de núcleo y memoria y curva del ventilador editable
Control y OC: potencia, offsets y la curva del ventilador con histéresis.

Dos detalles que conviene saber, porque confunden a cualquiera que venga de nvidia-settings:

  • El offset de memoria de NVML es la mitad del «transfer rate offset» de nvidia-settings: +500 aquí equivale a unos +1000 allá.
  • Con curva o velocidad fija, el ventilador no baja del mínimo que reporta el driver (en muchas 3080 Ti, un 30 %), así que se pierde el modo 0 RPM. Para recuperarlo, basta con volver a Automático.

Seguridad: lo mínimo como root, y validando todo

Cambiar la potencia o los ventiladores exige privilegios de administrador, pero una interfaz gráfica corriendo como root es mala idea. Por eso el programa está partido en tres piezas:

Diagrama: la interfaz corre como usuario, un helper root vía pkexec valida el perfil y un servicio systemd lo aplica a la GPU por NVML
Tres piezas: solo el helper y el servicio tienen privilegios.
  • La interfaz corre como tu usuario y solo lee la tarjeta.
  • Un helper se ejecuta como root a través de pkexec (te pide la contraseña), comprueba el perfil contra los límites reales que informa NVML y lo guarda.
  • Un servicio de systemd aplica la potencia y los offsets y mantiene la curva del ventilador. Al detenerlo, los ventiladores vuelven al control automático del driver, y el botón «Restablecer de fábrica» deshace cualquier ajuste.

La revisión antes de publicarlo

Antes de subirlo a GitHub le hice, junto a Claude Code, una revisión de buenas prácticas, con especial cuidado en la parte que corre como root. Lo que salió:

  • Validación más estricta: el límite de potencia ya no acepta valores como NaN, infinito o true cuando NVML no informa del rango.
  • Menos despertares: con el ventilador fijo, el servicio revisa cada 30 s en vez de cada segundo.
  • Servicio más aislado: el nivel de exposición que calcula systemd-analyze security bajó de 7,6 a 5,6.
  • Procesos: la lista ya no falla cuando hay más de 64 programas usando la GPU.
  • CSV: si no se puede crear el archivo, avisa en lugar de cerrarse con un error.
  • Pruebas: no tenía ninguna; ahora tiene 15 (validación de perfiles, curva del ventilador y un backend simulado), más normas de estilo con ruff.

Instalarlo

Está en github.com/1985a/gpu-control, con licencia GPL-3.0. En Arch Linux:

git clone https://github.com/1985a/gpu-control.git
cd gpu-control
makepkg -si

# ¿Qué pasó al aplicar un perfil?
journalctl -u gpu-control

En sway hace falta un agente de polkit para que aparezca la ventana de contraseña:

exec /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1

¿Quieres verlo sin tocar tu tarjeta? make mock abre la interfaz con una RTX 3080 Ti simulada.

Cambiar potencia, relojes y ventiladores es bajo tu responsabilidad: sube en pasos pequeños y prueba la estabilidad. GPU Control es un proyecto independiente, sin relación con NVIDIA ni con los autores de GPU-Z.


Posted

in

by

Comments

Deja una respuesta

WordPress Appliance - Powered by TurnKey Linux