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.
Stellen Sie eine Verbindung zu dem Server her, dessen GPU-Partitionsanzahl Sie konfigurieren möchten.
Führen Sie den
Get-VMHostPartitionableGpu
Befehl aus, und verweisen Sie auf die Werte "Name " und "ValidPartitionCounts" .Führen Sie den folgenden Befehl aus, um die Anzahl der Partitionen zu konfigurieren. Ersetzen Sie
GPU-name
durch den Wert Name undpartition-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
4
folgt 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
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:
Virtuelle Computer der 2. Generation
Ein unterstütztes 64-Bit-Betriebssystem, wie in den neuesten NVIDIA vGPU-Unterstützung unterstützten Produkten beschrieben