El passthrough de GPU físico a una máquina virtual permite que el sistema invitado tenga acceso directo a la tarjeta gráfica, sin depender de soluciones virtualizadas tradicionales. En entornos basados en Oracle Linux con KVM y Oracle Linux Virtualization Manager (OLVM), esta configuración resulta especialmente útil para cargas de trabajo de inteligencia artificial (IA), aprendizaje automático (ML), renderizado 3D, diseño asistido por ordenador (CAD), infraestructura de escritorios virtuales (VDI) y aplicaciones gráficas exigentes.
Claves del GPU passthrough en Oracle Linux en 20 segundos
- Esta técnica asigna una GPU física directamente a una máquina virtual para un uso sin intermediarios.
- Requiere virtualización por hardware, IOMMU activado y una GPU dedicada sin uso en el host.
- VFIO permite aislar y pasar el dispositivo PCI a la VM.
- OLVM gestiona la configuración del host y la asignación de la GPU desde su interfaz gráfica.
- El proceso finaliza con la instalación de controladores en la VM y pruebas de funcionamiento.
La configuración implica cambios en la BIOS, ajustes a nivel del núcleo de Linux y la asignación del dispositivo desde OLVM. Aunque el esquema en la infografía presenta doce pasos, los comandos y opciones concretas deben adaptarse al hardware, versión de Oracle Linux, controladores gráficos y entorno de virtualización específico.
Requisitos previos del host antes de asignar la GPU
El primer requisito es contar con un host Oracle Linux compatible con KVM y OLVM en funcionamiento. También es necesario un procesador que soporte virtualización por hardware y una GPU reservable para la VM. Si el host necesita esa tarjeta para su propia interfaz gráfica, habrá que disponer de otra vía de acceso antes de aislarla.
La preparación comienza en la BIOS o UEFI. En sistemas Intel, hay que habilitar Intel VT-d; en plataformas AMD, AMD-Vi. Estas tecnologías permiten gestionar dispositivos PCI de forma aislada mediante funciones de entrada/salida (I/O) virtualizada, fundamentales para el passthrough.
Luego, se configura IOMMU en Oracle Linux mediante los parámetros de inicio del kernel. La infografía recomienda editar /etc/default/grub, añadir las opciones pertinentes y regenerar la configuración de GRUB. Para Intel, usar intel_iommu=on>; para AMD, amd_iommu=on> junto con iommu=pt>. Es importante que la configuración coincida con la plataforma y método de arranque utilizados.
Antes de reiniciar, recomienda realizar copias de seguridad de los archivos modificados y verificar que la entrada en GRUB sea la correcta. Tras reiniciar, se debe comprobar que IOMMU está activo consultando los mensajes del núcleo con dmesg y filtrando referencias a IOMMU y DMA Remapping. Si no aparecen resultados esperados, conviene resolver esa parte antes de continuar con VFIO.
Cómo aislar la GPU usando VFIO
Con IOMMU habilitado, el siguiente paso es identificar la GPU y, si la hay, su función de audio. Muchas tarjetas gráficas presentan múltiples dispositivos PCI: el controlador de vídeo y el audio HDMI o DisplayPort pueden estar separados. Se utilizan lspci para localizar estos dispositivos y anotar sus direcciones PCI.
A continuación, se revisan los grupos IOMMU, que determinan qué dispositivos el sistema puede aislar y asignar como unidad. La GPU y su función de audio deben poder agruparse de forma compatible con los criterios de aislamiento. Si el grupo incluye otros dispositivos que no se puedan separar de forma segura, será necesario revisar la topología PCI y la configuración del hardware antes de seguir.
El paso siguiente es vincular el dispositivo al controlador vfio-pci, en lugar del controlador gráfico habitual del host. La infografía muestra cómo registrar los identificadores de fabricante y dispositivo en VFIO y verificar después qué controlador ha quedado asociado a la GPU.
Los identificadores en los ejemplos de comandos deben ajustarse a cada hardware específico, pues valores incorrectos impedirán reservar correctamente el dispositivo. Además, si la tarjeta tiene funciones adicionales como el audio, estas deben considerarse por separado.
Para mantener la asignación tras reinicios, la guía recomienda guardar la configuración en /etc/modprobe.d/vfio.conf y regenerar la imagen initramfs. La cantidad de pasos exactos dependerá de la versión de Oracle Linux y del método de arranque empleado. Tras reiniciar, conviene verificar que los controladores están correctamente asociados a cada dispositivo PCI.
Integrar el dispositivo en OLVM y probar la VM
Una vez la GPU está preparada en el host, se comprueba que OLVM la detecta correctamente. Desde Oracle Linux Virtualization Manager, se navega a Compute → Hosts → New Host para registrar el host si aún no se ha hecho. Después, en la ficha del host, se revisa la sección de dispositivos para confirmar que la GPU y, si corresponde, su función de audio, han sido detectadas.
El siguiente paso es desde Compute → Virtual Machines. Selecciona la VM, accede a su configuración y en Host Devices añade el dispositivo PCI. Aquí escogerás la GPU y, si es necesario, su función de audio. Las opciones como «Enable» y «Start in VM» deben configurarse en función de la versión instalada de OLVM y sus capacidades.
Ten en cuenta que los nombres y opciones disponibles pueden variar según la versión. Es recomendable consultar la documentación específica para la versión de OLVM y Oracle Linux utilizada antes de realizar cambios en entorno de producción.
Con la GPU asignada, inicia la sistema operativo invitado. En sistemas RHEL u Oracle Linux, conviene instalar los controladores gráficos mediante el gestor de paquetes. La elección del paquete dependerá del fabricante de la GPU, versión del sistema y método de controladores. Para Windows, se recomiendan los controladores oficiales de NVIDIA o AMD.
La validación no debe limitarse a verificar que la VM arranca. En el caso de tarjetas NVIDIA, ejecutar nvidia-smi en el invitado permite confirmar que el controlador reconoce la GPU y muestra información del dispositivo. También es útil utilizar herramientas gráficas como glxinfo para asegurar el correcto renderizado si la carga de trabajo lo requiere.
Finalmente, se recomienda ejecutar una aplicación o prueba de rendimiento representativa del uso previsto, y monitorear la estabilidad tanto del anfitrión como de la VM. La asignación directa reduce la sobrecarga de la virtualización gráfica, aunque el rendimiento final dependerá de la tarjeta, controladores, aplicación y configuración.
Errores comunes y recomendaciones para producción
Si la VM no arranca tras asignar la GPU, revisa los registros del sistema, incluyendo journalctl. Si el dispositivo no aparece en la VM, verifica que la GPU esté correctamente vinculada a VFIO, que los grupos IOMMU sean adecuados, y que OLVM detecte correctamente el hardware.
En Windows, el código de error 43 suele indicar problemas de reconocimiento del hardware. Es recomendable revisar la configuración de la GPU, versiones de controladores, y otros componentes del sistema. Cada caso puede requerir soluciones específicas; no hay una única corrección aplicable universalmente.
Otra advertencia importante es no perder el acceso a la consola del host al asignar la única GPU disponible. Para evitar esto, se recomienda disponer de una GPU secundaria o métodos de acceso remoto, como SSH, KVM sobre IP, IPMI o iLO. Mantener respaldos y verificar los grupos IOMMU antes de asignar dispositivos ayuda a prevenir bloqueos no deseados.
El passthrough de GPU ofrece a las VM acceso directo a hardware gráfico, con beneficios en cargas que requieren aceleración por hardware. Sin embargo, requiere reservar y aislar el dispositivo, y mantener una configuración consistente entre el host, OLVM y la VM. La guía facilita un marco de referencia general, pero cada entorno puede requerir ajustes específicos.
Preguntas frecuentes
¿Qué es GPU passthrough en KVM?
Es una técnica que asigna una GPU física directamente a una máquina virtual, permitiendo que la VM la utilice de forma exclusiva, ideal para cargas que requieren aceleración gráfica o de cálculo.
¿Qué función cumple IOMMU?
IOMMU gestiona el acceso de los dispositivos a la memoria y permite el aislamiento y la asignación segura de hardware PCI a VMs. En Intel, se relaciona con VT-d; en AMD, con AMD-Vi.
¿Para qué sirve VFIO en Oracle Linux?
VFIO permite vincular dispositivos físicos, como la GPU, a las máquinas virtuales, reservándolos y evitando que el host gestione esas funciones mediante sus controladores habituales.
¿Cómo verificar que la GPU funciona correctamente en la VM?
En GPU NVIDIA, ejecutar nvidia-smi desde la VM confirma si el controlador reconoce la tarjeta. También es recomendable realizar pruebas de rendimiento o funcionalidad y verificar la estabilidad del sistema invitado.
