Freigeben über


Vorbereiten von GPUs für Azure Stack HCI (Vorschau)

Gilt für: Azure Stack HCI, Version 23H2

In diesem Artikel wird beschrieben, wie Sie grafische Verarbeitungseinheiten (GPUs) für Azure Stack HCI für Rechenintensive Workloads vorbereiten, die auf virtuellen Arc-Computern (VMs) und von Azure Arc aktivierten AKS ausgeführt werden. GPUs werden für Rechenintensive Workloads wie machine Learning und Deep Learning verwendet.

Wichtig

Dieses Feature befindet sich derzeit in der VORSCHAU. Die zusätzlichen Nutzungsbestimmungen für Microsoft Azure-Vorschauen enthalten rechtliche Bedingungen. Sie gelten für diejenigen Azure-Features, die sich in der Beta- oder Vorschauversion befinden oder aber anderweitig noch nicht zur allgemeinen Verfügbarkeit freigegeben sind.

Anfügen von GPUs auf Azure Stack HCI

Sie können Ihre GPUs auf eine von zwei Arten für Azure Stack HCI anfügen:

  • Diskrete Gerätezuweisung (DDA) – ermöglicht Es Ihnen, eine physische GPU ihrer Workload zuzuweisen. In einer DDA-Bereitstellung werden virtualisierte Workloads auf dem nativen Treiber ausgeführt und haben in der Regel vollen Zugriff auf die GPU-Funktionalität. DDA bietet das höchste Maß an App-Kompatibilität und potenzieller Leistung.

  • GPU-Partitionierung (GPU-P) – Ermöglicht Es Ihnen, eine GPU für mehrere Workloads freizugeben, indem Sie die GPU in dedizierte Bruchpartitionen aufteilen.

Berücksichtigen Sie die folgenden Funktionen und Unterstützungsunterschiede zwischen den beiden Optionen der Verwendung ihrer GPUs:

Beschreibung Diskrete Gerätezuweisung GPU-Partitionierung
GPU-Ressourcenmodell Gesamtes Gerät Gleichmäßig partitioniertes Gerät
VM-Dichte Niedrig (eine GPU zu einem virtuellen Computer) Hoch (eine GPU zu vielen VMs)
Anwendungskompatibilität Alle GPU-Funktionen werden vom Hersteller bereitgestellt (DX 12, OpenGL, CUDA) Alle GPU-Funktionen werden vom Hersteller bereitgestellt (DX 12, OpenGL, CUDA)
GPU VRAM Bis zur Menge des von der GPU unterstützen VRAMs Bis zur Menge des von der GPU pro Partition unterstützten VRAMs
GPU-Treiber im Gastbetriebssystem GPU-Herstellertreiber (NVIDIA) GPU-Herstellertreiber (NVIDIA)

Unterstützte GPU-Modelle

Die vollständige Liste der verfügbaren unterstützten Lösungen und GPUs finden Sie unter Azure Stack HCI Solutions und wählen Sie im linken Menü GPU-Unterstützung für Optionen aus.

NVIDIA unterstützt ihre Workloads separat mit ihrer virtuellen GPU-Software. Weitere Informationen finden Sie unter Microsoft Azure Stack HCI – Unterstützte NVIDIA GPUs und validierte Serverplattformen.

Informationen zu AKS-Workloads finden Sie unter GPUs für AKS für Arc.

Die folgenden GPU-Modelle werden sowohl mit DDA- als auch GPU-P für Arc-VM-Workloads unterstützt:

  • NVIDIA A2
  • NVIDIA A16

Diese zusätzlichen GPU-Modelle werden nur mit GPU-P (nur) für Arc-VM-Workloads unterstützt:

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

Hostanforderungen

Ihr Azure Stack HCI-Host muss die folgenden Anforderungen erfüllen:

  • Ihr System muss eine Azure Stack HCI-Lösung mit GPU-Unterstützung unterstützen. Informationen zum Durchsuchen Ihrer Optionen finden Sie im Azure Stack HCI-Katalog.

  • Sie haben Zugriff auf einen Azure Stack HCI, Version 23H2-Cluster.

  • Sie müssen eine homogene Konfiguration für GPUs auf allen Servern in Ihrem Cluster erstellen. Eine homogene Konfiguration besteht aus der Installation desselben Herstellungs- und Modells von GPU.

  • Stellen Sie für GPU-P sicher, dass die Virtualisierungsunterstützung und SR-IOV im BIOS jedes Servers im Cluster aktiviert sind. Wenden Sie sich an Ihren Systemanbieter, wenn Sie die richtige Einstellung in Ihrem BIOS nicht identifizieren können.

Vorbereiten von GPU-Treibern auf jedem Host

Der Prozess zum Vorbereiten und Installieren von GPU-Treibern für jeden Hostserver unterscheidet sich etwas zwischen DDA und GPU-P. Folgen Sie dem entsprechenden Prozess für Ihre Situation.

Suchen von GPUs auf jedem Host

Stellen Sie zunächst sicher, dass für jeden Hostserver kein Treiber installiert ist. Wenn ein Hosttreiber installiert ist, deinstallieren Sie den Hosttreiber, und starten Sie den Server neu.

Nachdem Sie den Hosttreiber deinstalliert haben oder wenn Sie keinen Treiber installiert haben, führen Sie PowerShell als Administrator mit dem folgenden Befehl aus:

Get-PnpDevice -Status Error | fl FriendlyName, InstanceId

Die GPU-Geräte sollten in einem Fehlerzustand angezeigt werden, wie 3D Video Controller in der Beispielausgabe gezeigt, in der der Anzeigename und die Instanz-ID der GPU aufgeführt sind:

