Freigeben über


Installieren der GPU-Erweiterung auf VMs auf Ihrem Azure Stack Edge Pro GPU-Gerät

GILT FÜR: Ja für Pro – GPU-SKUAzure Stack Edge Pro – GPUYes for Pro 2 SKUAzure Stack Edge Pro 2Yes for Pro R SKUAzure Stack Edge Pro R

Dieser Artikel beschreibt, wie Sie die GPU-Treibererweiterung installieren, um die entsprechenden Nvidia-Treiber auf den GPU-VMs zu installieren, die auf Ihrem Azure Stack Edge-Gerät ausgeführt werden. In diesem Artikel werden die Schritte zur Installation einer GPU-Erweiterung mithilfe von Azure Resource Manager-Vorlagen auf Windows- und Linux-VMs beschrieben.

Hinweis

Voraussetzungen

Stellen Sie Folgendes sicher, bevor Sie die GPU-Erweiterung auf den GPU-VMs installieren, die auf Ihrem Gerät ausgeführt werden:

  1. Sie haben Zugriff auf ein Azure Stack Edge-Gerät, auf dem Sie eine oder mehrere GPU-VMs bereitstellen. Erfahren Sie, wie Sie eine GPU-VM auf Ihrem Gerät bereitstellen.

    • Stellen Sie sicher, dass der für das Computenetzwerk aktivierte Port auf Ihrem Gerät mit dem Internet verbunden ist und Zugriff hat. Die GPU-Treiber werden über das Internet heruntergeladen.

      Im folgenden Beispiel war Port 2 mit dem Internet verbunden und wurde zum Aktivieren des Computenetzwerks verwendet. Wenn Kubernetes in Ihrer Umgebung nicht bereitgestellt ist, können Sie das Zuweisen der Kubernetes-Knoten-IP und der externen Dienst-IP überspringen.

      Screenshot: Bereich „Compute“ für ein Azure Stack Edge-Gerät. Die Computeeinstellungen für Port 2 sind hervorgehoben.

  2. Laden Sie die GPU-Erweiterungsvorlagen und Parameterdateien auf Ihren Clientcomputer herunter. Entpacken Sie die Vorlagen und Dateien in einem Verzeichnis, das Sie als Arbeitsverzeichnis verwenden.

  3. Vergewissern Sie sich, dass der Client, den Sie für den Zugriff auf Ihr Gerät verwenden, weiterhin über Azure PowerShell mit dem Azure Resource Manager verbunden ist. Die Verbindung mit Azure Resource Manager läuft alle 1,5 Stunden oder beim Neustart des Azure Stack Edge-Geräts ab. In diesem Fall geben alle ausgeführten Cmdlets eine Fehlermeldung mit dem Inhalt zurück, dass keine Verbindung mit Azure mehr besteht. Sie müssen sich erneut anmelden. Eine ausführliche Anleitung finden Sie unter Herstellen einer Verbindung mit Azure Resource Manager auf Ihrem Azure Stack Edge-Gerät.

Bearbeiten der Parameterdatei

Je nach Betriebssystem Ihrer VM können Sie die GPU-Erweiterung für Windows oder für Linux installieren.

Um Nvidia-GPU-Treiber für eine vorhandene VM bereitzustellen, bearbeiten Sie die Parameterdatei addGPUExtWindowsVM.parameters.json und stellen dann die Vorlage addGPUextensiontoVM.json bereit.

Version 2205 oder höher

Die Datei addGPUExtWindowsVM.parameters.json kann die folgenden Parameter enthalten:

"parameters": {
	"vmName": {
	"value": "<name of the VM>"
	},
	"extensionName": {
	"value": "<name for the extension. Example: windowsGpu>"
	},
	"publisher": {
	"value": "Microsoft.HpcCompute"
	},
	"type": {
	"value": "NvidiaGpuDriverWindows"
	},
	"typeHandlerVersion": {
	"value": "1.5"
	},
	"settings": {
	"value": {
	"DriverURL" : "http://us.download.nvidia.com/tesla/511.65/511.65-data-center-tesla-desktop-winserver-2016-2019-2022-dch-international.exe",
	"DriverCertificateUrl" : "https://go.microsoft.com/fwlink/?linkid=871664",
	"DriverType":"CUDA"
	}
	}
	}

Versionen unter 2205

Die Datei addGPUExtWindowsVM.parameters.json kann die folgenden Parameter enthalten:

"parameters": {
	"vmName": {
	"value": "<name of the VM>"
	},
	"extensionName": {
	"value": "<name for the extension. Example: windowsGpu>"
	},
	"publisher": {
	"value": "Microsoft.HpcCompute"
	},
	"type": {
	"value": "NvidiaGpuDriverWindows"
	},
	"typeHandlerVersion": {
	"value": "1.3"
	},
	"settings": {
	"value": {
	"DriverURL" : "http://us.download.nvidia.com/tesla/442.50/442.50-tesla-desktop-winserver-2019-2016-international.exe",
	"DriverCertificateUrl" : "https://go.microsoft.com/fwlink/?linkid=871664",
	"DriverType":"CUDA"
	}
	}
	}

Bereitstellen der Vorlage

Stellen Sie die Vorlage addGPUextensiontoVM.json bereit, um die Erweiterung auf einem vorhandenen virtuellen Computer zu installieren.

Führen Sie den folgenden Befehl aus:

$templateFile = "<Path to addGPUextensiontoVM.json>"
$templateParameterFile = "<Path to addGPUExtWindowsVM.parameters.json>"
RGName = "<Name of your resource group>"
New-AzureRmResourceGroupDeployment -ResourceGroupName $RGName -TemplateFile $templateFile -TemplateParameterFile $templateParameterFile -Name "<Name for your deployment>"

Hinweis

Die Bereitstellung der Erweiterung ist ein zeitintensiver Auftrag, der etwa 10 Minuten dauert.

Hier ist eine Beispielausgabe:

PS C:\WINDOWS\system32> "C:\12-09-2020\ExtensionTemplates\addGPUextensiontoVM.json"
C:\12-09-2020\ExtensionTemplates\addGPUextensiontoVM.json
PS C:\WINDOWS\system32> $templateFile = "C:\12-09-2020\ExtensionTemplates\addGPUextensiontoVM.json"
PS C:\WINDOWS\system32> $templateParameterFile = "C:\12-09-2020\ExtensionTemplates\addGPUExtWindowsVM.parameters.json"
PS C:\WINDOWS\system32> $RGName = "myasegpuvm1"
PS C:\WINDOWS\system32> New-AzureRmResourceGroupDeployment -ResourceGroupName $RGName -TemplateFile $templateFile -TemplateParameterFile $templateParameterFile -Name "deployment3"

DeploymentName          : deployment3
ResourceGroupName       : myasegpuvm1
ProvisioningState       : Succeeded
Timestamp               : 12/16/2020 12:18:50 AM
Mode                    : Incremental
TemplateLink            :
Parameters              :
                       Name             Type                       Value
                       ===============  =========================  ==========
                       vmName           String                     VM2
                       extensionName    String                     windowsgpuext
                       publisher        String                     Microsoft.HpcCompute
                       type             String                     NvidiaGpuDriverWindows
                       typeHandlerVersion  String                     1.3
                       settings         Object                     {
                         "DriverURL": "http://us.download.nvidia.com/tesla/442.50/442.50-tesla-desktop-winserver-2019-2016-international.exe",
                         "DriverCertificateUrl": "https://go.microsoft.com/fwlink/?linkid=871664",
                         "DriverType": "CUDA"
                       }

Outputs                 :
DeploymentDebugLogLevel :
PS C:\WINDOWS\system32>

Nachverfolgen der Bereitstellung

Um den Bereitstellungsstatus von Erweiterungen für eine bestimmte VM zu überprüfen, öffnen Sie eine weitere PowerShell-Sitzung (als Administrator), und führen Sie dann den folgenden Befehl aus:

Get-AzureRmVMExtension -ResourceGroupName <Name of resource group> -VMName <Name of VM> -Name <Name of the extension>

Hier ist eine Beispielausgabe:

PS C:\WINDOWS\system32> Get-AzureRmVMExtension -ResourceGroupName myasegpuvm1 -VMName VM2 -Name windowsgpuext

ResourceGroupName       : myasegpuvm1
VMName                  : VM2
Name                    : windowsgpuext
Location                : dbelocal
Etag                    : null
Publisher               : Microsoft.HpcCompute
ExtensionType           : NvidiaGpuDriverWindows
TypeHandlerVersion      : 1.3
Id                      : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myasegpuvm1/providers/Microsoft.Compute/virtualMachines/VM2/extensions/windowsgpuext
PublicSettings          : {
                            "DriverURL": "http://us.download.nvidia.com/tesla/442.50/442.50-tesla-desktop-winserver-2019-2016-international.exe",
                            "DriverCertificateUrl": "https://go.microsoft.com/fwlink/?linkid=871664",
                            "DriverType": "CUDA"
                          }
