AMD ha publicado en GitHub una nueva versión de su módulo de virtualización de GPU para Linux, conocido como GIM 8.0.0.K, compatible con su tecnología MxGPU basada en SR-IOV. Esta actualización llega con soporte específico para las GPUs AMD Instinct MI300X, optimizadas para entornos de cómputo de alto rendimiento, inteligencia artificial y virtualización avanzada en Linux con KVM/QEMU.
La solución MxGPU permite asignar múltiples funciones virtuales (VF) de una GPU a distintas máquinas virtuales de forma simultánea, ofreciendo una eficiencia de recursos y un rendimiento cercano al nativo gracias al estándar SR-IOV (Single Root I/O Virtualization).
Una alternativa sólida a la virtualización por software
MxGPU (Multiuser GPU) se diferencia de otras soluciones al proporcionar acceso directo del hardware gráfico a las máquinas virtuales, sin necesidad de emulación por software. Esto es posible gracias al soporte nativo de SR-IOV por parte del kernel de Linux y al uso del módulo GIM (GPU IOV Module), ahora actualizado en su versión 8.0.0.K.
Entre las funciones más destacadas del módulo GIM se encuentran:
- Inicialización de GPU para virtualización.
- Habilitación de funciones virtuales y configuración por GPU.
- Planificación de ejecución (world switching) entre VMs.
- Detección de cuelgues (hangs) y reinicio de funciones virtuales.
- Mecanismos de coordinación entre funciones físicas y virtuales (PF/VF handshake).
Compatibilidad y requisitos
En esta nueva versión, GIM se ha optimizado específicamente para la GPU AMD Instinct MI300X, con validación sobre sistemas Ubuntu 22.04 como host y guest. Se ofrece soporte completo para una función virtual por GPU, en línea con las necesidades de entornos donde se prioriza el rendimiento por instancia.
Requisitos mínimos del sistema:
- Ubuntu 22.04.5 con kernel 5.15.
- AMD Instinct MI300X.
- Soporte IOMMU habilitado en BIOS.
- Kernel configurado para admitir VFIO.
- Entornos virtualizados con QEMU/KVM y libvirt.
Instalación paso a paso
El módulo puede instalarse de dos maneras:
1. Instalación mediante paquete .deb:
Ideal para usuarios que buscan una instalación rápida con control de dependencias automático. Basta con ejecutar:
sudo dpkg -i gim_driver_package.deb
sudo modprobe gim
Tras reiniciar, se pueden verificar las funciones virtuales con:
lspci -d 1002:74b5
2. Compilación desde el código fuente:
Recomendada para entornos que necesiten personalización o acceso a la última versión del código:
make clean
make all -j
sudo make install
sudo modprobe gim
Configuración de VMs con GPU virtual
Una vez habilitadas las VFs en el host, pueden asignarse a VMs usando libvirt y QEMU, editando el XML de cada máquina para incluir los dispositivos PCI deseados. El proceso ha sido detallado por AMD en su guía oficial paso a paso, incluyendo la instalación de ROCm como driver VF dentro de las máquinas virtuales.
Ventajas y escenarios de uso
El uso de MxGPU se traduce en beneficios clave para entornos de IA, HPC y virtualización densa:
- Reducción de la latencia al eliminar la sobrecarga del hipervisor.
- Aislamiento seguro entre máquinas virtuales.
- Uso eficiente de una única GPU compartida entre múltiples VMs.
- Escalabilidad para centros de datos, cloud providers o entornos académicos.
Descarga y documentación
El código fuente, los scripts de instalación y la documentación completa están disponibles en el repositorio oficial de AMD en GitHub:
🔗 https://github.com/amd/MxGPU-Virtualization