[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

Verwenden von DDA

Führen Sie diesen Vorgang aus, wenn Sie DDA verwenden:

1. Deaktivieren und Aufheben der Bereitstellung von GPUs vom Host

Wenn Sie für DDA den Hosttreiber deinstallieren oder über ein neues Azure Stack HCI-Clustersetup verfügen, wechselt die physische GPU in einen Fehlerzustand. Sie müssen die Bereitstellung aller GPU-Geräte aufheben, um den Vorgang fortzusetzen. Sie können Geräte-Manager oder PowerShell verwenden, um die GPU mithilfe InstanceID des im vorherigen Schritt abgerufenen Schritts zu deaktivieren und zu entfernen.

$id1 = "GPU_instance_ID"
Disable-PnpDevice -InstanceId $id1 -Confirm:$false
Dismount-VMHostAssignableDevice -InstancePath $id1 -Force

Vergewissern Sie sich, dass die GPUs vom Host ordnungsgemäß getrennt wurden. Die GPUs befinden sich nun in einem Unknown Zustand:

Get-PnpDevice -Status Unknown | fl FriendlyName, InstanceId

Wiederholen Sie diesen Vorgang für jeden Server im Azure Stack HCI-Cluster, um die GPUs vorzubereiten.

2. Herunterladen und Installieren des Entschärfungstreibers

Die Software kann Komponenten enthalten, die im Besitz der NVIDIA Corporation oder ihrer Lizenzgeber sind. Die Verwendung dieser Komponenten unterliegt dem NVIDIA-Endbenutzer-Lizenzvertrag.

Lesen Sie die NVIDIA-Dokumentation , um den entsprechenden NVIDIA-Entschärfungstreiber herunterzuladen. Erweitern Sie nach dem Herunterladen des Treibers das Archiv, und installieren Sie den Entschärfungstreiber auf jedem Hostserver. Verwenden Sie das folgende PowerShell-Skript, um den Entschärfungstreiber herunterzuladen und zu extrahieren:

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

Nachdem die Entschärfungstreiberdateien extrahiert wurden, suchen Sie die Version für das richtige Modell Ihrer GPU, und installieren Sie sie. Wenn Sie beispielsweise einen NVIDIA A2-Entschärfungstreiber installiert haben, führen Sie Folgendes aus:

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

Führen Sie Folgendes aus, um die Installation dieser Treiber zu bestätigen:

pnputil /enum-devices OR pnputil /scan-devices

Sie sollten in der Lage sein, die korrekt identifizierten GPUs in Get-PnpDevice:

Get-PnpDevice -Class Display | fl FriendlyName, InstanceId

Wiederholen Sie die oben genannten Schritte für jeden Host in Ihrem Azure Stack HCI-Cluster.

Verwenden von GPU-P

Folgen Sie diesem Prozess, wenn Sie GPU-P verwenden:

Herunterladen und Installieren des Hosttreibers

GPU-P erfordert Treiber auf Hostebene, die sich von DDA unterscheiden. Für NVIDIA GPUs benötigen Sie einen NVIDIA vGPU-Softwaregrafiktreiber auf jedem Host und auf jedem virtuellen Computer, der GPU-P verwendet. Weitere Informationen finden Sie in der neuesten Version der NVIDIA vGPU-Dokumentation und Details zur Lizenzierung im Client Licensing User Guide.

Nachdem Sie die GPUs als 3D Video Controller auf Ihrem Hostserver identifiziert haben, laden Sie den vGPU-Hosttreiber herunter. Über Ihre NVIDIA GRID-Lizenz sollten Sie in der Lage sein, den richtigen Hosttreiber .zip Datei zu erhalten.

Sie müssen den folgenden Ordner auf Ihren Hostserver abrufen und verschieben: \vGPU_<Your_vGPU_version_GA_Azure_Stack_HCI_Host_Drivers>

Navigieren Sie zu \vGPU_<Your_vGPU_version>_GA_Azure_Stack_HCI_Host_Drivers\Display.Driver , und installieren Sie den Treiber.

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

Führen Sie Folgendes aus, um die Installation dieser Treiber zu bestätigen:

pnputil /enum-devices

Sie sollten in der Lage sein, die korrekt identifizierten GPUs in Get-PnpDevice:

Get-PnpDevice -Class Display | fl FriendlyName, InstanceId

Sie können auch die NVIDIA System Management Interface nvidia-smi ausführen, um die GPUs auf dem Hostserver wie folgt auflisten:

nvidia-smi

Wenn der Treiber ordnungsgemäß installiert ist, wird eine Ausgabe ähnlich wie im folgenden Beispiel angezeigt:

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

Konfigurieren Sie die Anzahl der GPU-Partitionen

Führen Sie die folgenden Schritte aus, um die Anzahl der GPU-Partitionen in PowerShell zu konfigurieren:

Hinweis

Bei Verwendung von PowerShell müssen Sie manuell sicherstellen, dass die GPU-Konfiguration auf allen Servern in Ihrem Azure Stack HCI-Cluster homogen ist.

  1. Stellen Sie eine Verbindung zu dem Server her, dessen GPU-Partitionsanzahl Sie konfigurieren möchten.

  2. Führen Sie den Get-VMHostPartitionableGpu Befehl aus, und verweisen Sie auf die Werte "Name " und "ValidPartitionCounts" .

  3. Führen Sie den folgenden Befehl aus, um die Anzahl der Partitionen zu konfigurieren. Ersetzen Sie GPU-name durch den Wert Name und partition-count durch eine der unterstützten Anzahlen aus dem Wert ValidPartitionCounts:

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

    Mit dem folgenden Befehl wird beispielsweise die Partitionsanzahl wie 4folgt konfiguriert:

    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
    

    Sie können den Befehl Get-VMHostPartitionableGpu | FL Name,ValidPartitionCounts,PartitionCount erneut ausführen, um zu überprüfen, ob die Partitionsanzahl auf " 4.

    Hier ist eine Beispielausgabe:

    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. Um die Konfiguration homogen zu halten, wiederholen Sie die Konfigurationsschritte für die Partitionsanzahl auf jedem Server in Ihrem Azure Stack HCI-Cluster.

Gastanforderungen

Die GPU-Verwaltung wird für die folgenden Arc VM-Workloads unterstützt:

Nächste Schritte