GPU's voorbereiden voor Azure Stack HCI (preview)
Van toepassing op: Azure Stack HCI, versie 23H2
In dit artikel wordt beschreven hoe u GPU's (grafische verwerkingseenheden) voorbereidt voor Azure Stack HCI voor rekenintensieve workloads die worden uitgevoerd op virtuele Arc-machines (VM's) en AKS die zijn ingeschakeld door Azure Arc. GPU's worden gebruikt voor rekenintensieve workloads, zoals machine learning en deep learning.
Belangrijk
Deze functie is momenteel beschikbaar als PREVIEW-versie. Raadpleeg de Aanvullende voorwaarden voor Microsoft Azure-previews voor juridische voorwaarden die van toepassing zijn op Azure-functies die in bèta of preview zijn of die anders nog niet algemeen beschikbaar zijn.
GPU's koppelen in Azure Stack HCI
U kunt uw GPU's op twee manieren koppelen voor Azure Stack HCI:
Discrete apparaattoewijzing (DDA): hiermee kunt u een fysieke GPU toewijzen aan uw workload. In een DDA-implementatie worden gevirtualiseerde workloads uitgevoerd op het systeemeigen stuurprogramma en hebben ze doorgaans volledige toegang tot de functionaliteit van de GPU. DDA biedt het hoogste niveau van app-compatibiliteit en mogelijke prestaties.
GPU Partitionering (GPU-P): hiermee kunt u een GPU delen met meerdere workloads door de GPU te splitsen in toegewezen breukpartities.
Houd rekening met de volgende functionaliteit en ondersteuningsverschillen tussen de twee opties voor het gebruik van uw GPU's:
Beschrijving | Discrete apparaattoewijzing | GPU Partitioneren |
---|---|---|
GPU-resourcemodel | Volledig apparaat | Even gepartitioneerd apparaat |
VM-dichtheid | Laag (één GPU tot één VM) | Hoog (één GPU naar veel VM's) |
App-compatibiliteit | Alle GPU-mogelijkheden van de leverancier (DX 12, OpenGL, CUDA) | Alle GPU-mogelijkheden van de leverancier (DX 12, OpenGL, CUDA) |
GPU VRAM | Maximaal VRAM ondersteund door de GPU | Maximaal VRAM ondersteund door de GPU per partitie |
GPU-stuurprogramma in gast | GPU-stuurprogramma voor leveranciers (NVIDIA) | GPU-stuurprogramma voor leveranciers (NVIDIA) |
Ondersteunde GPU-modellen
Zie Azure Stack HCI Solutions en selecteer GPU-ondersteuning in het linkermenu voor opties voor een volledige lijst met ondersteunde oplossingen en GPU's die beschikbaar zijn.
NVIDIA ondersteunt hun workloads afzonderlijk met hun virtuele GPU-software. Zie Microsoft Azure Stack HCI - Ondersteunde NVIDIA GPU's en gevalideerde serverplatforms voor meer informatie.
Zie GPU's voor AKS voor AKS voor Arc voor AKS.
De volgende GPU-modellen worden ondersteund met zowel DDA als GPU-P voor Arc-VM-workloads:
- NVIDIA A2
- NVIDIA A16
Deze aanvullende GPU-modellen worden ondersteund met GPU-P (alleen) voor Arc-VM-workloads:
- NVIDIA A10
- NVIDIA A40
- NVIDIA L4
- NVIDIA L40
- NVIDIA L40S
Hostvereisten
Uw Azure Stack HCI-host moet voldoen aan de volgende vereisten:
Uw systeem moet ondersteuning bieden voor een Azure Stack HCI-oplossing met GPU-ondersteuning. Zie de Azure Stack HCI-catalogus om door uw opties te bladeren.
U hebt toegang tot een Azure Stack HCI-cluster, versie 23H2.
U moet een homogene configuratie maken voor GPU's op alle servers in uw cluster. Een homogene configuratie bestaat uit het installeren van hetzelfde merk en model van GPU.
Voor GPU-P moet u ervoor zorgen dat de virtualisatieondersteuning en SR-IOV zijn ingeschakeld in het BIOS van elke server in het cluster. Neem contact op met de leverancier van uw systeem als u de juiste instelling niet kunt identificeren in uw BIOS.
GPU-stuurprogramma's voorbereiden op elke host
Het proces voor het voorbereiden en installeren van GPU-stuurprogramma's voor elke hostserver verschilt enigszins tussen DDA en GPU-P. Volg het toepasselijke proces voor uw situatie.
GPU's zoeken op elke host
Controleer eerst of er geen stuurprogramma is geïnstalleerd voor elke hostserver. Als er een hoststuurprogramma is geïnstalleerd, verwijdert u het hoststuurprogramma en start u de server opnieuw op.
Nadat u het hoststuurprogramma hebt verwijderd of als u geen stuurprogramma hebt geïnstalleerd, voert u PowerShell uit als beheerder met de volgende opdracht:
Get-PnpDevice -Status Error | fl FriendlyName, InstanceId
U ziet dat de GPU-apparaten in een foutstatus worden weergegeven, zoals 3D Video Controller
wordt weergegeven in de voorbeelduitvoer met de beschrijvende naam en exemplaar-id van de 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
DDA gebruiken
Volg dit proces als u DDA gebruikt:
1. GPU's uitschakelen en ontkoppelen van de host
Wanneer u voor DDA het hoststuurprogramma verwijdert of een nieuw Azure Stack HCI-cluster instelt, krijgt de fysieke GPU een foutstatus. U moet alle GPU-apparaten ontkoppelen om door te gaan. U kunt Apparaatbeheer of PowerShell gebruiken om de GPU uit te schakelen en ontkoppelen met behulp van de InstanceID
verkregen in de vorige stap.
$id1 = "GPU_instance_ID"
Disable-PnpDevice -InstanceId $id1 -Confirm:$false
Dismount-VMHostAssignableDevice -InstancePath $id1 -Force
Controleer of de GPU's correct zijn ontkoppeld van de host. De GPU's hebben nu de Unknown
status:
Get-PnpDevice -Status Unknown | fl FriendlyName, InstanceId
Herhaal dit proces voor elke server in het Azure Stack HCI-cluster om de GPU's voor te bereiden.
2. Download en installeer het beperkingsstuurprogramma
De software kan onderdelen bevatten die zijn ontwikkeld en eigendom zijn van NVIDIA Corporation of haar licentiegevers. Het gebruik van deze onderdelen valt onder de LICENTIEovereenkomst van NVIDIA-eindgebruikers.
Raadpleeg de NVIDIA-documentatie om het toepasselijke NVIDIA-beperkingsstuurprogramma te downloaden. Nadat u het stuurprogramma hebt gedownload, vouwt u het archief uit en installeert u het beperkingsstuurprogramma op elke hostserver. Gebruik het volgende PowerShell-script om het beperkingsstuurprogramma te downloaden en uit te pakken:
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
Zodra de stuurprogrammabestanden voor risicobeperking zijn geëxtraheerd, zoekt u de versie voor het juiste model van uw GPU en installeert u deze. Als u bijvoorbeeld een NVIDIA A2-beperkingsstuurprogramma installeert, voert u het volgende uit:
pnputil /add-driver nvidia_azure_stack_A2_base.inf /install /force
Voer de volgende opdracht uit om de installatie van deze stuurprogramma's te bevestigen:
pnputil /enum-devices OR pnputil /scan-devices
U moet de correct geïdentificeerde GPU's kunnen zien in Get-PnpDevice
:
Get-PnpDevice -Class Display | fl FriendlyName, InstanceId
Herhaal de bovenstaande stappen voor elke host in uw Azure Stack HCI-cluster.
GPU-P gebruiken
Volg dit proces als u GPU-P gebruikt:
Het hoststuurprogramma downloaden en installeren
GPU-P vereist stuurprogramma's op hostniveau die verschillen van DDA. Voor NVIDIA GPU's hebt u een STUURPROGRAMMA voor NVIDIA vGPU-softwareafbeeldingen nodig op elke host en op elke VM die GPU-P gebruikt. Zie de nieuwste versie van nvidia vGPU-documentatie en details over licenties in de gebruikershandleiding voor clientlicenties voor meer informatie.
Nadat u de GPU's hebt geïdentificeerd als 3D Video Controller
op uw hostserver, downloadt u het vGPU-stuurprogramma van de host. Via uw NVIDIA GRID-licentie moet u het juiste hoststuurprogramma kunnen verkrijgen .zip bestand.
U moet de volgende map ophalen en verplaatsen naar uw hostserver: \vGPU_<Your_vGPU_version_GA_Azure_Stack_HCI_Host_Drivers>
Navigeer naar \vGPU_<Your_vGPU_version>_GA_Azure_Stack_HCI_Host_Drivers\Display.Driver en installeer het stuurprogramma.
pnputil /add-driver .\nvgridswhci.inf /install /force
Voer de volgende opdracht uit om de installatie van deze stuurprogramma's te bevestigen:
pnputil /enum-devices
U moet de correct geïdentificeerde GPU's kunnen zien in Get-PnpDevice
:
Get-PnpDevice -Class Display | fl FriendlyName, InstanceId
U kunt ook de NVIDIA System Management Interface nvidia-smi
uitvoeren om de GPU's op de hostserver als volgt weer te geven:
nvidia-smi
Als het stuurprogramma correct is geïnstalleerd, ziet u een uitvoer die lijkt op het volgende voorbeeld:
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 |
+-----------------------------------------------------------------------------+
Aantal GPU-partities configureren
Volg deze stappen om het aantal GPU-partities in PowerShell te configureren:
Notitie
Wanneer u PowerShell gebruikt, moet u er handmatig voor zorgen dat de GPU-configuratie homogeen is voor alle servers in uw Azure Stack HCI-cluster.
Maak verbinding met de server waarvan u het aantal GPU-partities wilt configureren.
Voer de
Get-VMHostPartitionableGpu
opdracht uit en raadpleeg de waarden Name en ValidPartitionCounts .Voer de volgende opdracht uit om het aantal partities te configureren. Vervang
GPU-name
door de naamwaarde enpartition-count
door een van de ondersteunde aantallen van de waarde ValidPartitionCounts :Set-VMHostPartitionableGpu -Name "<GPU-name>" -PartitionCount <partition-count>
Met de volgende opdracht wordt bijvoorbeeld het aantal partities geconfigureerd op
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
U kunt de opdracht
Get-VMHostPartitionableGpu | FL Name,ValidPartitionCounts,PartitionCount
opnieuw uitvoeren om te controleren of het aantal partities is ingesteld op4
.Hier volgt een voorbeelduitvoer:
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
Als u de configuratie homogeen wilt houden, herhaalt u de configuratiestappen voor het aantal partities op elke server in uw Azure Stack HCI-cluster.
Gastvereisten
GPU-beheer wordt ondersteund voor de volgende Arc VM-workloads:
VM's uit de tweede generatie
Een ondersteund 64-bits besturingssysteem, zoals beschreven in de nieuwste NVIDIA vGPU-ondersteuning voor ondersteunde producten