Para usar una GPU NVIDIA dentro de una VM, Proxmox tiene que poder pasar la tarjeta completa al invitado mediante PCI passthrough.
La idea es preparar una VM que vea la GPU como si fuera hardware propio. Después, dentro de Ubuntu, instalaremos el driver NVIDIA y comprobaremos la tarjeta con nvidia-smi.
Esta entrada no instala todavía Ubuntu ni los drivers NVIDIA dentro de la VM. Esa parte queda enlazada en la pieza siguiente: preparar Ubuntu con NVIDIA para IA local.
Antes de empezar
Necesitas:
- una CPU y placa base con IOMMU;
- IOMMU, VT-d o AMD-Vi activado en BIOS/UEFI;
- una GPU NVIDIA dedicada para la VM;
- una VM apagada en Proxmox 9;
- una ventana de mantenimiento si vas a cambiar parámetros del host.
Si la GPU es la única salida gráfica del host, conviene ir con más cuidado. Al pasarla a la VM, el host deja de usarla.
Verificar IOMMU en Proxmox
En el nodo Proxmox, revisa si el kernel detecta IOMMU:
dmesg | grep -e DMAR -e IOMMU -e AMD-Vi
En Proxmox 9, con kernels actuales, IOMMU suele venir activo si la BIOS/UEFI está bien configurada. En equipos antiguos puede ser necesario añadir parámetros de kernel, especialmente en Intel.
Si no aparece nada relacionado con IOMMU, revisa primero la BIOS/UEFI antes de tocar la VM.
Localizar la GPU y su grupo IOMMU
Lista los dispositivos PCI que ve Proxmox:
pvesh get /nodes/$(hostname)/hardware/pci --pci-class-blacklist ""
Busca la GPU NVIDIA y, si aparece, también su función de audio HDMI. Muchas tarjetas aparecen como dos dispositivos del mismo grupo IOMMU.
Qué interesa revisar:
- el identificador PCI, por ejemplo
01:00.0; - si hay una función de audio, por ejemplo
01:00.1; - el grupo IOMMU;
- que no haya otros dispositivos importantes mezclados en el mismo grupo.
Si la GPU comparte grupo IOMMU con otros dispositivos que no quieres pasar a la VM, puede que necesites cambiarla de ranura o revisar opciones ACS/IOMMU de la placa.
Configurar la VM con q35
Para passthrough PCIe, usa máquina q35.
Puedes comprobar o ajustar la VM desde la interfaz de Proxmox, en las opciones de hardware de la máquina. Si prefieres CLI:
qm set VMID --machine q35
Cambia VMID por el ID real de la VM.
Añadir la GPU a la VM
Desde la interfaz web:
- VM → Hardware.
- Add → PCI Device.
- Selecciona la GPU NVIDIA.
- Marca PCI-Express si corresponde.
- Si la tarjeta tiene audio HDMI asociado, añádelo también o selecciona todas las funciones si Proxmox lo ofrece.
Con CLI, el ejemplo base sería:
qm set VMID --hostpci0 01:00,pcie=1
Cambia 01:00 por el dispositivo real de tu GPU.
Arrancar la VM e instalar Ubuntu
Arranca la VM e instala Ubuntu 22.04, 24.04 o 26.04.
Dentro de Ubuntu, el siguiente paso es instalar el driver NVIDIA y comprobar la GPU con nvidia-smi:
nvidia-smi
La pieza enlazada para esa parte es:
Preparar Ubuntu 22.04, 24.04 y 26.04 con NVIDIA para IA local
Si Proxmox sigue usando la GPU
Si el host Proxmox carga un driver para esa GPU, puede que la VM no pueda usarla correctamente. En ese caso, la solución suele ser reservar la tarjeta para VFIO o bloquear el driver del host.
No lo haría como primer paso si no hace falta. Primero intentaría el passthrough normal y miraría el error.
Si necesitas liberar la GPU del host, la documentación de Proxmox contempla blacklisting de módulos, por ejemplo nouveau o nvidia, y configuración de vfio-pci por vendor/device ID. Esa parte conviene tratarla como troubleshooting, no como receta obligatoria.
Comprobación final
La prueba buena no está en Proxmox, sino dentro de la VM:
nvidia-smi
Si la VM muestra la GPU, el passthrough funciona. A partir de ahí ya puedes seguir con Ollama u otra herramienta de IA local.
