Freigeben über


Vorbereiten von GPUs für Azure Local (Vorschau)

Gilt für: Azure Local, Version 23H2

In diesem Artikel wird beschrieben, wie Sie grafische Verarbeitungseinheiten (GPUs) auf Ihrer lokalen Azure-Instanz für Rechenintensive Workloads vorbereiten, die auf virtuellen Arc-Computern (VMs) und AKS ausgeführt werden, die von Azure Arc aktiviert sind. 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 Local

Sie können Ihre GPUs auf eine von zwei Arten für Azure Local 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 Local 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 Local – 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 lokaler Azure-Host muss die folgenden Anforderungen erfüllen:

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

  • Sie haben Zugriff auf Azure Local, Version 23H2.

  • Sie müssen eine homogene Konfiguration für GPUs auf allen Computern in Ihrem System 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 Computers im System aktiviert sind. Wenden Sie sich an Ihren Hardwareanbieter, 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 Computer 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 Computer kein Treiber installiert ist. Wenn ein Hosttreiber installiert ist, deinstallieren Sie den Hosttreiber, und starten Sie den Computer 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, ClusterId

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 lokales Azure-Setup 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 ClusterID des im vorherigen Schritt abgerufenen Schritts zu deaktivieren und zu entfernen.

$id1 = "GPU_instance_ID"
Disable-PnpDevice -ClusterId $id1 -Confirm:$false
Dismount-VMHostAssignableDevice -ClusterPath $id1 -Force

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

Get-PnpDevice -Status Unknown | fl FriendlyName, ClusterId

Wiederholen Sie diesen Vorgang für jeden Computer in Ihrem System, 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 Hostcomputer. 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, ClusterId

Wiederholen Sie die oben aufgeführten Schritte für jeden Host in Ihrem lokalen Azure.Repeat the above steps for each host in your Azure Local.

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 Hostcomputer 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 Hostcomputer 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, ClusterId

Sie können auch die NVIDIA System Management Interface nvidia-smi ausführen, um die GPUs auf dem Hostcomputer 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 Computern in Azure Local homogen ist.

  1. Stellen Sie eine Verbindung mit dem Computer 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 Computer in Ihrem System.

Gastanforderungen

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

Nächste Schritte