Mi Configuración de GPU Passthrough en Proxmox

Mis notas personales y configuración para GPU passthrough en Proxmox VE con tarjetas NVIDIA. Incluye la configuración exacta que uso para VMs de alto rendimiento.

Stack: Proxmox VE, NVIDIA, QEMU, VFIO
Ver código

Mi Configuración de GPU Passthrough en Proxmox

Estas son mis notas personales de configurar GPU passthrough en mi homelab de Proxmox VE. Comparto esta configuración porque me tomó días hacerla funcionar correctamente, y estos son los pasos exactos que funcionaron para mi hardware.

Por Qué Necesitaba Esto

Quería consolidar múltiples máquinas físicas en un servidor Proxmox mientras mantenía el rendimiento de GPU para:

  • VM de Windows para gaming con rendimiento casi nativo
  • Experimentación de ML/AI con aceleración CUDA
  • Proyectos de codificación de video
  • Pruebas de aplicaciones aceleradas por GPU

Mi Configuración de Hardware

  • Proxmox VE 8.1
  • CPU Intel con VT-d habilitado
  • Placa madre ASUS con soporte IOMMU
  • NVIDIA RTX 3080 para passthrough
  • Gráficos integrados para pantalla del host Proxmox

Mis Pasos de Configuración

1. Configuración del BIOS

Habilité VT-d en mi BIOS bajo Advanced > CPU Configuration. Esto es crítico - sin esto, nada funciona.

2. Configuración de GRUB

Esto es lo que agregué a /etc/default/grub en mi sistema:

GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt"

Luego actualicé GRUB:

update-grub

Nota: Usa amd_iommu=on si tienes un CPU AMD.

3. Cargar Módulos VFIO

Editar /etc/modules:

vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd

4. Bloquear Drivers de GPU

Crear /etc/modprobe.d/blacklist.conf:

blacklist nouveau
blacklist nvidia
blacklist nvidiafb
blacklist nvidia_drm

5. Actualizar initramfs

update-initramfs -u -k all

Verificar Grupos IOMMU

Después de reiniciar, verificar grupos IOMMU:

#!/bin/bash
for d in /sys/kernel/iommu_groups/*/devices/*; do
    n=${d#*/iommu_groups/*}; n=${n%%/*}
    printf 'IOMMU Group %s ' "$n"
    lspci -nns "${d##*/}"
done

Tu GPU debería estar en su propio grupo IOMMU o solo con su dispositivo de audio.

Configuración de VM

  1. Agregar dispositivo PCI en la interfaz web de Proxmox
  2. Habilitar “All Functions” si la GPU tiene audio
  3. Establecer tipo de máquina a q35
  4. Agregar línea hostpci0 a la configuración de VM:
hostpci0: 0000:01:00,pcie=1,x-vga=1

Problemas Comunes

Pantalla Negra al Iniciar VM

  • Intenta agregar video=efifb:off a los parámetros del kernel de VM
  • Asegúrate de tener una segunda GPU para el host Proxmox

Código 43 en Windows

  • Agregar vendor-id a la configuración de VM: vendor-id=1234567890ab
  • Ocultar KVM: args: -cpu host,kvm=off

Bajo Rendimiento

  • Habilitar interrupciones MSI
  • Usar drivers virtio para almacenamiento y red
  • Fijar núcleos de CPU para mejor rendimiento

Mis Resultados

Después de configurar todo, ahora estoy ejecutando:

  • VM de Windows 11 para gaming con ~95% del rendimiento nativo de RTX 3080
  • VM de Ubuntu con CUDA para experimentos de AI/ML
  • Gaming estable a 4K a 60+ FPS en la mayoría de títulos
  • Puedo reasignar la GPU entre VMs sin reiniciar el host

La configuración ha sido sólida durante varios meses.

Recursos Útiles

Estos recursos me ayudaron a resolverlo:


Última Actualización: Noviembre 2025 Mi Configuración: Proxmox VE 8.1 + NVIDIA RTX 3080 Estado: Listo para producción y estable