ProtectedSettings       :
ProvisioningState       : Creating
Statuses                :
SubStatuses             :
AutoUpgradeMinorVersion : True
ForceUpdateTag          :

PS C:\WINDOWS\system32>

Die Ausgabe der Erweiterungsausführung wird in der folgenden Datei protokolliert. Sie können den Installationsstatus in dieser Datei C:\Packages\Plugins\Microsoft.HpcCompute.NvidiaGpuDriverWindows\1.3.0.0\Status nachverfolgen.

Bei einer erfolgreichen Installation eine message mit Enable Extension und status von success angezeigt.

"status":  {
                       "formattedMessage":  {
                                                "message":  "Enable Extension",
                                                "lang":  "en"
                                            },
                       "name":  "NvidiaGpuDriverWindows",
                       "status":  "success",

Überprüfen der Treiberinstallation

Melden Sie sich auf der VM an, und führen Sie das mit dem Treiber installierte Befehlszeilen-Hilfsprogramm nvidia-smi aus.

Version 2205 oder höher

Die Datei nvidia-smi.exe befindet sich unter C:\Windows\System32\nvidia-smi.exe. Wenn die Datei nicht angezeigt wird, läuft die Treiberinstallation möglicherweise immer noch im Hintergrund. Warten Sie 10 Minuten, und überprüfen Sie dann den Status erneut.

Versionen unter 2205

Die Datei nvidia-smi.exe befindet sich unter C:\Program Files\NVIDIA Corporation\NVSMI\nvidia-smi.exe. Wenn die Datei nicht angezeigt wird, läuft die Treiberinstallation möglicherweise immer noch im Hintergrund. Warten Sie 10 Minuten, und überprüfen Sie dann den Status erneut.

Wenn der Treiber installiert wurde, wird eine Ausgabe ähnlich der folgenden angezeigt:

PS C:\Users\Administrator> cd "C:\Program Files\NVIDIA Corporation\NVSMI"
PS C:\Program Files\NVIDIA Corporation\NVSMI> ls

    Directory: C:\Program Files\NVIDIA Corporation\NVSMI

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----        2/26/2020  12:00 PM         849640 MCU.exe
-a----        2/26/2020  12:00 PM         443104 nvdebugdump.exe
-a----        2/25/2020   2:06 AM          81823 nvidia-smi.1.pdf
-a----        2/26/2020  12:01 PM         566880 nvidia-smi.exe
-a----        2/26/2020  12:01 PM         991344 nvml.dll

PS C:\Program Files\NVIDIA Corporation\NVSMI> .\nvidia-smi.exe
Wed Dec 16 00:35:51 2020
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 442.50       Driver Version: 442.50       CUDA Version: 10.2     |
|-------------------------------+----------------------+----------------------+
| GPU  Name            TCC/WDDM | Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  Tesla T4            TCC  | 0000503C:00:00.0 Off |                    0 |
| N/A   35C    P8    11W /  70W |      8MiB / 15205MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+
PS C:\Program Files\NVIDIA Corporation\NVSMI>

Weitere Informationen finden Sie unter Nvidia-GPU-Treibererweiterung für Windows.

Hinweis

Nachdem Sie die Installation des GPU-Treibers und der GPU-Erweiterung abgeschlossen haben, müssen Sie keinen Port mit Internetzugriff für Compute mehr verwenden.

Entfernen der GPU-Erweiterung

Verwenden Sie zum Entfernen der GPU-Erweiterung den folgenden Befehl:

Remove-AzureRmVMExtension -ResourceGroupName <Resource group name> -VMName <VM name> -Name <Extension name>

Hier ist eine Beispielausgabe:

PS C:\azure-stack-edge-deploy-vms> Remove-AzureRmVMExtension -ResourceGroupName rgl -VMName WindowsVM -Name windowsgpuext
Virtual machine extension removal operation
This cmdlet will remove the specified virtual machine extension. Do you want to continue? [Y] Yes [N] No [S] Suspend [?] Help (default is "Y"): y
Requestld IsSuccessStatusCode StatusCode ReasonPhrase
--------- ------------------- ---------- ------------
          True                OK         OK

Nächste Schritte

In diesem Artikel werden folgende Themen erläutert: