GPU de AMD sin nvidia-smi: uso, memoria y temperatura por sysfs - #15
Open
roysland wants to merge 1 commit into
Open
GPU de AMD sin nvidia-smi: uso, memoria y temperatura por sysfs#15roysland wants to merge 1 commit into
roysland wants to merge 1 commit into
Conversation
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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
El problema
La tarjeta de GPU del panel Sistema sólo aparecía con NVIDIA:
tools/sistema.pypreguntaba exclusivamente anvidia-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-smino 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-smihwmon/temp1_input→ temperaturaDe 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 da1002:73dfy 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-smisigue 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):
La tarjeta de GPU aparece con su gráfica, temperatura y VRAM, igual que la de NVIDIA. Un
python3 tools/sistema.pya mano imprime el bloquegpuen cada línea.