Förbereda GPU:er för Azure Stack HCI (förhandsversion)
Gäller för: Azure Stack HCI, version 23H2
Den här artikeln beskriver hur du förbereder grafiska bearbetningsenheter (GPU:er) för Azure Stack HCI för beräkningsintensiva arbetsbelastningar som körs på virtuella Arc-datorer 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 Stack HCI
Du kan koppla dina GPU:er på ett av två sätt för Azure Stack HCI:
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 Stack HCI-lösningar 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 Stack HCI – 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
Azure Stack HCI-värden måste uppfylla följande krav:
Systemet måste ha stöd för en Azure Stack HCI-lösning med GPU-stöd. Information om hur du bläddrar bland alternativen finns i Azure Stack HCI-katalogen.
Du har åtkomst till ett Azure Stack HCI- version 23H2-kluster.
Du måste skapa en homogen konfiguration för GPU:er för alla servrar i klustret. En homogen konfiguration består av att installera samma märke och modell för GPU.
För GPU-P kontrollerar du att virtualiseringsstödet och SR-IOV är aktiverade i BIOS för varje server i klustret. Kontakta systemleverantö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 värdserver 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 värdserver. Om det finns en installerad värddrivrutin avinstallerar du värddrivrutinen och startar om servern.
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, InstanceId
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 ett nytt Azure Stack HCI-klusterkonfiguration, 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 InstanceID
som erhölls i föregående steg.
$id1 = "GPU_instance_ID"
Disable-PnpDevice -InstanceId $id1 -Confirm:$false
Dismount-VMHostAssignableDevice -InstancePath $id1 -Force
Bekräfta att GPU:erna har demonterats korrekt från värden. GPU:erna är nu i ett Unknown
tillstånd:
Get-PnpDevice -Status Unknown | fl FriendlyName, InstanceId
Upprepa den här processen för varje server i Azure Stack HCI-klustret 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ärdserver. 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, InstanceId
Upprepa stegen ovan för varje värd i ditt Azure Stack HCI-kluster.
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ärdservern 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ärdservern: \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, InstanceId
Du kan också köra NVIDIA System Management Interface nvidia-smi
för att visa GPU:er på värdservern 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 servrar i ditt Azure Stack HCI-kluster.
Anslut till den server 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 server i ditt Azure Stack HCI-kluster.
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