Passthrough GPU (vDGA) in VMware: una guida completa

Ultimo aggiornamento: 14/01/2026
Autore: Isaac
  • Il passthrough GPU (vDGA/VMDirectPath I/O) in VMware mappa una GPU fisica completa su una VM per ottenere prestazioni quasi native.
  • Il suo utilizzo richiede rigorosi requisiti di hardware (VT-d/AMD-V, IOMMU, MMIO 64-bit) e firmware EFI/UEFI sulla macchina virtuale.
  • L'abilitazione di vDGA comporta la perdita di funzionalità vSphere chiave quali vMotion, DRS e snapshot sulla VM che utilizza la GPU in modalità passthrough.
  • Rispetto a vGPU e altre soluzioni, vDGA privilegia le prestazioni dedicate rispetto alla flessibilità e alla possibilità di condividere la GPU tra più VM.

Passthrough GPU vDGA su VMware

Collegamento di una GPU fisica direttamente a una macchina virtuale in VMware È uno di quei cambiamenti che fa la differenza quando si lavora con carichi grafici pesanti. IA o rendering 3D. Passare da una scheda grafica emulata a un accesso diretto tramite passthrough (vDGA / VMDirectPath I/O) può avvicinare le prestazioni della VM a quelle di una macchina fisica, ma in cambio aggiunge diversi requisiti e limitazioni che è opportuno chiarire prima di iniziare.

Inoltre, nell'ecosistema attuale, coesistono diversi modi di utilizzare la GPU in ambienti virtualizzati: Passthrough dedicato, vGPU condivisa e tecnologie come BitFusion o partizionamento GPUCapire cosa fa ognuno di essi, in quali casi si adatta e come è configurato in vSphere/ESXi (e come si relaziona a tecnologie simili come Hyper-V DDA) è fondamentale per non ritrovarsi in un vicolo cieco con l'hardware o la versione dell'hypervisor scelta.

Che cos'è il passthrough GPU (vDGA / VMDirectPath I/O) in VMware

Passthrough GPU in VMware, noto anche come vDGA o VMDirectPath I/OSi tratta di una modalità operativa in cui una scheda grafica fisica installata nell'host ESXi viene assegnata direttamente a una macchina virtuale. Invece di utilizzare una scheda grafica emulata dall'hypervisor, il sistema operativo guest vede la GPU quasi come se fosse collegata a una scheda madre fisica.

Questa scorciatoia consente alla VM di sfruttare tutta la potenza del chip grafico, la sua memoria video e le sue funzionalità avanzate come CUDA, OpenCL, Direct3D e OpenGL in modo nativo, con un overhead minimo dovuto all'hypervisor. Nei test di laboratorio VMware, si riscontra in genere una perdita di prestazioni di circa il 4-5% rispetto all'esecuzione della stessa GPU in modalità bare metal.

In pratica, l'utilizzo del passthrough GPU significa che Quella scheda è completamente dedicata a una singola macchina virtuale.Non esiste un'allocazione di risorse dettagliata tra più VM, né esiste un livello software di terze parti caricato su ESXi per condividere la scheda grafica, a differenza di quanto accade con le soluzioni vGPU come NVIDIA GRIGLIA.

È importante distinguere questo approccio da altri modi di utilizzare le GPU nella virtualizzazione, come NVIDIA vGPU (vGPU condivisa), RemoteFX/partizionamento su soluzioni di tipo Hyper-V o BitFusion, che cercano di distribuire una GPU o un pool di GPU tra più macchine con diverse tecniche di virtualizzazione o di reindirizzamento remoto.

Quando parliamo di vDGA nel mondo VMware, stiamo essenzialmente descrivendo questo assegnazione diretta del dispositivo PCIe della GPU alla VM utilizzando VMDirectPath I/O, con tutti i vantaggi (prestazioni) e gli svantaggi (restrizioni di mobilità e alta disponibilità) che ciò comporta.

Architettura GPU VMDirectPath VMware

Vantaggi dell'utilizzo del passthrough GPU in vSphere

Il motivo principale per cui si è passati a vDGA è che Le prestazioni grafiche e di elaborazione sono molto simili a quelle di un computer fisico.Omettendo gran parte del livello di virtualizzazione per quel dispositivo PCIe, i tipici colli di bottiglia della GPU emulata scompaiono e la VM può funzionare con giochi, applicazioni 3D o motori di intelligenza artificiale in modo molto più fluido.

Ciò è particolarmente evidente negli scenari in cui le GPU integrate o la scheda grafica virtuale emulata predefinita sono molto carenti: Progettazione grafica avanzata, CAD, modellazione e rendering 3D, editing video, animazione e sviluppo di giochiÈ inoltre fondamentale per l'addestramento di modelli di apprendimento automatico e carichi di lavoro di intelligenza artificiale che si basano in larga misura su CUDA o equivalenti.

Un altro chiaro vantaggio è l'uso più flessibile dell'hardware a livello di data center. Invece di avere un postazione di lavoro fisica per utente o per progettoÈ possibile dedicare un host ESXi di buone dimensioni a diverse VM, ciascuna con la propria GPU in passthrough, e giocare con le pianificazioni o i picchi di domanda.

In alcuni ambienti, soprattutto se sono già disponibili server con slot PCIe liberi, il costo per utente o per progetto Potrebbe essere meno costoso rispetto alla manutenzione di una flotta di potenti workstation fisiche, soprattutto se la scheda grafica non è necessaria 24 ore su 24 e può essere riconfigurata in base ai periodi di lavoro intenso.

Infine, c'è anche un vantaggio indiretto in termini di sicurezza e operatività: mantenendo i carichi di lavoro grafici all'interno di macchine virtuali isolateSe qualcosa va storto (un exploit, un driver problematico, una configurazione errata) è più facile contenere l'impatto, ripristinare uno snapshot precedente o effettuare un ripristino da un backup, purché vengano rispettate le limitazioni del passthrough che vedremo più avanti.

Passthrough GPU contro vGPU e altre alternative

Nell'ecosistema VMware, esistono diversi modi per utilizzare una scheda grafica, e non tutti prevedono di dedicarla interamente a una singola VM. I più noti sono: vDGA / VMDirectPath I/O, vGPU (NVIDIA GRID o altri) e soluzioni di accesso remoto/elaborazione dati come BitFusion.

  Come disattivare il completamento automatico nei browser web passo dopo passo

Nella modalità passthrough diretta (vDGA), la GPU è allocata esclusivamente a una macchina virtualeI core di elaborazione e la VRAM non sono condivisi tra più VM e il ruolo dell'hypervisor è praticamente inesistente, a parte il routing del dispositivo PCIe verso il guest. È l'opzione più semplice da comprendere e quella che più assomiglia a un server fisico con una scheda grafica dedicata.

Nell'approccio vGPU, software specializzato (ad esempio NVIDIA GRID vGPU su VMware vSphereGestisce la virtualizzazione della GPU a livello di controller ed espone istanze virtuali della GPU che possono essere assegnate a più VM contemporaneamente. Ogni macchina guest vede una "fetta" della GPU con risorse garantite o condivise.

Le vGPU consentono a più desktop o server virtuali di condividere una singola scheda grafica, il che è molto utile in VDI, ambienti di ufficio leggeri e accelerati, postazioni di lavoro grafiche di prima linea nel settore della vendita al dettaglio o dell'ospitalitào scenari in cui l'utilizzo massimo della grafica non è uniforme tra gli utenti. Di conseguenza, si crea un certo sovraccarico e non si raggiungono le stesse prestazioni massime che si ottengono con un'intera GPU fisica dedicata a una singola VM.

Esistono anche soluzioni come BitFusion Flexdirect e tecnologie similiche consentono di utilizzare le GPU in rete da diverse VM, ideali per carichi di lavoro di intelligenza artificiale e HPC in cui la GPU agisce più come una risorsa di elaborazione remota che come una scheda video per l'interfaccia grafica dell'utente.

Scegli tra vDGA, vGPU o un modello GPU remoto Dipende se è necessario utilizzare completamente una GPU per una singola macchina (passthrough), se si desidera distribuire una scheda costosa tra molti utenti con carichi di lavoro medi (vGPU) o se la chiave è orchestrare un pool di GPU per il calcolo distribuito (BitFusion e simili).

Requisiti hardware per l'utilizzo di vDGA su ESXi

Prima di pianificare una distribuzione passthrough GPU in VMware, è necessario assicurarsi che La piattaforma hardware soddisfa una serie di condizioni che vanno oltre "avere una scheda grafica collegata al server".

Innanzitutto, il processore e il chipset della scheda madre host ESXi devono supportare virtualizzazione con IOMMU. In Intel Ciò è possibile tramite Intel VT-x più VT-dy, e tramite AMD tramite AMD-V con IOMMU. Il BIOS/UEFI del server solitamente prevede opzioni specifiche per questa operazione. attivare le estensioni di virtualizzazione di I/O.

In secondo luogo, è necessario verificare che la piastra di supporto Mappatura della memoria MMIO superiore a 4 GB (a volte etichettato come "decodifica superiore a 4G", "I/O mappato in memoria superiore a 4G" o simili). Ciò è particolarmente importante con GPU di fascia alta come Tesla, P100, V100 ed equivalenti, che dichiarano regioni di memoria molto grandi nei loro BAR (Base Address Registers).

Alcune di queste schede di fascia alta possono mappare più di 16 GB di spazio MMIOPertanto, oltre a suonare il BIOSQuindi, sarà necessario modificare alcuni parametri nelle impostazioni avanzate della VM in vSphere in modo che possa avviarsi con quella GPU senza errori di risorse insufficienti.

Naturalmente, la GPU stessa deve essere compatibile con la piattaforma server e essere supportato dal produttore dell'host (Dell, HPE, Lenovoecc.) quando utilizzato in modalità passthrough. In pratica, la maggior parte delle GPU PCIe moderne funziona, ma è consigliabile controllare gli elenchi di compatibilità, soprattutto per le schede GRID o i modelli più recenti.

Requisiti software e compatibilità delle versioni

A livello software, è importante essere chiari sul fatto che VMware supporta vDGA in vSphere 6.x e versioni successiveTuttavia, alcuni utenti hanno segnalato problemi specifici con determinate combinazioni hardware (ad esempio, GPU NVIDIA GRID nei server Dell R720 con ESXi 6.x).

In questi casi, è comune vedere errori come "il dispositivo è già in uso" o sintomi che suggeriscono che Passthrough ha smesso di funzionare dopo l'aggiornamento da ESXi 5.5 a 6.xquando in realtà si tratta di bug specifici, modifiche nella gestione dei dispositivi PCI o nei driver, piuttosto che di un ritiro ufficiale del supporto.

Il sistema operativo guest che utilizzerà la GPU in passthrough deve avere driver ufficiali del produttore installati all'interno della VM (NVIDIA, AMD, Intel), poiché ESXi non carica alcun driver specifico per quella scheda quando si utilizza VMDirectPath I/O; l'hypervisor espone semplicemente il dispositivo al guest.

Inoltre, la VM deve essere configurata per l'avvio in Modalità EFI o UEFI quando si utilizzano GPU che dichiarano ampie regioni di memoria MMIO. Questo dettaglio è fondamentale: un firmware VM non corretto può causare guasti. Boot oppure che la GPU non viene inizializzata correttamente dal sistema operativo guest.

Sul lato client, se l'accesso alla VM avviene tramite Desktop remoto (RDP o altri protocolli)Sarà necessario attivare le policy appropriate affinché il sistema guest utilizzi la scheda grafica hardware nelle sessioni remote e non resti bloccato con un driver generico senza accelerazione.

  Windows Update non funziona in Windows 7. Cosa posso fare?

Configurazione passthrough GPU in VMware

Configurazione dell'host ESXi per utilizzare la GPU in modalità passthrough

Il primo passo pratico è preparare il Server vSphere/ESXi per esporre la GPU come dispositivo I/O DirectPathCiò comporta l'accesso al BIOS, il controllo dell'inventario PCI sull'host e la marcatura della scheda in modo che possa essere assegnata alle VM.

Se la GPU richiede ampie regioni di memoria MMIO (16 GB o più), è necessario cercare nel BIOS/UEFI del server opzioni come "Decodifica superiore a 4G" o "Gestione delle risorse PCI a 64 bit superiore a 4G" e attivarli. Il nome specifico varia a seconda del produttore, ma solitamente si trova nelle impostazioni PCI o nella sezione Risorse avanzate.

Una volta avviato ESXi con queste impostazioni, nel client vSphere è possibile andare all'host corrispondente e accedere “Configura → Hardware → Dispositivi PCI → Modifica” Per visualizzare l'elenco dei dispositivi PCI rilevati, vedrai le schede NVIDIA, AMD o simili insieme al resto dell'hardware PCI del server.

Se la GPU non è ancora abilitata per DirectPath I/O, è sufficiente selezionare la casella. cassetta di passaggio all'ingresso all'interno di tale elenco. Quando si salvano le modifiche, vSphere chiederà di riavviare l'host per applicare la configurazione, poiché l'hypervisor deve riservare e preparare il dispositivo per la riassegnazione alle VM.

Dopo il riavvio, al ritorno in sezione “Configura → Hardware → Dispositivi PCI” Verrà visualizzata una finestra intitolata "Dispositivi PCI DirectPath I/O disponibili per le VM", in cui sono elencati tutti i dispositivi disponibili per l'uso nelle macchine virtuali, tra cui GPU e, in molti casi, schede di rete avanzate come Mellanox.

Preparazione e configurazione della macchina virtuale

Con l'host pronto, il passo successivo è creare o adattare la macchina virtuale che utilizzerà la GPU. La prima cosa da fare è assicurarsi che la VM È stato creato con un firmware EFI/UEFI adatto., soprattutto in scenari con GPU di fascia alta e MMIO elevato.

Nel client vSphere, seleziona semplicemente la VM, vai a “Modifica impostazioni → Opzioni VM → Opzioni di avvio” e verificare che nel campo "Firmware" sia selezionato "EFI" o "UEFI". In caso contrario, sarà necessario modificarlo (e in alcuni casi, sarà necessario ricreare la macchina virtuale o il sistema operativo se non supportano la sostituzione a caldo).

Quando si utilizza il passthrough con schede che mappano più di 16 GB di spazio MMIO, è consigliabile regolare alcuni parametri avanzati nella configurazione della VM, accessibili da “Modifica impostazioni → Opzioni VM → Avanzate → Parametri di configurazione → Modifica configurazione”Qui è possibile aggiungere chiavi relative a pciPassthru per controllare come viene riservato lo spazio degli indirizzi.

Nello specifico, l'uso di MMIO a 64 bit è solitamente abilitato e viene definita una dimensione per quella regione, calcolata da Quante GPU di fascia alta saranno assegnate alla VM?La regola pratica è solitamente quella di moltiplicare 16 per il numero di GPU e arrotondare il risultato alla potenza di due successiva (ad esempio, due di queste GPU finirebbero con 64 GB di MMIO a 64 bit).

Dopo aver regolato questi parametri, si esegue l'installazione o si verifica che il Il sistema operativo guest supporta EFI/UEFI ed è in grado di gestire le dimensioni della memoria e la GPU in questione.A questo punto, la scheda grafica non è ancora stata collegata alla VM; l'ambiente viene semplicemente preparato in modo che, quando lo sarà, tutto si avvii senza errori dovuti alla mancanza di risorse o a firmware incompatibile.

Assegnare la GPU alla VM utilizzando VMDirectPath I/O

Una volta che l'host ha contrassegnato la GPU come disponibile per DirectPath I/O e la VM è configurata correttamente, è il momento di associare fisicamente la scheda a quella macchina virtualeQuesto passaggio deve essere eseguito con la VM completamente spenta.

Dal client vSphere, seleziona la VM e inserisci “Modifica impostazioni” per rivedere l’hardware virtualeNell'elenco dei dispositivi, è possibile fare clic su "Aggiungi nuovo dispositivo" e scegliere "Dispositivo PCI" se la GPU non è già presente nell'elenco. Quindi, selezionare il dispositivo PCI corrispondente alla scheda grafica (ad esempio, la scheda NVIDIA o AMD rilevata sull'host).

Una volta salvata la configurazione, la VM visualizzerà qualcosa di simile sul suo hardware “PCI Device 0” associato alla GPU specificaDa questo punto in poi, quando il sistema operativo guest si avvia, vedrà un adattatore PCIe aggiuntivo corrispondente alla scheda grafica fisica.

È essenziale che la macchina virtuale abbia ha riservato tutta la memoria che gli è stata assegnataIn vSphere, questa configurazione si effettua in "Modifica impostazioni → Hardware virtuale → Memoria", impostando il valore "Riservazione" sulla quantità di RAM configurata per la VM. Senza questa prenotazione completa, il passthrough PCI potrebbe non funzionare o riscontrare problemi intermittenti.

  Il timeout del semaforo è scaduto | Soluzioni

Dopo aver acceso la VM, su un sistema Linux La presenza della GPU può essere verificata con comandi tipo lspci | grep nvidia, mentre in Windows apparirà sotto "Schede video" nella Amministratore del dispositivoÈ normale vedere sia la scheda grafica emulata VMware sia la GPU fisica dedicata.

Il passaggio finale consiste nell'installare quanto segue sul dispositivo guest: autisti Funzionari del produttore di GPU, scaricati dai siti web NVIDIA, AMD o Intel, evitando di affidarsi a driver generici o forniti Windows Updateche potrebbe non essere ottimizzato per scenari passthrough.

Limitazioni e funzionalità di vSphere che non funzionano con vDGA

Il lato B del passthrough della GPU in VMware è che Diverse funzionalità avanzate della piattaforma sono andate perse Dedicando un dispositivo fisico direttamente a una VM. Questo è il prezzo da pagare per prestazioni quasi native.

Il primo grande sacrificio è vMotion e DRSUna macchina virtuale con una GPU in modalità passthrough non può essere migrata a caldo su un altro host perché la scheda è fisicamente bloccata sul server originale. Non è possibile utilizzare nemmeno i criteri di bilanciamento del carico automatizzato che prevedono lo spostamento della VM tra gli host del cluster.

Caratteristiche come Snapshot tradizionali o determinati meccanismi di alta disponibilità per quella specifica VM. Poiché si basa su hardware fisico molto particolare, la capacità di bloccare e ripristinare stati complessi è compromessa.

Un altro aspetto da considerare è che, in questa modalità, La GPU non è condivisa tra più VMSe sono necessari più desktop o server con accelerazione grafica sulla stessa macchina, sarà necessaria una scheda per VM oppure, in alternativa, è possibile utilizzare un modello vGPU in cui la scheda è virtualizzata su più istanze.

Dal lato del supporto, potrebbero esserci casi specifici in cui Alcune combinazioni di hardware e driver possono causare problemiCome alcuni utenti hanno osservato durante l'aggiornamento a ESXi 6.x con schede NVIDIA GRID su server specifici (ad esempio, Dell R720), in questi scenari è consigliabile consultare la documentazione di VMware e del produttore della GPU e, se necessario, aprire casi di supporto.

Infine, va notato che alcune tecnologie o servizi che interagiscono con la grafica, come desktop remoti, sottosistemi Linux in Windows o funzionalità avanzate del sistema operativoPossono interferire o causare errori "Codice 43" nei driver NVIDIA se rilevano che si sta lavorando all'interno di una VM con passthrough GPU.

Passthrough GPU in altri hypervisor: parallelo con Hyper-V

Sebbene l'attenzione qui sia rivolta a VMware, vale la pena capire come altri hypervisor (ad esempio virtualizzazione con KVM e virt-manager) affrontano la stessa esigenza di allocare una GPU fisica a una VMperché la terminologia e gli strumenti cambiano, ma l'idea di fondo è simile.

In Hyper-V, l'equivalente di VMware VMDirectPath I/O è assegnazione diretta del dispositivo tramite DDA (Discrete Device Assignment)Questa tecnica consente di mappare uno specifico dispositivo PCIe, come una GPU o NVMe, direttamente all'interno di una macchina virtuale Windows, con un livello di controllo e prestazioni simili al passthrough in ESXi.

Le versioni precedenti di Windows Server utilizzavano questa tecnologia RemoteFX per offrire la virtualizzazione GPU e condividere una scheda grafica tra più VM. Con il tempoA causa di problemi di sicurezza e limitazioni delle prestazioni (come il limite di 1 GB di VRAM per VM e 30 FPS), Microsoft ha ritirato RemoteFX e ha lasciato DDA come percorso principale per gli scenari GPU dedicati.

In Windows 10 e Windows 11Soprattutto con alcune compilation, è apparso il supporto per Partizionamento GPU e meccanismi riutilizzati da WSL2 e Windows SandboxTuttavia, la sua configurazione solitamente prevede script complessi e la copia di driver dall'host al guest, operazione non così semplice come l'assegnazione di un dispositivo in vSphere.

Conoscere queste alternative ci permette di vedere che La filosofia di offrire un accesso quasi nativo alla GPU tramite un canale PCIe diretto È comune a diversi hypervisor, sebbene ognuno abbia le sue sfumature, i suoi comandi e le sue restrizioni di compatibilità.

L'intero ecosistema di passthrough, vGPU e DDA dimostra che, correttamente configurato e con l'hardware giusto, È perfettamente fattibile utilizzare GPU potenti all'interno macchine virtuali per la produzione Per carichi di lavoro che spaziano dai desktop con grafica esigente all'intelligenza artificiale e all'HPC, si presuppone sempre che si debba rinunciare ad alcune comodità della virtualizzazione tradizionale e prestare molta attenzione ai driver, alle versioni dell'hypervisor e al supporto dei produttori di GPU.

virtualizzazione hardware
Articolo correlato:
Come abilitare la virtualizzazione dal BIOS o UEFI passo dopo passo