Distribuire dispositivi grafici con RemoteFX vGPU

Si applica a: Windows Server 2022, Windows Server 2019, Windows Server 2016, Microsoft Hyper-V Server 2016

Nota

A causa di problemi di sicurezza, RemoteFX vGPU è disabilitato per impostazione predefinita in tutte le versioni di Windows a partire dal 14 luglio 2020 Security Update e rimosso a partire dall'aggiornamento della sicurezza del 13 aprile 2021. Per altre informazioni, vedere KB 4570006.

La funzionalità vGPU per RemoteFX consente a più macchine virtuali di condividere una GPU fisica. Il rendering e le risorse di calcolo vengono condivise dinamicamente tra le macchine virtuali, rendendo la vGPU RemoteFX appropriata per carichi di lavoro con burst elevato in cui non sono necessarie risorse GPU dedicate. Ad esempio, in un servizio VDI è possibile usare RemoteFX vGPU per eseguire l'offload dei costi di rendering delle app nella GPU, con l'effetto di ridurre il carico della CPU e migliorare la scalabilità del servizio.

Requisiti di RemoteFX vGPU

Requisiti di sistema host:

  • Windows Server 2016
  • GPU compatibile con DirectX 11.0 con un driver compatibile con WDDM 1.2
  • Cpu con supporto SLAT (Second Level Address Translation)

Requisiti per le VM guest:

  • Sistema operativo guest supportato. Per altre informazioni, vedere Supporto di RemoteFX 3D Video Adapter (vGPU).

Considerazioni aggiuntive per le VM guest:

  • La funzionalità OpenGL e OpenCL è disponibile solo nei guest che eseguono Windows 10 o Windows Server 2016.
  • DirectX 11.0 è disponibile solo per gli utenti guest che eseguono Windows 8 o versione successiva.

Abilitare remoteFX vGPU

Per configurare la vGPU RemoteFX nell'host di Windows Server 2016:

  1. Installare i driver di grafica consigliati dal fornitore della GPU per Windows Server 2016.
  2. Creare una macchina virtuale che esegue un sistema operativo guest supportato da RemoteFX vGPU. Per altre informazioni, vedere Supporto di RemoteFX 3D Video Adapter (vGPU).
  3. Aggiungere la scheda grafica 3D RemoteFX alla macchina virtuale. Per altre informazioni, vedere Configurare la scheda 3D vGPU RemoteFX.

Per impostazione predefinita, RemoteFX vGPU userà tutte le GPU disponibili e supportate. Per limitare le GPU usate dalla vGPU RemoteFX, seguire questa procedura:

  1. Passare alle impostazioni di Hyper-V nella Hyper-V Manager.
  2. Selezionare GPU fisiche in Impostazioni Hyper-V.
  3. Seleziona la GPU che non si vuole usare e quindi deseleziona Utilizza questa GPU con RemoteFX.

Configurare la scheda 3D RemoteFX vGPU

È possibile usare i comandi cmdlet di PowerShell o dell'interfaccia utente della Hyper-V Manager per configurare la scheda grafica 3D RemoteFX vGPU.

Configurare vGPU RemoteFX con la console di gestione di Hyper-V

  1. Arrestare la macchina virtuale se è attualmente in esecuzione.

  2. Aprire Console di gestione di Hyper-V, passare alla Impostazioni della macchina virtuale e quindi selezionare Aggiungi hardware.

  3. Selezionare RemoteFX 3D Graphics Adapter (Scheda grafica 3D RemoteFX) e quindi selezionare Aggiungi.

  4. Impostare il limite massimo di monitor, risoluzione del monitor e memoria video dedicata oppure lasciare i valori predefiniti.

    Nota

    • L'impostazione di valori più elevati per una di queste opzioni influirà sulla scalabilità dei servizi, pertanto è consigliabile impostare solo gli elementi necessari.
    • Quando è necessario usare 1 GB di VRAM dedicato, usare una macchina virtuale guest a 64 bit anziché a 32 bit (x86) per ottenere risultati ottimali.
  5. Selezionare OK per completare la configurazione.

