Förbereda GPU:er för Azure Local (förhandsversion)
Gäller för: Azure Local, version 23H2
Den här artikeln beskriver hur du förbereder grafiska bearbetningsenheter (GPU:er) på din lokala Azure-instans för beräkningsintensiva arbetsbelastningar som körs på virtuella Arc-datorer (VM) och AKS som aktiveras av Azure Arc. GPU:er används för beräkningsintensiva arbetsbelastningar som maskininlärning och djupinlärning.
Viktigt!
Den här funktionen är för närvarande i förhandsversion. Juridiska villkor för Azure-funktioner i betaversion, förhandsversion eller som av någon annan anledning inte har gjorts allmänt tillgängliga ännu finns i kompletterande användningsvillkor för Microsoft Azure-förhandsversioner.
Ansluta GPU:er på Azure Local
Du kan koppla dina GPU:er på ett av två sätt för Azure Local:
Diskret enhetstilldelning (DDA) – gör att du kan dedikera en fysisk GPU till din arbetsbelastning. I en DDA-distribution körs virtualiserade arbetsbelastningar på den interna drivrutinen och har vanligtvis fullständig åtkomst till GPU:ns funktioner. DDA erbjuder den högsta nivån av appkompatibilitet och potentiella prestanda.
GPU-partitionering (GPU-P) – gör att du kan dela en GPU med flera arbetsbelastningar genom att dela upp GPU:n i dedikerade bråkpartitioner.
Överväg följande funktioner och stödja skillnader mellan de två alternativen för att använda dina GPU:er:
beskrivning | Diskret enhetstilldelning | GPU-partitionering |
---|---|---|
GPU-resursmodell | Hela enheten | Lika partitionerad enhet |
VM-densitet | Låg (en GPU till en virtuell dator) | Hög (en GPU till många virtuella datorer) |
Appkompatibilitet | Alla GPU-funktioner som tillhandahålls av leverantören (DX 12, OpenGL, CUDA) | Alla GPU-funktioner som tillhandahålls av leverantören (DX 12, OpenGL, CUDA) |
GPU VRAM | Upp till VRAM som stöds av GPU:n | Upp till VRAM som stöds av GPU:n per partition |
GPU-drivrutin i gäst | GPU-leverantörsdrivrutin (NVIDIA) | GPU-leverantörsdrivrutin (NVIDIA) |
GPU-modeller som stöds
En fullständig lista över tillgängliga lösningar och GPU:er finns i Azure Local Solutions och välj GPU-stöd i den vänstra menyn för alternativ.
NVIDIA stöder sina arbetsbelastningar separat med sin virtuella GPU-programvara. Mer information finns i Microsoft Azure Local – NVIDIA GPU:er som stöds och verifierade serverplattformar.
Information om AKS-arbetsbelastningar finns i GPU:er för AKS för Arc.
Följande GPU-modeller stöds med arbetsbelastningar för både DDA och GPU-P för virtuella Arc-datorer:
- NVIDIA A2
- NVIDIA A16
Dessa ytterligare GPU-modeller stöds med GPU-P (endast) för arbetsbelastningar för virtuella Arc-datorer:
- NVIDIA A10
- NVIDIA A40
- NVIDIA L4
- NVIDIA L40
- NVIDIA L40S
Värdkrav
Din lokala Azure-värd måste uppfylla följande krav:
Systemet måste ha stöd för en lokal Azure-lösning med GPU-stöd. Information om hur du bläddrar bland alternativen finns i Den lokala Azure-katalogen.
Du har åtkomst till Azure Local version 23H2.
Du måste skapa en homogen konfiguration för GPU:er på alla datorer i systemet. En homogen konfiguration består av att installera samma märke och modell för GPU.
För GPU-P kontrollerar du att virtualiseringsstöd och SR-IOV är aktiverade i BIOS för varje dator i systemet. Kontakta maskinvaruleverantören om du inte kan identifiera rätt inställning i DIN BIOS.
Förbereda GPU-drivrutiner på varje värd
Processen för att förbereda och installera GPU-drivrutiner för varje dator skiljer sig något mellan DDA och GPU-P. Följ den tillämpliga processen för din situation.
Hitta GPU:er på varje värd
Kontrollera först att det inte finns någon installerad drivrutin för varje dator. Om det finns en installerad värddrivrutin avinstallerar du värddrivrutinen och startar om datorn.
När du har avinstallerat värddrivrutinen eller om du inte har någon installerad drivrutin kör du PowerShell som administratör med följande kommando:
Get-PnpDevice -Status Error | fl FriendlyName, ClusterId
Du bör se att GPU-enheterna visas i ett feltillstånd som 3D Video Controller
visas i exempelutdata som visar GPU:ns eget namn och instans-ID:
[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
Använda DDA
Följ den här processen om du använder DDA:
1. Inaktivera och demontera GPU:er från värden
För DDA, när du avinstallerar värddrivrutinen eller har en ny Lokal Azure-konfiguration, hamnar den fysiska GPU:n i ett feltillstånd. Du måste demontera alla GPU-enheter för att fortsätta. Du kan använda Enhetshanteraren eller PowerShell för att inaktivera och demontera GPU:n med hjälp av det ClusterID
som erhölls i föregående steg.
$id1 = "GPU_instance_ID"
Disable-PnpDevice -ClusterId $id1 -Confirm:$false
Dismount-VMHostAssignableDevice -ClusterPath $id1 -Force
Bekräfta att GPU:erna var korrekt demonterade från värddatorn. GPU:erna är nu i ett Unknown
tillstånd:
Get-PnpDevice -Status Unknown | fl FriendlyName, ClusterId
Upprepa den här processen för varje dator i systemet för att förbereda GPU:erna.
2. Ladda ned och installera begränsningsdrivrutinen
Programvaran kan innehålla komponenter som utvecklats och ägs av NVIDIA Corporation eller dess licensgivare. Användningen av dessa komponenter styrs av NVIDIA-slutanvändarlicensavtalet.
Se NVIDIA-dokumentationen för att ladda ned den aktuella NVIDIA-begränsningsdrivrutinen. När du har laddat ned drivrutinen expanderar du arkivet och installerar åtgärdsdrivrutinen på varje värddator. Använd följande PowerShell-skript för att ladda ned begränsningsdrivrutinen och extrahera den:
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
När filerna för åtgärdsdrivrutiner har extraherats letar du reda på versionen för rätt modell för din GPU och installerar den. Om du till exempel installerade en NVIDIA A2-åtgärdsdrivrutin kör du följande:
pnputil /add-driver nvidia_azure_stack_A2_base.inf /install /force
Bekräfta installationen av dessa drivrutiner genom att köra:
pnputil /enum-devices OR pnputil /scan-devices
Du bör kunna se rätt identifierade GPU:er i Get-PnpDevice
:
Get-PnpDevice -Class Display | fl FriendlyName, ClusterId
Upprepa stegen ovan för varje värd i Azure Local.
Använda GPU-P
Följ den här processen om du använder GPU-P:
Ladda ned och installera värddrivrutinen
GPU-P kräver drivrutiner på värdnivå som skiljer sig från DDA. För NVIDIA GPU:er behöver du en NVIDIA vGPU-programvarugrafikdrivrutin på varje värd och på varje virtuell dator som ska använda GPU-P. Mer information finns i den senaste versionen av NVIDIA vGPU-dokumentationen och information om licensiering i användarhandboken för klientlicensiering.
När du har identifierat GPU:erna som 3D Video Controller
på värddatorn laddar du ned värd-vGPU-drivrutinen. Via NVIDIA GRID-licensen bör du kunna hämta rätt värddrivrutin .zip fil.
Du måste hämta och flytta följande mapp till värddatorn: \vGPU_<Your_vGPU_version>_GA_Azure_Stack_HCI_Host_Drivers
Gå till \vGPU_<Your_vGPU_version>_GA_Azure_Stack_HCI_Host_Drivers\Display.Driver och installera drivrutinen.
pnputil /add-driver .\nvgridswhci.inf /install /force
Bekräfta installationen av dessa drivrutiner genom att köra:
pnputil /enum-devices
Du bör kunna se rätt identifierade GPU:er i Get-PnpDevice
:
Get-PnpDevice -Class Display | fl FriendlyName, ClusterId
Du kan också köra NVIDIA System Management Interface nvidia-smi
för att lista GPU:er på värddatorn enligt följande:
nvidia-smi
Om drivrutinen är korrekt installerad visas utdata som liknar följande exempel:
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 |
+-----------------------------------------------------------------------------+
Konfigurera antal GPU-partitioner
Följ dessa steg för att konfigurera antalet GPU-partitioner i PowerShell:
Kommentar
När du använder PowerShell måste du manuellt se till att GPU-konfigurationen är homogen på alla datorer i Azure Local.
Anslut till den dator vars GPU-partitionsantal du vill konfigurera.
Get-VMHostPartitionableGpu
Kör kommandot och referera till värdena Namn och ValidPartitionCounts.Kör följande kommando för att konfigurera antalet partitioner. Ersätt
GPU-name
med värdet Namn ochpartition-count
med ett av de antal som stöds från värdet ValidPartitionCounts :Set-VMHostPartitionableGpu -Name "<GPU-name>" -PartitionCount <partition-count>
Följande kommando konfigurerar till exempel partitionsantalet till
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
Du kan köra kommandot
Get-VMHostPartitionableGpu | FL Name,ValidPartitionCounts,PartitionCount
igen för att kontrollera att partitionsantalet är inställt på4
.Här är ett exempel på utdata:
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
Om du vill hålla konfigurationen homogen upprepar du konfigurationsstegen för antal partitioner på varje dator i systemet.
Gästkrav
GPU-hantering stöds för följande Arc VM-arbetsbelastningar:
Virtuella datorer, generation 2
Ett 64-bitars operativsystem som stöds enligt beskrivningen i den senaste NVIDIA vGPU-supporten för produkter som stöds