Una guía completa para aprovechar el rendimiento casi nativo de tarjetas gráficas NVIDIA o AMD en entornos ligeros y eficientes con contenedores LXC en Proxmox VE
El uso de contenedores LXC en Proxmox se ha convertido en una alternativa cada vez más popular frente a las máquinas virtuales tradicionales para ejecutar cargas de trabajo con aceleración por GPU, especialmente en entornos donde el rendimiento y la eficiencia importan. Gracias a su menor sobrecarga y arranque casi instantáneo, los contenedores LXC son ideales para tareas como inferencia de modelos de IA, codificación de vídeo o estaciones de trabajo virtualizadas. Sin embargo, habilitar el passthrough de GPU a contenedores LXC en Proxmox requiere una serie de pasos específicos que difieren notablemente de la configuración en máquinas virtuales (VMs).
¿Por qué elegir LXC con GPU frente a VMs?
- Arranque más rápido y menor uso de recursos del sistema.
- Rendimiento casi nativo de la GPU.
- Ideal para ejecutar aplicaciones como Ollama, Jellyfin o para acelerar escritorios remotos.
No obstante, existe una limitación: no se puede habilitar el passthrough de GPU simultáneamente en VMs y contenedores LXC, debido a configuraciones del sistema que entran en conflicto (como el uso de VFIO o el blacklist de controladores).
Requisitos previos
- Proxmox VE 7.x u 8.x.
- Tarjeta gráfica NVIDIA o AMD instalada y visible.
- Drivers instalados directamente en el host.
- Contenedor LXC ya creado (preferiblemente privilegiado).
- Secure Boot desactivado en BIOS.
Pasos para habilitar el passthrough de GPU en contenedores LXC
1. Deshacer configuraciones previas de passthrough a VM
Si se ha usado anteriormente el modo VM:
- Eliminar o comentar las líneas en
/etc/modprobe.d/vfio.conf
- Eliminar blacklist en
/etc/modprobe.d/blacklist-nvidia.conf
- Regenerar el
initramfs
conupdate-initramfs -u -k all
- Reiniciar el host
2. Instalar controladores en el host Proxmox
apt install build-essential software-properties-common make -y
apt install -y nvidia-driver # O bien, instalar manualmente desde NVIDIA
Lenguaje del código: PHP (php)
- Para AMD:
apt install -y firmware-amd-graphics
- Verificar con:
nvidia-smi
3. Detectar los dispositivos NVIDIA
ls -al /dev/nvidia*
Normalmente se mostrarán:
/dev/nvidia0
/dev/nvidiactl
/dev/nvidia-uvm
/dev/nvidia-caps/*
4. Añadir dispositivos al contenedor LXC
Desde la interfaz de Proxmox:
- Seleccionar el contenedor > Recursos > Añadir > Device Passthrough
- Añadir cada uno de los dispositivos
/dev/nvidia*
detectados anteriormente
5. Instalar drivers en el contenedor LXC
Transferir el fichero del driver:
pct push <ID del LXC> NVIDIA-Linux-xxx.run /root/
Lenguaje del código: HTML, XML (xml)
Dentro del contenedor, ejecutar:
chmod +x NVIDIA-*.run
./NVIDIA-*.run
6. (Opcional) Instalar NVIDIA Container Toolkit para Docker
Solo necesario si se usará Docker dentro del LXC:
apt install -y nvidia-cuda-toolkit nvidia-container-toolkit
Verificar con:
nvidia-smi
7. Instalar Ollama o tu aplicación IA preferida
Ejemplo con Ollama:
curl -fsSL https://ollama.com/install.sh | sh
Lenguaje del código: JavaScript (javascript)
Y para usarlo con OpenWebUI en otro contenedor:
docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway \
-e OLLAMA_BASE_URL=http://<IP del contenedor>:11434 \
-v open-webui:/app/backend/data --name open-webui --restart always \
ghcr.io/open-webui/open-webui:main
Lenguaje del código: JavaScript (javascript)
Seguridad y consideraciones
- Contenedores privilegiados facilitan el acceso a GPU pero son menos seguros.
- Para entornos multiusuario o productivos, se recomienda usar VMs o Kubernetes con plugins de dispositivos GPU.
Pros y contras del passthrough a LXC
Pros | Contras |
---|---|
Bajo consumo de recursos | Configuración más compleja que en VMs |
Rendimiento casi nativo | Menor aislamiento en contenedores privilegiados |
Ideal para cargas IA ligeras | Requiere gestión manual de dispositivos |
Habilitar el acceso a GPU en contenedores LXC de Proxmox no solo es posible, sino que ofrece una opción potente y eficiente para ejecutar aplicaciones de inteligencia artificial, renderizado y multimedia con bajo consumo de recursos. Eso sí, la configuración exige atención al detalle y una elección clara entre contenedores o VMs.
📷 Puedes consultar capturas de pantalla detalladas y más instrucciones en la guía original publicada por Brandon Lee en VirtualizationHowTo.com.