Delen via


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.

  1. Maak verbinding met de server waarvan u het aantal GPU-partities wilt configureren.

  2. Voer de Get-VMHostPartitionableGpu opdracht uit en raadpleeg de waarden Name en ValidPartitionCounts .

  3. Voer de volgende opdracht uit om het aantal partities te configureren. Vervang GPU-name door de naamwaarde en partition-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 op 4.

    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
    
  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:

Volgende stappen