Pasar una GPU NVIDIA a una VM en Proxmox 9 para IA local

Pasar una GPU NVIDIA a una VM de Proxmox 9 para preparar un entorno de IA local con Ubuntu.

PCI passthrough de GPU NVIDIA en una VM Proxmox para IA local

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:

  1. VM → Hardware.
  2. Add → PCI Device.
  3. Selecciona la GPU NVIDIA.
  4. Marca PCI-Express si corresponde.
  5. 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.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *