-
Cos'è il pass-through GPU di Proxmox?
-
Prerequisiti per il pass-through GPU su Proxmox
-
Come configurare il passaggio GPU su Proxmox?
-
Non dimenticare di eseguire il backup della tua VM!
-
Domande frequenti su Proxmox GPU Passthrough
-
Conclusione
Il pass-through della GPU consente a una macchina virtuale di accedere direttamente a una GPU fisica, migliorando le prestazioni per attività di calcolo o grafiche. Questo articolo mostra come configurare il pass-through della GPU su Proxmox VE.
Cos'è il pass-through GPU di Proxmox?
Il pass-through GPU associa una GPU host a una VM tramite VFIO. Il kernel host scollega la GPU e la trasferisce all'ospite. Questo consente prestazioni quasi native. Proxmox VE sfrutta i moduli KVM e VFIO per gestire questa associazione. È necessario verificare il supporto hardware e configurare l'IOMMU. Si prevede di dover regolare il BIOS e il kernel affinché l'host ceda il controllo esclusivo alla VM.
Prerequisiti per il pass-through GPU su Proxmox
Prima di iniziare, verifica il supporto di CPU, scheda madre, BIOS e GPU. La CPU deve supportare IOMMU: Intel VT-d o AMD-Vi. Il BIOS deve abilitare queste opzioni e la decodifica a 4G o superiore a 4G.
Avviso: Il passaggio della GPU principale dell'host potrebbe rendere l'host irraggiungibile senza un accesso out-of-band come IPMI o KVM-over-IP. Alcuni sistemi richiedono la disattivazione di CSM/avvio legacy se si passa l'unica GPU utilizzata per la console host. Per le VM UEFI, il ROM della GPU deve supportare UEFI GOP; altrimenti funziona SeaBIOS ma con funzionalità limitate. Caricare i moduli VFIO: vfio, vfio_pci, vfio_iommu_type1 (e vfio_virqfd sui vecchi Proxmox). Verificare che i gruppi IOMMU isolino la GPU e il suo audio; evitare la condivisione con dispositivi critici. Usare l'API Proxmox o lspci -nnk per ispezionare i gruppi.
Avviso sull'override ACS
Alcune apparecchiature non dispongono di un corretto raggruppamento ACS. È possibile aggiungere pcie_acs_override=downstream oppure utilizzare vfio_iommu_type1.allow_unsafe_interrupts=1. Utilizzare solo se necessario. L'override ACS può introdurre rischi per la sicurezza o la stabilità. Si consiglia di preferire apparecchiature con isolamento nativo.
Come configurare il passaggio GPU su Proxmox?
1. Configurazione dell'host
Prima di tutto, abilita IOMMU nel BIOS o UEFI. Abilita "Intel VT-d" o "AMD IOMMU" e "Decodifica sopra i 4G" se presenti. Disabilita CSM se si utilizza UEFI per la console host sulla GPU. Riavvia in Proxmox VE.
Modifica GRUB in modo sicuro. Per Intel esegui:
sed -i 's/GRUB_CMDLINE_LINUX_DEFAULT="[^"]*/& intel_iommu=on iommu=pt/' /etc/default/grub
Eseguire per AMD:
sed -i 's/GRUB_CMDLINE_LINUX_DEFAULT="[^"]*/& amd_iommu=on iommu=pt/' /etc/default/grub
Se è necessario l'override ACS, aggiungere pcie_acs_override=downstream con uno spazio. Quindi eseguire update-grub e riavviare. Verificare l'attivazione di IOMMU: cat /proc/cmdline | grep iommu e dmesg | grep -e DMAR -e AMD-Vi. Dovrebbe essere visualizzata l'abilitazione del reindirizzamento delle interruzioni.
2. Caricare e inserire nei blacklist i moduli
Crea un file modprobe dedicato per VFIO:
echo -e "vfio\nvfio_pci\nvfio_iommu_type1" > /etc/modules-load.d/vfio.conf
Su versioni precedenti di Proxmox, caricare anche vfio_virqfd. Bloccare i driver della GPU mediante file separati. Per NVIDIA:
echo "blacklist nouveau" > /etc/modprobe.d/blacklist-nouveau.confecho "blacklist nvidiafb" > /etc/modprobe.d/blacklist-nvidia.conf
Per AMD:
echo "blacklist amdgpu" > /etc/modprobe.d/blacklist-amdgpu.confecho "blacklist radeon" > /etc/modprobe.d/blacklist-radeon.conf
Per Intel iGPU:
echo "blacklist i915" > /etc/modprobe.d/blacklist-i915.conf
Dopo aver inserito nella blacklist, rigenera l'initramfs: update-initramfs -u. Per risolvere problemi con initramfs: journalctl -b 0 | grep vfio. Riavvia e verifica con lsmod | grep vfio.
3. Verifica il raggruppamento IOMMU
Esegui:
pvesh get /nodes/<nodename>/hardware/pci --pci-class-blacklist ""
oppure ispeziona /sys/kernel/iommu_groups. Identifica la GPU e il gruppo della funzione audio. Assicurati che nessun dispositivo critico condivida il gruppo. Se il raggruppamento è ampio, utilizza l'override ACS in GRUB, poi riavvia e ricontrolla. Conferma i messaggi ACS nei log: dmesg | grep ACS.
Usa lspci -tv per associare i dispositivi ai socket della CPU. Questo aiuta a ottimizzare la località NUMA. Scegli il pinning della CPU host e della CPU della VM in modo da allinearli al nodo NUMA della GPU.
4. Binding del modulo host (avanzato)
Se il binding automatico fallisce, specificare gli ID nella configurazione VFIO:
echo "options vfio-pci ids=1234:5678,abcd:ef01" > /etc/modprobe.d/vfio-ids.conf
Sostituire con ID vendor:device da lspci -nn. Aggiungere softdep se necessario:
echo "softdep <drivername> pre: vfio-pci" > /etc/modprobe.d/<drivername>.conf
Aggiorna initramfs e riavvia. Conferma che la GPU sia associata a vfio-pci tramite lspci -nnk.
5. Configurazione della macchina virtuale
Nelle opzioni Machine e firmware, selezionare il chipset q35. Per l'UEFI, scegliere OVMF. Assicurarsi che la partizione delle variabili firmware sia ≥1 MB (gestita automaticamente da Proxmox). Verificare che il ROM della GPU supporti UEFI GOP. In caso contrario, utilizzare SeaBIOS ma con limitazioni previste.
Nella scheda Hardware della macchina virtuale, fare clic su Add, quindi su PCI Device. Selezionare l'indirizzo GPU (ad esempio, 00:02.0). Spuntare All Functions se l'audio è separato. Abilitare PCIe (pcie=on). Se è l'unica GPU, selezionare Primary GPU (x-vga=on). Tramite CLI:
qm set <VMID> -machine q35 -hostpci0 01:00.0,pcie=on,x-vga=on
Per multifunzione:
qm set 100 -hostpci0 01:00.0,rombar=0 -hostpci1 01:00.1
Collegare questa configurazione alla macchina virtuale utilizzata per le attività GPU.
6. Configurazione del sistema operativo ospite
Installare il sistema operativo ospite normalmente. Windows: caricare i driver GPU ufficiali ≥ versione 465 per NVIDIA per evitare l'errore Code 43. Nascondere l'hypervisor: aggiungere argomenti CPU:
args: -cpu 'host,kvm=off,hv_vendor_id=proxmox'
Se il fornitore blocca il driver, effettua il dump del ROM della GPU o falsifica gli ID nelle impostazioni avanzate della macchina virtuale. Linux: installa i driver, prova CUDA/OpenCL o applicazioni grafiche. È necessario un monitor locale collegato alla GPU o una connessione RDP/VNC all'interno del sistema guest; la console Proxmox non mostrerà l'output della GPU.
Non dimenticare di eseguire il backup della tua VM!
Per garantire che le tue VM Proxmox siano protette durante la configurazione del pass-through GPU o futuri aggiornamenti, è essenziale disporre di una soluzione di backup affidabile. Vinchin Backup & Recovery è una soluzione professionale di livello aziendale per il backup delle VM che supporta Proxmox VE insieme ad altre piattaforme leader come VMware, Hyper-V, XenServer, oVirt e molte altre. Grazie a funzionalità come il backup senza agent, il backup incrementale basato su CBT, il ripristino immediato e la pianificazione automatica, Vinchin protegge il tuo ambiente virtuale Proxmox con il minimo sforzo. Che tu stia eseguendo carichi di lavoro intensivi dal punto di vista computazionale o VM accelerate da GPU, Vinchin garantisce che i tuoi dati e le tue configurazioni siano sempre al sicuro e recuperabili.
Per eseguire il backup della tua VM Proxmox, segui quattro passaggi legati a tale VM:
1. Seleziona la VM Proxmox da cui eseguire il backup

2. Scegli l'archiviazione del backup

3. Configurare la strategia di backup

4. Invia il lavoro

Vinchin vanta una base utenti globale e valutazioni elevate. Ottieni subito una prova gratuita di 60 giorni con funzionalità completa.
Domande frequenti su Proxmox GPU Passthrough
Q1: Come verificare il supporto IOMMU della CPU?
A1: Esegui dmesg | grep -e DMAR -e AMD-Vi e cerca il remapping delle interruzioni abilitato.
Q2: Come isolare la GPU in un gruppo IOMMU?
A2: Utilizza l'override ACS solo se necessario: aggiungi pcie_acs_override=downstream al GRUB e riavvia per separare i dispositivi.
Q3: Come accedere alla visualizzazione ospite quando la console è vuota?
A3: Collega il monitor alla GPU o configura RDP/VNC all'interno del sistema operativo guest.
Domanda 4: Perché la GPU passata mostra l'"Errore 43"?
A4: Nascondi Hyper-V/KVM, usa i driver più recenti, falsifica gli ID del produttore/dispositivo o esegui il dump del ROM della GPU se bloccato.
Conclusione
L'attraversamento GPU su Proxmox sblocca prestazioni elevate per le VM. Eseguire controlli hardware, modifiche al BIOS e modifiche al kernel. Caricare i moduli VFIO, isolare i gruppi IOMMU e associare la GPU a VFIO. Configurare la VM con q35 e OVMF quando possibile. Ottimizzare il pinning della CPU e NUMA per ottenere i migliori risultati. Risolvere problemi come l'errore 43, bug di reset e analizzare i log. Eseguire sempre il backup prima di modifiche importanti. Vinchin offre backup affidabili per proteggere le VM e i dati.
Condividi su: