Skip to content

GPU de AMD sin nvidia-smi: uso, memoria y temperatura por sysfs - #15

Open
roysland wants to merge 1 commit into
k4ditano:mainfrom
roysland:gpu-amd-sysfs
Open

GPU de AMD sin nvidia-smi: uso, memoria y temperatura por sysfs#15
roysland wants to merge 1 commit into
k4ditano:mainfrom
roysland:gpu-amd-sysfs

Conversation

@roysland

@roysland roysland commented Sep 6, 2026

Copy link
Copy Markdown

El problema

La tarjeta de GPU del panel Sistema sólo aparecía con NVIDIA: tools/sistema.py preguntaba exclusivamente a nvidia-smi, así que en una máquina con Radeon —aunque tenga dos, como la mía— la GPU no salía nunca y el hueco quedaba vacío.

La solución

Si nvidia-smi no responde, se lee el kernel por sysfs, que en amdgpu publica todo lo que la tarjeta ya enseña:

  • gpu_busy_percent → uso (y sirve de puerta: una tarjeta sin él se descarta, que un cero inventado no entre como dato)
  • mem_info_vram_used / mem_info_vram_total → VRAM, en MiB como daba nvidia-smi
  • hwmon/temp1_input → temperatura

De varias tarjetas se elige la de más VRAM (la discreta; la integrada comparte memoria y su total es un cacho del sistema). El nombre comercial sale de /usr/share/hwdata/pci.ids —que da 1002:73df y no dice nada a un humano—, resuelto una vez por modelo y cacheado; si la base no está, cae a «Radeon» sin romper nada.

Sin procesos nuevos: sysfs se lee cada muestra porque no cuesta nada, y nvidia-smi sigue preguntándose una vez de cada dos, como antes. Si la máquina tiene las dos marcas, manda la NVIDIA y sysfs no se consulta.

Verificación

En una máquina con amdgpu (Radeon RX 6700 XT-class + iGPU Raphael):

gpu: {"nombre": "Radeon RX 6700/6700 XT/6750 XT / 6800M/6850M XT", "uso": 30, "temp": 49.0, "memUsada": 7776, "memTotal": 12272}

La tarjeta de GPU aparece con su gráfica, temperatura y VRAM, igual que la de NVIDIA. Un python3 tools/sistema.py a mano imprime el bloque gpu en cada línea.

La consulta sólo sabía de nvidia-smi; en una máquina con Radeon la
tarjeta GPU no salía nunca. Ahora si nvidia-smi no responde se lee
/sys/class/drm: uso (gpu_busy_percent), VRAM (mem_info_vram_*) y
temperatura (hwmon) de la tarjeta con más memoria —la discreta—, y el
nombre comercial sale de /usr/share/hwdata/pci.ids. Sin procesos nuevos:
sysfs se lee cada muestra y nvidia-smi sigue preguntándose una vez de
cada dos, como antes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant