你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

在 Azure Stack Edge Pro GPU 设备的 VM 上安装 GPU 扩展

适用范围:适用于 Pro - GPU SKUAzure Stack Edge Pro - GPU对于 Pro 2 SKU 是必需的Azure Stack Edge Pro 2对于 Pro R SKU 是必需的Azure Stack Edge Pro R

本文介绍如何安装 GPU 驱动程序扩展,以在 Azure Stack Edge 设备上运行的 GPU VM 上安装适当的 Nvidia 驱动程序。 本文介绍在 Windows 和 Linux VM 上使用 Azure 资源管理器模板安装 GPU 扩展的安装步骤。

注意

先决条件

在设备上运行的 GPU VM 上安装 GPU 扩展之前,请确保:

  1. 你有权访问在其上部署了一个或多个 GPU VM 的 Azure Stack Edge 设备。 请参阅如何在设备上部署 GPU VM

    • 请确保设备上为计算网络启用的端口已连接到 Internet 并具有访问权限。 GPU 驱动程序是通过 Internet 访问下载的。

      在下面的示例中,端口 2 已连接到 Internet 并用于启用计算网络。 如果未在环境中部署 Kubernetes,可以跳过 Kubernetes 节点 IP 和外部服务 IP 分配。

      Azure Stack Edge 设备的“计算”窗格的屏幕截图。其中突出显示了端口 2 的“计算”设置。

  2. 将 GPU 扩展模板和参数文件下载到客户端计算机。 将它解压缩到用作工作目录的目录中。

  3. 验证用于访问设备的客户端是否仍通过 Azure PowerShell 连接到 Azure 资源管理器。 与 Azure 资源管理器的连接每 1.5 小时或每当 Azure Stack Edge 设备重启时过期一次。 如果发生这种情况,所执行的任何 cmdlet 都将返回错误消息,表示不再连接到 Azure。 你须再次登录。 有关详细说明,请参阅连接到 Azure Stack Edge 设备上的 Azure 资源管理器

编辑参数文件

根据 VM 的操作系统,可以安装适用于 Windows 或 Linux 的 GPU 扩展。

要为现有 VM 部署 Nvidia GPU 驱动程序,请编辑 addGPUExtWindowsVM.parameters.json 参数文件,然后部署模板 addGPUextensiontoVM.json

版本 2205 及更高版本

文件 addGPUExtWindowsVM.parameters.json 采用以下参数:

"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"
	}
	}
	}

低于 2205 的版本

文件 addGPUExtWindowsVM.parameters.json 采用以下参数:

"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"
	}
	}
	}

部署模板

部署模板 addGPUextensiontoVM.json 以在现有 VM 上安装扩展。

运行以下命令:

$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>"

注意

扩展部署是一个长时间运行的作业,大约需要 10 分钟才能完成。

下面是示例输出:

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>

跟踪部署

若要检查给定 VM 的扩展的部署状态,请打开另一个 PowerShell 会话(以管理员身份运行),然后运行以下命令:

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

下面是示例输出:

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/947b3cfd-7a1b-4a90-7cc5-e52caf221332/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>

扩展执行输出将记录到以下文件。 请参考文件 C:\Packages\Plugins\Microsoft.HpcCompute.NvidiaGpuDriverWindows\1.3.0.0\Status 以跟踪安装状态。

成功安装会显示一条 message,其中包含 Enable Extensionsuccessstatus

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

验证驱动程序安装

登录到 VM 并运行随驱动程序安装的 nvidia-smi 命令行实用工具。

版本 2205 及更高版本

nvidia-smi.exe 位于 C:\Windows\System32\nvidia-smi.exe。 如果你没有看到此文件,可能是因为驱动程序安装仍在后台运行。 请等待 10 分钟,然后再次查看。

低于 2205 的版本

nvidia-smi.exe 位于 C:\Program Files\NVIDIA Corporation\NVSMI\nvidia-smi.exe。 如果你没有看到此文件,可能是因为驱动程序安装仍在后台运行。 请等待 10 分钟,然后再次查看。

如果驱动程序安装成功,你会看到类似以下示例的输出:

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>

有关详细信息,请参阅适用于 Windows 的 Nvidia GPU 驱动程序扩展

注意

安装完 GPU 驱动程序和 GPU 扩展后,不再需要使用具有 Internet 访问权限的端口进行计算。

删除 GPU 扩展

要删除 GPU 扩展,请使用以下命令:

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

下面是示例输出:

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

后续步骤

了解如何: