Tvrtko Ursulin, ingeniero de Igalia, ha propuesto una interfaz sysfs unificada para consultar el uso de memoria de vídeo en Linux, un desarrollo que busca acabar con la fragmentación actual entre drivers. La propuesta, presentada como parche de ejemplo, cambiaría la forma en que las herramientas de monitorización y los motores de render leen la GPU, sin depender de las APIs propias de cada fabricante.
La propuesta se materializa en la ruta /sys/class/drm/card1/memstat/, un directorio pensado para exponer regiones de memoria como la vRAM y la GTT con un formato común. Hasta ahora, cada driver informaba de estos datos a su manera, con lecturas crípticas o llamadas propietarias que dificultaban comparar el estado de la GPU entre fabricantes. El objetivo es que cualquier aplicación pueda leer esas cifras sin que nosotros tengamos que adivinar de antemano qué tarjeta gráfica tiene instalada el equipo.
El parche de AMDGPU pone a prueba memstat
El ejemplo de parche que acompaña la propuesta se centra en el driver AMDGPU y define una estructura común para leer el estado de la memoria. Cada región identificada devuelve su capacidad total y el consumo en tiempo real, en megabytes, sin que tengáis que interpretar archivos con nombres poco descriptivos ni confiar en que el propio driver resuelva la lectura por su cuenta.
Hasta ahora, saber cuánta VRAM estaba realmente en uso en Linux dependía de mecanismos específicos de cada fabricante o de trucos poco documentados que variaban de una distribución a otra. Con memstat, los técnicos disponen de un número claro y comparable entre tarjetas, lo que les permitirá distinguir si una GPU trabaja al límite de su capacidad o todavía tiene margen suficiente para asumir nuevas cargas de trabajo, sin recurrir a herramientas externas de terceros.
Monitorización y motores de render en Linux
La fragmentación actual obliga a que cada driver exponga sus datos de forma distinta, lo que complica el desarrollo de software que debe funcionar con GPUs de varios fabricantes a la vez. Al unificar la consulta bajo sysfs, las herramientas de monitorización y los motores de render podrán leer el estado de la VRAM sin implementar rutas específicas para cada tarjeta.
El cambio afecta de manera directa a los pipelines de renderizado VFX y a los estudios de desarrollo de videojuegos, donde es habitual combinar gráficas de varios proveedores dentro de la misma granja de render o de la misma estación de trabajo. Los equipos que mantienen motores gráficos ya no necesitarán conservar múltiples rutas de código para interrogar a cada tarjeta por separado, sino que podrán centralizar esa consulta en una única llamada al sistema, algo que simplificaría el mantenimiento a largo plazo del software. La adopción completa de este modelo, en cualquier caso, dependerá de que otros fabricantes trasladen la misma estructura a sus propios controladores, tanto libres como propietarios.
Si trabajáis con estaciones dedicadas al modelado 3D o a la composición de efectos visuales, esta lectura común os dará un dato objetivo y comparable entre GPUs de distintos proveedores, algo que facilita repartir tareas en granjas de render o en entornos de desarrollo multiplataforma sin depender de la documentación particular de cada fabricante. La interfaz memstat no evitará que un proyecto falle por falta de memoria si los activos superan la capacidad física de la tarjeta, pero sí aportará las cifras exactas de vRAM y GTT necesarias para ajustar la escena antes de que el sistema colapse, algo que hasta ahora exigía comparar lecturas distintas según el fabricante de la GPU instalada en cada puesto de trabajo.
