你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
在 Azure Stack Edge Pro GPU 设备的 VM 上安装 GPU 扩展
适用范围:Azure Stack Edge Pro - GPUAzure Stack Edge Pro 2Azure Stack Edge Pro R
本文介绍如何安装 GPU 驱动程序扩展,以在 Azure Stack Edge 设备上运行的 GPU VM 上安装适当的 Nvidia 驱动程序。 本文介绍在 Windows 和 Linux VM 上使用 Azure 资源管理器模板安装 GPU 扩展的安装步骤。
注意
- 在 Azure 门户中,可以在 VM 创建期间或部署 VM 之后安装 GPU 扩展。 有关步骤和要求,请参阅部署 GPU 虚拟机。
- 如果你运行的是 Windows 2016 VHD,则必须先在 VM 中启用 TLS 1.2,然后才能在 2205 及更高版本上安装 GPU 扩展。 有关详细步骤,请参阅排查 Azure Stack Edge Pro GPU 上的 GPU VM 的 GPU 扩展问题。
先决条件
在设备上运行的 GPU VM 上安装 GPU 扩展之前,请确保:
你有权访问在其上部署了一个或多个 GPU VM 的 Azure Stack Edge 设备。 请参阅如何在设备上部署 GPU VM。
请确保设备上为计算网络启用的端口已连接到 Internet 并具有访问权限。 GPU 驱动程序是通过 Internet 访问下载的。
在下面的示例中,端口 2 已连接到 Internet 并用于启用计算网络。 如果未在环境中部署 Kubernetes,可以跳过 Kubernetes 节点 IP 和外部服务 IP 分配。
将 GPU 扩展模板和参数文件下载到客户端计算机。 将它解压缩到用作工作目录的目录中。
验证用于访问设备的客户端是否仍通过 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/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>
扩展执行输出将记录到以下文件。 请参考文件 C:\Packages\Plugins\Microsoft.HpcCompute.NvidiaGpuDriverWindows\1.3.0.0\Status
以跟踪安装状态。
成功安装会显示一条 message
,其中包含 Enable Extension
和 success
的 status
。
"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
后续步骤
了解如何: