Condividi tramite


Preparare le GPU per Azure locale (anteprima)

Si applica a: Locale di Azure 2311.2 e versioni successive

Questo articolo descrive come preparare le unità di elaborazione grafica (GPU) nell'istanza locale di Azure per carichi di lavoro a elevato utilizzo di calcolo in esecuzione in macchine virtuali Arc e il servizio Azure Kubernetes abilitato da Azure Arc. Le GPU vengono usate per carichi di lavoro a elevato utilizzo di calcolo, ad esempio Machine Learning e Deep Learning.

Importante

La funzionalità è attualmente disponibile in ANTEPRIMA. Vedere le condizioni per l'utilizzo supplementari per le anteprime di Microsoft Azure per termini legali aggiuntivi che si applicano a funzionalità di Azure in versione beta, in anteprima o in altro modo non ancora disponibili a livello generale.

Collegamento di GPU in Locale di Azure

È possibile collegare le GPU in uno dei due modi seguenti:

  • Assegnazione di dispositivi discreti : consente di dedicare una GPU fisica al carico di lavoro. In una distribuzione DDA, i carichi di lavoro virtualizzati vengono eseguiti nel driver nativo e in genere hanno accesso completo alle funzionalità della GPU. DDA offre il massimo livello di compatibilità delle app e potenziali prestazioni.

  • Partizionamento GPU (GPU-P): consente di condividere una GPU con più carichi di lavoro suddividendo la GPU in partizioni frazionarie dedicate.

Considerare le funzionalità seguenti e le differenze di supporto tra le due opzioni dell'uso delle GPU:

Descrizione Assegnazione di dispositivi discreti Partizionamento GPU
Modello di risorsa GPU Intero dispositivo Dispositivo partizionato equamente
Densità di macchine virtuali Bassa (da una GPU a una macchina virtuale) Elevato (da una GPU a molte macchine virtuali)
Compatibilità delle app Tutte le funzionalità della GPU offerte dal fornitore (DX 12, OpenGL, CUDA) Tutte le funzionalità della GPU offerte dal fornitore (DX 12, OpenGL, CUDA)
VRAM della GPU Fino a livello di VRAM supportata dalla GPU Fino a livello di VRAM supportata dalla GPU per partizione
Driver GPU nel guest Driver del fornitore GPU (NVIDIA) Driver del fornitore GPU (NVIDIA)

Modelli GPU supportati

Per visualizzare l'elenco completo delle soluzioni supportate e delle GPU disponibili, vedere Soluzioni locali di Azure e selezionare Supporto GPU nel menu a sinistra per le opzioni.

NVIDIA supporta i carichi di lavoro separatamente con il software GPU virtuale. Per altre informazioni, vedere GPU NVIDIA supportate in Microsoft Azure e Piattaforme server convalidate.

Per i carichi di lavoro del servizio Azure Kubernetes, vedere GPU per il servizio Azure Kubernetes per Arc.

I modelli GPU seguenti sono supportati usando sia DDA che GPU-P per carichi di lavoro di macchine virtuali Arc:

  • NVIDIA A2
  • NVIDIA A16

Questi modelli GPU aggiuntivi sono supportati usando GPU-P (solo) per i carichi di lavoro di macchine virtuali Arc:

  • NVIDIA A10
  • NVIDIA A40
  • NVIDIA L4
  • NVIDIA L40
  • NVIDIA L40S

Requisiti dell'host

L'host locale di Azure deve soddisfare i requisiti seguenti:

  • Il sistema deve supportare una soluzione locale di Azure con supporto GPU. Per esplorare le opzioni, vedere catalogo locale di Azure.

  • Si ha accesso ad Azure Locale, versione 23H2.

  • È necessario creare una configurazione omogenea per le GPU in tutti i computer del sistema. Una configurazione omogenea consiste nell'installare lo stesso make e modello di GPU.

  • Per GPU-P, assicurarsi che il supporto della virtualizzazione e SR-IOV siano abilitati nel BIOS di ogni computer nel sistema. Contattare il fornitore dell'hardware se non è possibile identificare l'impostazione corretta nel BIOS.

Preparare i driver GPU in ogni host

Il processo di preparazione e installazione dei driver GPU per ogni computer è leggermente diverso tra DDA e GPU-P. Seguire il processo applicabile per la situazione.

Trovare GPU in ogni host

Verificare prima di tutto che non sia installato alcun driver per ogni computer. Se è installato un driver host, disinstallare il driver host e riavviare il computer.

Dopo aver disinstallato il driver host o se non è stato installato alcun driver, eseguire PowerShell come amministratore con il comando seguente:

Get-PnpDevice -Status Error | fl FriendlyName, ClusterId

I dispositivi GPU verranno visualizzati in uno stato di errore, come 3D Video Controller illustrato nell'output di esempio che elenca il nome descrittivo e l'ID istanza della GPU:

[ASRR1N26R02U46A]: PS C:\Users\HCIDeploymentUser\Documents> Get-PnpDevice - Status Error

Status		Class			FriendlyName
------		-----			------------
Error					SD Host Controller
Error					3D Video Controller
Error					3D Video Controller
Error		USB			Unknown USB Device (Device Descriptor Request Failed)

[ASRR1N26R02U46A]: PS C:\Users\HCIDeploymentUser\Documents> Get-PnpDevice - Status Error | f1 InstanceId

InstanceId : PCI\VEN_8086&DEV_18DB&SUBSYS_7208086REV_11\3&11583659&0&E0

InstanceId : PCI\VEN_10DE&DEV_25B6&SUBSYS_157E10DE&REV_A1\4&23AD3A43&0&0010

InstanceId : PCI\VEN_10DE&DEV_25B6&SUBSYS_157E10DE&REV_A1\4&17F8422A&0&0010

InstanceId : USB\VID_0000&PID_0002\S&E492A46&0&2

Uso di DDA

Seguire questo processo se si usa DDA:

1. Disabilitare e smontare le GPU dall'host

Per DDA, quando si disinstalla il driver host o si dispone di una nuova configurazione locale di Azure, la GPU fisica entra in uno stato di errore. Per continuare, è necessario smontare tutti i dispositivi GPU. È possibile usare Gestione dispositivi o PowerShell per disabilitare e smontare la GPU usando l'oggetto ClusterID ottenuto nel passaggio precedente.

$id1 = "GPU_instance_ID"
Disable-PnpDevice -ClusterId $id1 -Confirm:$false
Dismount-VMHostAssignableDevice -ClusterPath $id1 -Force

Verificare che le GPU siano state smontate correttamente dal computer host. Le GPU saranno ora in Unknown uno stato:

Get-PnpDevice -Status Unknown | fl FriendlyName, ClusterId

Ripetere questo processo per ogni computer del sistema per preparare le GPU.

2. Scaricare e installare il driver di mitigazione

Il software potrebbe includere componenti sviluppati e di proprietà di NVIDIA Corporation o dei suoi licenze. L'uso di questi componenti è disciplinato dal contratto di licenza dell'utente finale NVIDIA.

Vedere la documentazione NVIDIA per scaricare il driver di mitigazione NVIDIA applicabile. Dopo aver scaricato il driver, espandere l'archivio e installare il driver di mitigazione in ogni computer host. Usare lo script di PowerShell seguente per scaricare il driver di mitigazione ed estrarlo:

Invoke-WebRequest -Uri "https://docs.nvidia.com/datacenter/tesla/gpu-passthrough/nvidia_azure_stack_inf_v2022.10.13_public.zip" -OutFile "nvidia_azure_stack_inf_v2022.10.13_public.zip"
mkdir nvidia-mitigation-driver
Expand-Archive .\nvidia_azure_stack_inf_v2022.10.13_public.zip .\nvidia-mitigation-driver

Dopo aver estratto i file del driver di mitigazione, trovare la versione per il modello corretto della GPU e installarla. Ad esempio, se si installa un driver di mitigazione NVIDIA A2, eseguire quanto segue:

pnputil /add-driver nvidia_azure_stack_A2_base.inf /install /force

Per confermare l'installazione di questi driver, eseguire:

pnputil /enum-devices OR pnputil /scan-devices

Dovrebbe essere possibile visualizzare le GPU identificate correttamente in Get-PnpDevice:

Get-PnpDevice -Class Display | fl FriendlyName, ClusterId

Ripetere i passaggi precedenti per ogni host nell'istanza locale di Azure.

Uso di GPU-P

Seguire questo processo se si usa GPU-P:

Scaricare e installare il driver host

GPU-P richiede driver a livello di host diversi da DDA. Per le GPU NVIDIA, è necessario un driver di grafica software NVIDIA vGPU in ogni host e in ogni macchina virtuale che userà GPU-P. Per altre informazioni, vedere la versione più recente della documentazione di NVIDIA vGPU e i dettagli sulle licenze nella Guida per l'utente delle licenze client.

Dopo aver identificato le GPU come 3D Video Controller nel computer host, scaricare il driver vGPU host. Tramite la licenza NVIDIA GRID, si dovrebbe essere in grado di ottenere il driver host appropriato .zip file.

Sarà necessario ottenere e spostare la cartella seguente nel computer host: \vGPU_<Your_vGPU_version>_GA_Azure_Stack_HCI_Host_Drivers

Passare a \vGPU_<Your_vGPU_version>_GA_Azure_Stack_HCI_Host_Drivers\Display.Driver e installare il driver.

pnputil /add-driver .\nvgridswhci.inf /install /force

Per confermare l'installazione di questi driver, eseguire:

pnputil /enum-devices

Dovrebbe essere possibile visualizzare le GPU identificate correttamente in Get-PnpDevice:

Get-PnpDevice -Class Display | fl FriendlyName, ClusterId

È anche possibile eseguire l'interfaccia nvidia-smi di gestione del sistema NVIDIA per elencare le GPU nel computer host come indicato di seguito:

nvidia-smi

Se il driver è installato correttamente, verrà visualizzato un output simile all'esempio seguente:

Wed Nov 30 15:22:36 2022
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 527.27       Driver Version: 527.27       CUDA Version: N/A      |
|-------------------------------+----------------------+----------------------+
| GPU  Name            TCC/WDDM | Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  NVIDIA A2          WDDM  | 00000000:65:00.0 Off |                    0 |
|  0%   24C    P8     5W /  60W |  15192MiB / 15356MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
|   1  NVIDIA A2          WDDM  | 00000000:66:00.0 Off |                    0 |
|  0%   24C    P8     5W /  60W |  15192MiB / 15356MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
 
+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+

Configurare il numero di partizioni GPU

Seguire questa procedura per configurare il numero di partizioni GPU in PowerShell:

Nota

Quando si usa PowerShell, è necessario assicurarsi che la configurazione della GPU sia omogenea in tutti i computer nell'istanza locale di Azure.

  1. Connettersi al computer il cui numero di partizioni GPU si vuole configurare.

  2. Eseguire il Get-VMHostPartitionableGpu comando e fare riferimento ai valori Name e ValidPartitionCounts .

  3. Eseguire il comando seguente per configurare il numero di partizioni. Sostituire GPU-name con il valore Name e partition-count con uno dei numeri supportati dal valore ValidPartitionCounts:

    Set-VMHostPartitionableGpu -Name "<GPU-name>" -PartitionCount <partition-count>
    

    Ad esempio, il comando seguente configura il numero di partizioni in 4:

    PS C:\Users> Set-VMHostPartitionableGpu -Name "\\?\PCI#VEN_10DE&DEV_25B6&SUBSYS_157E10DE&REV_A1#4&18416dc3&0&0000#{064092b3-625e-43bf-9eb5-dc845897dd59}" -PartitionCount 4
    

    È possibile eseguire di nuovo il comando Get-VMHostPartitionableGpu | FL Name,ValidPartitionCounts,PartitionCount per verificare che il numero di partizioni sia impostato su 4.

    Di seguito è riportato un output di esempio:

    PS C:\Users> Get-VMHostPartitionableGpu | FL Name,ValidPartitionCounts,PartitionCount
    
    Name                    : \\?\PCI#VEN_10DE&DEV_25B6&SUBSYS_157E10DE&REV_A1#4&18416dc3&0&0000#{064092b3-625e-43bf-9eb5-dc845897dd59}
    ValidPartitionCounts    : {16, 8, 4, 2...}
    PartitionCount          : 4
    
    Name                    : \\?\PCI#VEN_10DE&DEV_25B6&SUBSYS_157E10DE&REV_A1#4&5906f5e&0&0010#{064092b3-625e-43bf-9eb5-dc845897dd59}
    ValidPartitionCounts    : {16, 8, 4, 2...}
    PartitionCount          : 4
    
  4. Per mantenere omogenea la configurazione, ripetere i passaggi di configurazione del numero di partizioni in ogni computer del sistema.

Requisiti guest

La gestione GPU è supportata per i carichi di lavoro di macchine virtuali Arc seguenti:

Passaggi successivi