Se utilizó un límite de software temporal de 400 W (frente a 600 W por defecto en la tarjeta observada) durante un diagnóstico eléctrico. Las pruebas de ComfyUI y Ollama del 27–28 de septiembre de 2026 se realizaron después a 600 W, por decisión explícita. No se ha establecido ninguna ganancia de estabilidad duradera ni comparación de rendimiento entre estos límites.
nvidia-smi \ --query-gpu=power.limit,power.default_limit \ --format=csv,noheader
El valor de diagnóstico de 400 W se aplica con sudo nvidia-smi --power-limit=400 — un ajuste no persistente tras un reinicio o una recarga del controlador. Los comandos detallados, la telemetría y el retorno al límite de fábrica están documentados en la página IA y LLM (VM210).
| Tecnología | Función |
|---|---|
| VFIO | Framework Linux de aislamiento PCIe |
| IOMMU / AMD-Vi | Unidad de gestión de memoria para E/S |
| PCI Passthrough | Asignación directa GPU → VM |
| Q35 | Chipset QEMU requerido para PCIe moderno |
| OVMF | UEFI obligatorio para passthrough NVIDIA |
| Archivo | Modificación |
|---|---|
| /etc/default/grub | amd_iommu=on iommu=pt |
| /etc/modprobe.d/vfio.conf | bind de VFIO a los ID de la GPU |
| /etc/modules | vfio vfio_iommu_type1 vfio_pci |
| /etc/initramfs-tools/ | Integración de módulos en el arranque |
| /etc/pve/qemu-server/*.conf | Configuración de VM en Proxmox |
La puesta en marcha exigió distinguir varios niveles de diagnóstico, para atribuir cada efecto a un único parámetro:
- firmware e IOMMU
- controlador del host y grupos PCIe
- reserva de la GPU y de su función de audio a
vfio-pci - configuración de la VM
- controlador invitado y CUDA
- runtime en contenedores (acceso a la GPU hasta dentro de Docker)
Antes de cualquier actualización del firmware, se guardan los parámetros necesarios para IOMMU y VFIO y se prepara un retroceso; tras cada modificación, se revalidan los grupos IOMMU, la reserva de la GPU y el arranque de las VM. Se conserva una consola virtual distinta para la recuperación.
Ejecutado en el host Proxmox, este comando detecta la RTX 5090 (sin mostrar su dirección), identifica las VM configuradas para usarla y publica una etiqueta depurada — distinguiendo el estado actual de la VM de su política de autoarranque, y verificando que solo una VM de passthrough esté activa a la vez.
gpu_bdf=$(lspci -D | awk '/NVIDIA.*RTX 5090/ {print $1; exit}')
[ -n "$gpu_bdf" ] || { echo 'RTX 5090 non détectée'; exit 1; }
gpu_slot=${gpu_bdf%.*}
gpu_slot_short=${gpu_slot#0000:}
alternative=0
running_gpu_vms=0
for vmid in $(qm list | awk 'NR > 1 {print $1}'); do
config=$(qm config "$vmid")
if grep -Eq "^hostpci[0-9]+:.*(${gpu_slot}|${gpu_slot_short})([.,]|$)" \
<<< "$config"; then
if [ "$vmid" = 210 ]; then
label="IA-Core"
else
alternative=$((alternative + 1))
label="GPU-alternative-${alternative}"
fi
status=$(qm status "$vmid" | awk '{print $2}')
onboot=$(awk -F': ' '/^onboot:/ {print $2}' <<< "$config")
startup=$(awk -F': ' '/^startup:/ {print $2}' <<< "$config")
[ -z "$onboot" ] && onboot=0
[ -z "$startup" ] && startup="-"
[ "$status" = running ] && running_gpu_vms=$((running_gpu_vms + 1))
printf '%-20s status=%-8s onboot=%-2s startup=%s\n' \
"$label" "$status" "$onboot" "$startup"
fi
done
if [ "$running_gpu_vms" -le 1 ]; then
printf 'GPU passthrough actif : %s VM — exclusivité OK\n' "$running_gpu_vms"
else
printf 'ALERTE : %s VM GPU actives simultanément\n' "$running_gpu_vms"
exit 2
fiIA-Core status=running onboot=1 startup=order=20,up=30,down=60 GPU-alternative-1 status=stopped onboot=0 startup=- GPU-alternative-2 status=stopped onboot=0 startup=- … status=stopped onboot=0 startup=- GPU passthrough actif : 1 VM — exclusivité OK
Un registro de BIOS de referencia separa los valores realmente observados de las mejoras simplemente consideradas. Antes de cualquier actualización de firmware, se respaldan los parámetros necesarios para IOMMU y VFIO y se prepara un plan de reversión; tras la modificación, se revalidan los grupos IOMMU, la reserva de la GPU y el arranque de las VM. Las pruebas se realizan de una en una, para atribuir claramente cada efecto al parámetro modificado.
Validación: el controlador NVIDIA y CUDA se validaron en una VM Ubuntu, y después se verificó el acceso a la GPU incluso dentro de contenedores Docker (mediante el NVIDIA Container Toolkit).