Configurare remoteFX vGPU con i cmdlet di PowerShell

Usare i cmdlet di PowerShell seguenti per aggiungere, esaminare e configurare l'adapter:

Monitorare le prestazioni

Le prestazioni e la scalabilità di un servizio abilitato per RemoteFX vGPU sono determinate da diversi fattori, ad esempio il numero di GPU nel sistema, la memoria GPU totale, la quantità di memoria di sistema e la velocità di memoria, il numero di core CPU e la frequenza di clock della CPU, la velocità di archiviazione e l'implementazione NUMA.

Memoria del sistema host

Per ogni macchina virtuale abilitata con una vGPU, RemoteFX usa la memoria di sistema sia nel sistema operativo guest che nel server host. L'hypervisor garantisce la disponibilità della memoria di sistema per un sistema operativo guest. Nell'host, ogni desktop virtuale abilitato per vGPU deve annunciare il requisito di memoria di sistema per l'hypervisor. All'avvio del desktop virtuale abilitato per vGPU, l'hypervisor riserva ulteriore memoria di sistema nell'host.

Il requisito di memoria per il server abilitato per RemoteFX è dinamico perché la quantità di memoria utilizzata nel server abilitato per RemoteFX dipende dal numero di monitor associati ai desktop virtuali abilitati per vGPU e alla risoluzione massima per tali monitoraggi.

Memoria video gpu host

Ogni desktop virtuale abilitato per vGPU usa la memoria video hardware GPU nel server host per eseguire il rendering del desktop. Inoltre, un codec usa la memoria video per comprimere la schermata sottoposta a rendering. La quantità di memoria necessaria per il rendering e la compressione si basa direttamente sul numero di monitoraggi di cui è stato effettuato il provisioning nella macchina virtuale. La quantità di memoria video riservata varia in base alla risoluzione dello schermo di sistema e al numero di monitor presenti. Alcuni utenti richiedono una risoluzione dello schermo superiore per attività specifiche, ma è disponibile una maggiore scalabilità con impostazioni di risoluzione inferiori se tutte le altre impostazioni rimangono costanti.

Host CPU

L'hypervisor pianifica l'host e le macchine virtuali nella CPU. L'overhead è aumentato in un host abilitato per RemoteFX perché il sistema esegue un processo aggiuntivo (rdvgm.exe) per ogni desktop virtuale abilitato per vGPU. Questo processo usa il driver di dispositivo grafico per eseguire i comandi nella GPU. Il codec usa anche la CPU per comprimere i dati dello schermo che devono essere inviati al client.

Più processori virtuali indicano un'esperienza utente migliore. È consigliabile allocare almeno due CPU virtuali per ogni desktop virtuale abilitato per vGPU. È anche consigliabile usare l'architettura x64 per desktop virtuali abilitati per vGPU perché le prestazioni nelle macchine virtuali x64 sono migliori rispetto alle macchine virtuali x86.

Potenza di elaborazione GPU

Ogni desktop virtuale abilitato per vGPU ha un processo DirectX corrispondente eseguito nel server host. Questo processo riproduce tutti i comandi grafici ricevuti dal desktop virtuale RemoteFX nella GPU fisica. Questa operazione è simile all'esecuzione di più applicazioni DirectX contemporaneamente nella stessa GPU fisica.

In genere, i dispositivi grafici e i driver sono ottimizzati per eseguire solo alcune applicazioni sul desktop alla volta, ma RemoteFX estende le GPU per andare ancora oltre. Le vGPU sono dotate di contatori delle prestazioni che misurano la risposta GPU alle richieste RemoteFX e consentono di assicurarsi che le GPU non siano troppo estese.

Quando una GPU è insufficiente per le risorse, il completamento delle operazioni di lettura e scrittura richiede molto tempo. Amministrazione istrator possono usare contatori delle prestazioni per sapere quando modificare le risorse e prevenire tempi di inattività per gli utenti.

Altre informazioni sui contatori delle prestazioni per il monitoraggio del comportamento della vGPU RemoteFX sono disponibili in Diagnosticare i problemi di prestazioni grafiche in Desktop remoto.