Passthrough della GPU in Hyper-V: una guida essenziale per principianti
Le VM Hyper-V utilizzano per impostazione predefinita una scheda grafica emulata, che è sufficiente per le attività di visualizzazione di base ma non offre le prestazioni necessarie per i carichi di lavoro accelerati dalla GPU, come il rendering 3D, l’inferenza nel machine learning o i calcoli basati su CUDA. Il passthrough della GPU in Hyper-V risolve questo problema assegnando una scheda video fisica direttamente a una VM, aggirando l’emulazione e fornendo al sistema operativo guest pieno accesso alla GPU hardware.
Questa guida illustra i due metodi disponibili per l’assegnazione della GPU in Hyper-V: Direct Device Assignment (DDA) e partizionamento della GPU (GPU-P). Leggi questo articolo per scoprire come soddisfare i requisiti hardware e software, configurare ciascun metodo su Windows Server e sulle versioni client di Windows e risolvere i problemi più comuni.
Novità?
Questa guida è stata aggiornata per riflettere le modifiche introdotte in Windows Server 2025 e nelle release recenti di Windows client:
- Windows Server 2025 introduce il partizionamento della GPU (GPU-P) come funzionalità aziendale completamente supportata, che consente a più VM di condividere una singola GPU fisica tramite l’isolamento basato su SR-IOV.
- In Windows Server 2025 è ora supportata la migrazione dinamica delle VM con partizioni GPU, consentendo di eseguire la manutenzione dell’host senza tempi di inattività delle VM.
- Il supporto per il clustering di failover è stato ampliato: le VM GPU-P possono essere configurate come ruoli cluster e le VM basate su DDA possono essere riavviate su un altro nodo del cluster se è disponibile una GPU compatibile.
- Il componente vGPU RemoteFX è stato completamente rimosso in Windows Server 2025 (era deprecato da Windows Server 2019).
- Sono state aggiornate le indicazioni per la risoluzione dei problemi e le considerazioni sul backup per le VM abilitate per GPU.
Che cos’è il passthrough della GPU?
Quando si avvia una VM Hyper-V, questa riceve una scheda video emulata che elabora la grafica tramite la CPU dell’host. Questa soluzione è adeguata per l’accesso alla console e l’uso desktop di base, ma non può esporre le funzionalità hardware necessarie ai carichi di lavoro che dipendono dalla GPU: shader di calcolo, codifica video hardware, core CUDA o supporto per DirectX 12.
Il passthrough della GPU elimina questo livello di emulazione. Invece di instradare la grafica tramite una scheda virtuale, Hyper-V assegna una scheda video fisica alla VM a livello di PCI Express (PCIe). Il sistema operativo guest comunica direttamente con la GPU, utilizzando il driver nativo del vendor invece di un’astrazione Hyper-V. Dal punto di vista delle applicazioni eseguite all’interno della VM, la GPU si comporta come se fosse installata in una macchina fisica.
Hyper-V supporta due meccanismi per farlo. L’assegnazione diretta del dispositivo (DDA) assegna l’intera GPU fisica a una singola VM. Il partizionamento della GPU (GPU-P) suddivide una scheda in porzioni isolate, in modo che più VM possano condividerla. Entrambi i meccanismi sono descritti in dettaglio più avanti in questa guida.
Nota: Una GPU può essere integrata nel die della CPU (una soluzione comune nei processori Intel e AMD recenti) oppure montata su una scheda video discreta collegata alla scheda madre tramite PCIe. Il pass-through e il partizionamento della GPU sono in genere destinati alle GPU discrete, anche se GPU-P può funzionare anche con la grafica integrata nelle versioni client di Windows.
Vantaggi principali del pass-through della GPU in Hyper-V
Una scheda grafica fisica collegata tramite pass-through della GPU può essere utile agli utenti domestici, agli sviluppatori, ai designer e ad altri utenti che necessitano di grafica con accelerazione hardware in una VM. Gli scenari più comuni includono:
- L’esecuzione di applicazioni ad alta intensità grafica, come software di modellazione 3D, disegno tecnico con AutoCAD, simulazioni ingegneristiche, sviluppo di videogiochi e rendering con accelerazione hardware;
- L’esecuzione di giochi che richiedono funzionalità di accelerazione hardware; alcuni titoli potrebbero non funzionare senza una scheda video fisica;
- L’esecuzione di carichi di lavoro di machine learning (ML) e intelligenza artificiale (AI) che sfruttano le capacità di calcolo della GPU.
I vantaggi del pass-through della GPU includono:
- Prestazioni grafiche migliori. Le VM ottengono accesso diretto alla scheda grafica per applicazioni o giochi impegnativi. La riproduzione video è più fluida e diventano disponibili il rendering con accelerazione hardware e le API grafiche più recenti.
- Utilizzo flessibile dell’hardware. Un singolo host Hyper-V può eseguire più VM con carichi di lavoro grafici diversi, nei casi in cui l’uso di workstation dedicate sarebbe impraticabile.
- Efficienza dei costi. Il pass-through della GPU può ridurre i costi hardware consolidando i carichi di lavoro. Questa funzione è applicabile anche alle implementazioni di infrastrutture desktop virtuali (VDI).
Pass-through della GPU e partizionamento della GPU (GPU-P)
Hyper-V offre due approcci per assegnare risorse GPU alle macchine virtuali:
- Assegnazione diretta del dispositivo (DDA) assegna un’intera GPU fisica in esclusiva a una singola VM. La VM ottiene accesso completo all’hardware e prestazioni massime, ma nessun’altra VM può usare quella GPU. DDA è disponibile in Windows Server 2016 e versioni successive (edizioni Datacenter). Le VM basate su DDA non possono essere migrate in tempo reale.
- Il partizionamento della GPU (GPU-P) suddivide una singola GPU fisica in più porzioni isolate usando SR-IOV, consentendo a diverse VM di condividere lo stesso hardware. Ogni VM riceve una porzione dedicata delle risorse GPU (memoria, unità di calcolo ed encoder), con isolamento imposto dall’hardware. GPU-P è disponibile come funzione aziendale completamente supportata in Windows Server 2025 e può essere utilizzato anche nelle versioni client di Windows 10/11 tramite PowerShell.
DDA è preferibile quando un carico di lavoro necessita dell’intera GPU o quando l’hardware non supporta il partizionamento. GPU-P è più adatto agli ambienti in cui più VM necessitano dell’accelerazione GPU senza richiedere il 100% delle risorse della scheda. GPU-P supporta anche la migrazione in tempo reale e il clustering di failover in Windows Server 2025, a differenza di DDA.
Una GPU fisica può operare in modalità DDA o GPU-P, ma non in entrambe contemporaneamente.
Requisiti
Per configurare una VM con pass-through della GPU in un host Hyper-V, è necessario soddisfare determinati requisiti hardware e software. Non tutte le schede video supportano questa funzione.
Requisiti hardware
- La CPU dell’host Hyper-V deve supportare le funzioni di virtualizzazione Intel VT-d o AMD-V. La funzione appropriata deve essere abilitata nelle impostazioni UEFI/BIOS.
- L’unità di gestione della memoria di input/output (IOMMU) deve essere supportata dalla CPU. Questa funzione è necessaria per il pass-through PCI Express, incluso il pass-through della GPU.
- Per il partizionamento della GPU con migrazione in tempo reale in Windows Server 2025, la CPU deve supportare specifiche funzionalità di tracciamento DMA (Direct Memory Access). I processori Intel Sapphire Rapids (o versioni successive) e AMD EPYC Milan (o versioni successive) soddisfano questo requisito.
- Una scheda video con una GPU che supporta tecnologie di virtualizzazione GPU, come NVIDIA GRID o AMD MxGPU (GPU multiutente). Queste tecnologie sono specifiche del fornitore. L’hardware di classe server aumenta le probabilità di successo. I dispositivi meno recenti che utilizzano interrupt PCI (INTx) non sono supportati.
- Per il partizionamento della GPU, la GPU deve supportare SR-IOV (Single Root Input/Output Virtualization). I modelli supportati includono le GPU NVIDIA A2, A10, A16 e A40.
Requisiti software
- Windows Server 2016 o versioni successive per DDA. È consigliato Windows Server 2025 Datacenter per il partizionamento della GPU con supporto per il clustering e la migrazione in tempo reale.
- Windows 10 (build 1903 o versioni successive) o Windows 11 per il partizionamento della GPU nei sistemi client. DDA non è supportato nelle versioni client di Windows.
- Il ruolo Hyper-V deve essere abilitato in Windows.
- I driver GPU più recenti devono essere installati nell’host Hyper-V e nel sistema operativo guest della VM.
- Solo le VM Hyper-V di seconda generazione possono essere utilizzate per il pass-through della GPU con DDA.
Limitazioni e configurazioni non supportate
Tenere presente che le seguenti configurazioni non sono supportate quando si utilizza il pass-through della GPU:
- Le VM con la Memoria dinamica di Hyper-V abilitata non possono utilizzare il pass-through della GPU. È necessario disabilitare la memoria dinamica prima di assegnare una GPU.
- Il passthrough della GPU con DDA è disponibile solo nelle edizioni Datacenter di Windows Server. Anche il partizionamento della GPU in ambienti cluster richiede l’edizione Datacenter.
- Se il sottosistema Windows per Linux è distribuito sull’host Hyper-V, può verificarsi un errore codice 43 sulla VM quando viene assegnata una GPU tramite partizionamento.
- Nelle versioni precedenti a Windows Server 2025, le funzioni di clustering quali l’alta disponibilità (HA) e la migrazione live delle VM non sono supportate per le VM con GPU abilitata. Windows Server 2025 aggiunge il supporto per la migrazione live per le VM GPU-P e per il failover con failover per le VM DDA.
- Il salvataggio/ripristino delle VM e i punti di controllo automatici non sono supportati per le VM a cui è stata assegnata una GPU. Disabilitare i punti di controllo automatici prima di assegnare una GPU.
Configurazione del passthrough della GPU: cosa occorre sapere
Il metodo utilizzato per assegnare una GPU a una VM Hyper-V dipende dalla versione di Windows e dal livello di condivisione hardware richiesto. Nel corso del tempo Microsoft ha offerto tre approcci, ma solo due sono ancora supportati.
vGPU RemoteFX (obsoleto). Disponibile da Windows Server 2012 R2 fino a Windows Server 2016, RemoteFX estendeva il Remote Desktop Protocol (RDP) per condividere una singola GPU dell’host tra più VM. Era utile in ambienti VDI ad alta densità in cui dedicare una scheda completa a ciascuna VM non era pratico. Tuttavia, RemoteFX limitava la memoria video dedicata a 1 GB per VM e limitava la frequenza dei fotogrammi a 30 FPS. Microsoft lo ha deprecato in Windows Server 2019 e nella build 1809 di Windows 10 a causa di vulnerabilità di sicurezza architetturali nell’implementazione di Microsoft Hyper-V, e l’ho eliminato completamente in Windows Server 2025. Se si utilizza ancora una versione fornita con RemoteFX, è disponibile un aggiornamento dedicato per rimuovere il componente.
Direct Device Assignment (DDA). Introdotto in Windows Server 2016, il DDA ha sostituito RemoteFX per gli scenari obbligatori che richiedono le prestazioni complete della GPU. Esso trasferisce un intero dispositivo PCIe (GPU, unità NVMe o altro adattatore) direttamente a una singola VM, senza condivisione né livello di emulazione. La macchina virtuale carica il driver nativo del vendor e ottiene accesso illimitato alla memoria video e alla frequenza dei fotogrammi. Il DDA è l’equivalente in Hyper-V del passthrough PCI di VMware. Il compromesso riguarda la flessibilità: solo una macchina virtuale può utilizzare la scheda, la macchina virtuale non può essere sottoposta a migrazione live (è vincolata a un percorso PCIe fisico sull’host) e il DDA è disponibile solo sulle edizioni Datacenter di Windows Server. In Windows Server 2025, le VM basate su DDA hanno ottenuto il supporto per il clustering di failover: il cluster può riavviare la VM su un altro nodo se è disponibile una GPU compatibile, ma la migrazione in tempo reale non è supportata.
Partizionamento della GPU (GPU-P). GPU-P è il successore moderno di RemoteFX. In Windows Server 2025, suddivide una singola GPU fisica in più frazioni isolate tramite SR-IOV, assegnando a ogni VM una porzione dedicata di risorse di calcolo, memoria e codifica, con isolamento garantito dall’hardware. A differenza di DDA, GPU-P supporta la migrazione in tempo reale e il clustering di failover in Windows Server 2025 Datacenter, rendendolo adatto agli ambienti di produzione che richiedono la mobilità delle VM. Nelle versioni client di Windows (Windows 10 build 1903 e successive e Windows 11), GPU-P è disponibile tramite PowerShell, ma si basa sulla paravirtualizzazione WDDM anziché sul vero partizionamento SR-IOV. L’host e il guest devono eseguire la stessa versione del sistema operativo e i driver della GPU devono essere copiati manualmente dall’host al guest.
Le implicazioni pratiche sono semplici: se occorre l’intera GPU per una singola VM su Windows Server, usare DDA. Se più VM necessitano dell’accelerazione GPU o è richiesta la migrazione in tempo reale, usare GPU-P su Windows Server 2025. Nelle versioni client di Windows, GPU-P tramite PowerShell è l’unica modalità supportata.
Configurazione del pass-through della GPU in Hyper-V
Seguire i passaggi riportati di seguito per preparare l’ambiente e configurare il pass-through della GPU in Hyper-V.
Preparazione della configurazione del pass-through della GPU
- Verificare che l’hardware e il software soddisfino i requisiti per la virtualizzazione della GPU.
- Abilitare le funzioni di virtualizzazione Intel VT-d o AMD-V per la CPU nell’UEFI/BIOS dell’host Hyper-V.
- Abilitare IOMMU . La posizione dell’impostazione IOMMU varia in base alla scheda madre e alla versione dell’UEFI/BIOS. In alcuni casi, si trova nella configurazione del North Bridge. IOMMU può essere abilitato anche abilitando Intel VT-d o AMD-V. Verificare la funzione Memory Remap nell’UEFI/BIOS.
È possibile verificare se IOMMU è abilitato su un host Hyper-V con il seguente comando di PowerShell (eseguirlo come amministratore):
(Get-VMHost).IovSupport; (Get-VMHost).IovSupportReasonsTrue = abilitato; Falso = disabilitato.
- Rimuovi tutti i punti di controllo della VM che userà il passthrough GPU.
Per disabilitare i punti di controllo automatici per una VM, esegui:
Set-VM -Name VMName -AutomaticStopAction TurnOff
Passthrough GPU in Windows Server
I passaggi seguenti usano DDA per assegnare una GPU fisica a una VM in Windows Server.
- Imposta il tipo di cache e i limiti dello spazio MMIO (I/O mappato in memoria) per la VM. Esegui questo comando di PowerShell come amministratore:
Set-VM -Name VMName -GuestControlledCacheTypes $True -LowMemoryMappedIoSpace 3Gb -HighMemoryMappedIoSpace 33280MbPuoi anche eseguire tre comandi separati:
Set-VM -GuestControlledCacheTypes $true -VMName YourVMName Set-VM -LowMemoryMappedIoSpace 3Gb -VMName YourVMName Set-VM -HighMemoryMappedIoSpace 33280Mb -VMName YourVMNameQuesti limiti definiscono la finestra di memoria che rende il dispositivo accessibile alla VM. Puoi usare uno script per il profilo della macchina di Microsoft per calcolare i valori MMIO ottimali. I valori corretti variano in base alle diverse schede video. Se all’avvio della VM viene visualizzato un messaggio che indica risorse insufficienti, arrestala e modifica questi valori. Per lo spazio MMIO oltre i 32 bit viene usato il valore 33280 MB (3 GB si applica alla finestra MMIO a 32 bit).
- Individua il percorso di ubicazione PCI Express della scheda grafica di cui vuoi eseguire il passthrough.
Puoi trovare queste informazioni in Gestione dispositivi. Apri Gestione dispositivi eseguendo il comando seguente:
Devmgmt.mscIn Gestione dispositivi:
- Fai clic con il pulsante destro del mouse sulla scheda video di destinazione in Schede video e fai clic su Proprietà .
- Seleziona la scheda Dettagli .
- Seleziona Percorsi di ubicazione dal menu a discesa delle proprietà e copia il valore.

In alternativa, usa PowerShell per recuperare il percorso di ubicazione:
Get-PnpDevice | Where-Object {$_.Present -eq $true} | Where-Object {$_.Class -eq "Display"}|select Name,InstanceIde:
Get-PnpDevice -Class Display | ForEach-Object { Write-Output "$($_.FriendlyName) has a device id of $($_.DeviceId) and is located at $($_ | Get-PnpDeviceProperty DEVPKEY_Device_LocationPaths | Select-Object -ExpandProperty Data | Where-Object { $_ -like "PCIROOT*" })"; }L’output dovrebbe contenere una stringa simile a:
“PCIROOT(0)#PCI(0300)#PCI(0000)”

- Disabilita la scheda grafica in Gestione dispositivi. Fai clic con il pulsante destro del mouse sulla scheda video e fai clic su Disabilita dispositivo .

- Smonta la scheda video disabilitata in PowerShell:
Dismount-VmHostAssignableDevice -LocationPath "PCIROOT(0)#PCI(0300)#PCI(0000)" -ForceIl flag -Force è obbligatorio se non è installato un driver di partizione. Un vendor del dispositivo potrebbe fornire questo driver facoltativo di mitigazione della sicurezza. Se prevedi di installarlo, fallo prima di smontare il dispositivo PCIe dall’host.
Il percorso di ubicazione usato sopra è puramente illustrativo; sostituiscilo con il valore specifico.
- Assegna la scheda video alla VM:
Add-VMAssignableDevice -VMName VMName -LocationPath "PCIROOT(0)#PCI(0300)#PCI(0000)" - Accendi la VM e verifica che la scheda video fisica venga visualizzata in Gestione dispositivi accanto all’adattatore video Microsoft Hyper-V predefinito.
- Installa i driver della scheda video nel sistema operativo guest della VM. Scarica i driver dal sito web ufficiale di NVIDIA o AMD.
- Per scollegare la scheda video dalla VM, arresta la VM ed esegui:
Remove-VMAssignableDevice -VMName YourVMName -LocationPath $locationPathQuindi ricollega la GPU all’host Hyper-V:
Mount-VMHostAssignableDevice -LocationPath $locationPath
.
Configurazione in Windows 10 e 11
Nelle versioni client di Windows (Windows 10 build 1903 e successive, Windows 11), DDA non è disponibile. Il metodo supportato è il partizionamento della GPU:
- Verifica se la scheda video supporta il partizionamento della GPU. In Windows 10, esegui:
Get-VMPartitionableGpuIn Windows 11 :
Get-VMHostPartitionableGpu - Usa il cmdlet
Add-VMGpuPartitionAdapterper assegnare una partizione GPU alla VM. Tuttavia, devi copiare i driver della GPU dall’host Hyper-V alla macchina virtuale. La versione del driver sull’host e sul guest deve corrispondere. Lo script Easy-GPU-PV può automatizzare questo processo. Scarica lo script come file ZIP ed estrailo in una cartella sull’host Hyper-V. Questo script sfrutta i meccanismi di paravirtualizzazione della GPU utilizzati dal Sottosistema Windows per Linux (WSL2) e da Windows Sandbox. - Apri PowerShell come amministratore e consenti l’esecuzione degli script:
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass -Force Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser - Arresta la VM. Esegui lo script per copiare i driver della GPU dall’host alla VM:
.\Update-VMGpuPartitionDriver.ps1 -VMName YourVMName -GPUName "AUTO" - Configura la VM per il partizionamento della GPU:
Set-VM -VMName VMName -GuestControlledCacheTypes $true -LowMemoryMappedIoSpace 1Gb -HighMemoryMappedIoSpace 32Gb Add-VMGpuPartitionAdapter -VMName YourVMName - Dopo aver aggiornato i driver della GPU sull’host Hyper-V, aggiorna anche i driver nella VM. La VM deve essere spenta:
.\Update-VMGpuPartitionDriver.ps1 -VMName YourVMName -GPUName "AUTO" - Per rimuovere la partizione GPU dalla VM:
Remove-VMGpuPartitionAdapter -VMName "YourVMName"Dopo aver completato correttamente la configurazione, nella VM dovrebbe comparire la scheda video corrispondente in Gestione dispositivi . Vedrai anche effetti visivi, come la trasparenza del desktop nel tema di Windows del guest.
Tieni presente che alcuni giochi e applicazioni potrebbero non funzionare anche dopo aver completato la configurazione del passthrough della GPU. Questo può accadere quando un’applicazione impone un controllo di compatibilità hardware e le informazioni sulla GPU riportate dal sistema operativo guest differiscono da quelle dell’host. Alcune applicazioni rilevano inoltre di essere in esecuzione all’interno di una VM.
Se le applicazioni che dipendono da OpenGL non funzionano nella VM, potrebbe essere utile installare Pacchetto di compatibilità OpenGL.
Quando si utilizza il partizionamento della GPU in Windows 10 o 11, la scheda video elencata in Gestione dispositivi mostra un driver Microsoft anziché il modello della GPU fisica. Nella VM non sono disponibili gli strumenti specifici del produttore, come il Pannello di controllo NVIDIA.
Potrebbe verificarsi un altro problema se chiudi una sessione RDP senza prima disconnetterti. In questo caso, la VM potrebbe perdere l’accesso alla memoria della GPU e le applicazioni che dipendono dalla GPU segnaleranno che la memoria video è inaccessibile. Riconnettersi tramite RDP non risolve il problema; è necessario riavviare le applicazioni interessate.
Risoluzione dei problemi relativi al passthrough della GPU
Se la scheda video non funziona correttamente dopo essere stata assegnata a una VM, verifica quanto segue:
- Verifica che siano installati i driver GPU più recenti e che non vi siano errori relativi ai driver. Apri Gestione dispositivi e controlla lo stato del dispositivo. Installa i driver dal sito web del vendor (NVIDIA, AMD, Intel) invece di affidarti a Windows Update.
- Assicurati che sia stato allocato spazio MMIO sufficiente per la VM.
- Verifica che il passthrough della GPU sia ufficialmente supportato dal vendor per la tua specifica scheda grafica. Non tutte le schede video di fascia consumer supportano questa funzione. Alcuni vendor limitano il passthrough della GPU ai modelli di fascia alta.
- Verifica che l’applicazione in esecuzione all’interno della VM supporti la scheda video e i relativi driver.
- Abilita il seguente criterio di gruppo per consentire l’utilizzo della GPU tramite Desktop remoto:
Computer ConfigurationTemplatesComponentsDesktop ServicesDesktop Session HostSession Environmenthardware graphics adapters for all Remote Desktop Services sessionsImposta questo valore su Abilitato .
- Se viene visualizzato un errore come “Operazione non riuscita perché l’oggetto non è stato trovato” o Errore 12 , aggiungi le seguenti chiavi del Registro di sistema a:
HKEY_LOCAL_MACHINESOFTWAREPoliciesMicrosoftWindowsHyperV
Valori:
RequireSecureDeviceAssignment = 0 (REG_DWORD)
RequireSupportedDeviceAssignment = 0 (REG_DWORD)
Puoi impostare questi valori con PowerShell:
Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\HyperV" -Name "RequireSecureDeviceAssignment" -Type DWORD -Value 0 -Force Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\HyperV" -Name "RequireSupportedDeviceAssignment" -Type DWORD -Value 0 -Force
- Per ignorare i controlli del driver dell’hypervisor all’interno della VM, usa Kit driver Windows per Enterprise (WDK):
- Monta l’ISO del WDK nell’unità DVD virtuale della VM.
- Esegui E:LaunchBuildEnv.cmd (dove E: è l’unità DVD virtuale), quindi avvia PowerShell .
- Passa alla directory contenente lo script Remove-HypervisorChecks.ps1 .
- Esegui il comando per rimuovere i controlli dell’hypervisor per il driver video (esempio NVIDIA):
./Remove-HypervisorChecks.ps1 -Nvidia -DriverPath "C:\path-to-driver\package.exe" - Attendi il completamento dell’esecuzione dello script.
- Copia il driver risultante (patched-driver.zip) nella VM, abilita la modalità test e installa il driver.
- Se viene visualizzato Errore 43 , assicurati che la GPU e il relativo controller audio (le schede NVIDIA spesso includono un dispositivo audio) siano assegnati insieme alla VM.
- Se viene visualizzato un errore durante l’esecuzione di:
Update-VMGpuPartitionDriver.ps1 -VMName “YourVMName” -GPUName “AUTO”La causa potrebbe essere la presenza di più partizioni (volumi) sul disco rigido virtuale. Prova a impostare l’attributo hidden sulle partizioni non di sistema oppure a rimuoverle temporaneamente dopo aver eseguito il backup dei dati. In alternativa, specifica esplicitamente la partizione di sistema nello script o nel comando di PowerShell.
Considerazioni sul backup e sul ripristino delle VM con GPU
I flussi di lavoro standard di backup di Hyper-V presuppongono che una VM sia portatile: è possibile ripristinarla su qualsiasi host compatibile e avviarla. Le VM con GPU invalidano questa ipotesi. Che venga assegnata tramite DDA o GPU-P, la VM è associata a hardware fisico che potrebbe non essere presente o non essere configurato nello stesso modo nella destinazione di ripristino. Il backup è quindi semplice, ma il ripristino dipende dalla disponibilità dell’hardware.
La GPU introduce anche una considerazione relativa alla coerenza dei dati. Il software di backup acquisisce lo stato del disco, ma non può creare uno snapshot del contenuto della RAM video della GPU. Per le VM che eseguono carichi di lavoro GPU intensivi, ciò significa che il backup rispecchia una vista offline o coerente con lo stato al momento del crash dello stato dell’hardware, anche quando i dati sul disco sono coerenti a livello applicativo. Per ridurre al minimo questa discrepanza, usa punti di controllo di produzione con Servizio Copia ombra del volume (VSS) oppure uno strumento di backup compatibile con VSS, che assicura che i dati trasferiti dalla memoria della GPU al disco vengano acquisiti in uno stato coerente.
La scelta tra backup a livello di host e a livello di guest è meno ovvia per le VM con GPU rispetto a quelle standard:
- Il backup a livello di host acquisisce i file VHDX e la configurazione della VM. È l’approccio standard, ma dopo il ripristino richiede la rimappatura manuale della GPU.
- Il backup a livello di guest richiede l’installazione di un agente di backup all’interno della VM. Questo approccio è spesso più pratico per i carichi di lavoro GPU, perché tratta la VM come un server standard, evitando la complessità del passthrough della GPU durante l’acquisizione dei dati.
Nelle configurazioni DDA con passthrough esclusivo, la VM è associata a uno specifico percorso PCI Express dell’host. Se ripristini una VM abilitata per DDA su un host diverso, è probabile che la VM non si avvii, perché il percorso PCIe originale (ad esempio PciRoot(0x0)/Pci(0x3,0x0)…) potrebbe non esistere o potrebbe essere assegnato a un dispositivo diverso.
Per risolvere una mancata corrispondenza hardware dopo il ripristino:
- Rimuovi il dispositivo GPU mancante dalla configurazione della VM.
- Smonta una GPU compatibile sul nuovo host.
- Riassegna la nuova GPU alla VM ripristinata usando PowerShell.
Con il partizionamento della GPU in Windows Server 2025 e Windows 11, la configurazione è più flessibile, ma introduce considerazioni specifiche per il ripristino. GPU-P richiede che le versioni dei driver GPU dell’host e del guest siano corrispondenti. Se si ripristina una macchina virtuale su un host che esegue una versione diversa del driver, l’accelerazione GPU potrebbe non inizializzarsi.
Durante il ripristino (in particolare in un Cluster di failover Hyper-V), l’host di destinazione deve disporre di una capacità di partizionamento della GPU sufficiente. Se la GPU dell’host è già completamente partizionata tra altre VM in esecuzione, la VM ripristinata non si avvierà o ricorrerà al rendering software.
Windows Server 2025 migliora la mobilità delle VM con supporto GPU. Le VM GPU-P supportano la migrazione live in configurazioni cluster e standalone. In uno scenario di failover, il cluster può riavviare la VM su un altro nodo, a condizione che sul nodo di destinazione sia configurata una GPU compatibile per DDA o GPU-P.
Seguire queste raccomandazioni per il backup e il ripristino delle VM con GPU:
- Documentare i percorsi PCI e registrare i comandi PowerShell utilizzati per assegnare la GPU. Disporre di uno script già pronto riduce i tempi di inattività durante il ripristino su un host diverso.
- Standardizzare l’hardware utilizzando modelli di GPU e versioni di driver identici su tutti i nodi del cluster. Ciò garantisce che una VM ripristinata si trovi nello stesso ambiente hardware indipendentemente dall’host su cui viene avviata.
- Eseguire regolarmente test di ripristino delle VM con GPU abilitata su host diversi per verificare che il team di ripristino sia in grado di rimappare i dispositivi PCI.
- Creare uno script post-ripristino che rilevi le GPU disponibili e le assegni automaticamente alla VM ripristinata.
Conclusione
L’utilizzo di una VM con passthrough della GPU su un host Hyper-V può rappresentare la soluzione ottimale per determinati carichi di lavoro, ma le limitazioni richiedono un’attenta pianificazione. Per il passthrough di GPU discrete basato su DDA, si raccomandano generalmente hardware di classe server e Windows Server. Verificare la compatibilità software e hardware prima di avviare la configurazione. Eseguire backup regolari delle VM Hyper-V per proteggersi dalla perdita di dati nel caso in cui qualcosa vada storto durante la configurazione della GPU o il funzionamento in corso.
Domande frequenti
Come si abilita il passthrough della GPU in Hyper-V?
Per abilitare il passthrough della GPU Hyper-V, disabilitare i punti di controllo automatici e la Memoria dinamica per la VM. In Gestione dispositivi o PowerShell, individuare il percorso di ubicazione PCI Express della GPU di destinazione. Disabilitare la GPU sull'host, smontarla utilizzando il cmdlet Dismount-VmHostAssignableDevice e quindi assegnarla alla VM con Add-VMAssignableDevice . Nelle versioni client di Windows (Windows 10 e 11), utilizzare invece il partizionamento della GPU tramite il cmdlet Add-VMGpuPartitionAdapter .
.Che cos’è il passthrough della GPU in Hyper-V?
Il passthrough della GPU è una funzione di Hyper-V che consente di assegnare direttamente una scheda video fisica a una VM. La VM utilizza la GPU hardware senza emulazione, garantendo prestazioni notevolmente migliori per i carichi di lavoro ad alta intensità grafica e di calcolo rispetto alla scheda video emulata predefinita. Hyper-V supporta due metodi: l’assegnazione diretta del dispositivo (DDA), che assegna l’intera GPU a una singola VM, e il partizionamento della GPU (GPU-P), che consente a più VM di condividere una singola GPU.
Quali sono i requisiti per il passthrough della GPU in Hyper-V?
Il passthrough della GPU richiede una GPU PCIe discreta di NVIDIA o AMD che offra supporto per tecnologie di virtualizzazione della GPU quali NVIDIA GRID o AMD MxGPU. La CPU deve supportare IOMMU (Intel VT-d o AMD-Vi) e questa funzione deve essere abilitata in UEFI/BIOS. È necessario installare i driver GPU più recenti sia sull’host Hyper-V che sulla VM ospite. Per il DDA è necessario almeno Windows Server 2016, mentre per il partizionamento della GPU è necessario Windows 10 (build 1903 o successive), con il ruolo Hyper-V abilitato. Per il DDA sono supportate solo le VM di seconda generazione.
Quali sono i limiti del passthrough della GPU in Hyper-V?
Le VM che utilizzano il passthrough della GPU con Hyper-V non possono utilizzare la memoria dinamica né i punti di controllo automatici. La DDA è limitata alle edizioni Datacenter di Windows Server e assegna una GPU per ogni VM, senza supporto per la migrazione live. Il partizionamento della GPU richiede versioni dei driver corrispondenti tra il sistema operativo host e quello guest. Nelle versioni di Windows Server precedenti al 2025, il clustering di failover e la migrazione live non sono disponibili per le VM con GPU abilitata. Il sottosistema Windows per Linux sull’host può causare l’errore 43 nella VM.
Come posso risolvere i problemi relativi al passthrough della GPU in Hyper-V?
Inizia verificando che i driver GPU corretti siano installati dal sito web del vendor (non tramite Windows Update). Assicurati che la Memoria dinamica e i punti di controllo automatici siano disabilitati per la VM. Verifica che sia stato allocato spazio MMIO sufficiente. Se visualizzi l'Errore 43, conferma che la GPU e il relativo controller audio siano assegnati insieme e prova a disabilitare WSL2 sull'host. Per l'Errore 12 o gli errori «oggetto non trovato», imposta su 0 i valori del Registro di sistema RequireSecureDeviceAssignment e RequireSupportedDeviceAssignment in HKLM.