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

适用于 Linux 的 NVIDIA GPU 驱动程序扩展

注意

本文引用了 CentOS,这是一个接近生命周期结束 (EOL) 状态的 Linux 发行版。 请相应地考虑你的使用和规划。 有关详细信息,请参阅 CentOS 生命周期结束指南

此扩展在 Linux N 系列虚拟机 (VM) 上安装 NVIDIA GPU 驱动程序。 根据 VM 系列,此扩展安装 CUDA 或 GRID 驱动程序。 使用此扩展安装 NVIDIA 驱动程序时,即表示你接受并同意 NVIDIA 最终用户许可协议的条款。 在安装过程中,VM 可能会重新启动以完成驱动程序安装。

我们提供了有关手动安装驱动程序和当前支持的版本的说明。 此扩展也可用于在 Windows N 系列 VM 上安装 NVIDIA GPU 驱动程序。

注意

启用安全启动后,所有 OS 启动组件(启动加载程序、内核、内核驱动程序)都必须由受信任的发布者(系统信任的密钥)签名。 不支持使用 Windows 或 Linux 扩展进行安全启动。 有关在启用安全启动的情况下手动安装 GPU 驱动程序的详细信息,请参阅适用于 Linux 的 Azure N 系列 GPU 驱动程序安装

注意

安装扩展后,GPU 驱动程序扩展不会自动更新驱动程序。 如果需要移动到较新的驱动程序版本,请手动下载并安装驱动程序,或者移除再添加扩展。

先决条件

操作系统

此扩展支持以下 OS 发行版,具体取决于特定 OS 版本对驱动程序的支持:

分发 版本
Linux:Ubuntu 20.04 LTS
Linux:Red Hat Enterprise Linux 7.9
Linux:CentOS 7

注意

NC 系列 VM 所支持的最新 CUDA 驱动程序当前为 470.82.01。 NC 中的 K80 卡不支持更高版本的驱动程序。 虽然在终止对 NC 的支持时扩展得到了更新,但请为 NC 系列的 K80 卡手动安装 CUDA 驱动程序。

重要

本文档引用临近或处于生命周期终止 (EOL) 日期的 Linux 发行版本。 请考虑更新到最新版本。

Internet 连接

用于 NVIDIA GPU 驱动程序的 Microsoft Azure 扩展要求目标 VM 连接到 Internet 并具有访问权限。

扩展架构

以下 JSON 显示此扩展的架构:

{
  "name": "<myExtensionName>",
  "type": "extensions",
  "apiVersion": "2015-06-15",
  "location": "<location>",
  "dependsOn": [
    "[concat('Microsoft.Compute/virtualMachines/', <myVM>)]"
  ],
  "properties": {
    "publisher": "Microsoft.HpcCompute",
    "type": "NvidiaGpuDriverLinux",
    "typeHandlerVersion": "1.6",
    "autoUpgradeMinorVersion": true,
    "settings": {
    }
  }
}

属性

名称 值/示例 数据类型
apiVersion 2015-06-15 date
publisher Microsoft.HpcCompute string
type NvidiaGpuDriverLinux string
typeHandlerVersion 1.6 int

设置

所有设置都是可选的。 默认行为是,如果安装驱动程序时不要求更新内核,则不进行更新,请安装最新的受支持驱动程序和 CUDA 工具包(根据情况)。

名称 说明 默认值 有效值 数据类型
updateOS 更新内核,即使安装驱动程序时不需要更新。 false true、false boolean
driverVersion NV:GRID 驱动程序版本。
NC/ND:CUDA 工具包版本。 将自动安装所选 CUDA 的最新驱动程序。
最新 受支持的驱动程序版本的列表 string
installCUDA 安装 CUDA 工具包。 仅适用于 NC/ND 系列 VM。 true true、false boolean

部署

Azure 门户

可以在 Azure 门户中部署 Azure NVIDIA VM 扩展。

  1. 在浏览器中转到 Azure 门户

  2. 转到要安装驱动程序的虚拟机。

  3. 在左侧菜单中,选择“扩展”。

    显示在 Azure 门户菜单中选择“扩展”的屏幕截图。

  4. 选择“添加” 。

    显示为所选 VM 添加 VM 扩展的屏幕截图。

  5. 滚动以找到并选择“NVIDIA GPU 驱动程序扩展”,然后选择“下一步”。

    显示选择 NVIDIA GPU 驱动程序扩展的屏幕截图。

  6. 选择“查看和创建”,然后选择“创建”。 等待几分钟,让驱动程序完成部署。

    显示选择“查看 + 创建”按钮的屏幕截图。

  7. 验证是否已将扩展添加到已安装扩展的列表。

    显示 VM 的扩展列表中的新扩展的屏幕截图。

Azure 资源管理器模板

可使用 Azure 资源管理器模板部署 Azure VM 扩展。 部署需要部署后配置的一个或多个虚拟机时,模板是理想选择。

虚拟机扩展的 JSON 配置可以嵌套在虚拟机资源内,或放置在资源管理器 JSON 模板的根级别或顶级别。 JSON 的位置会影响资源名称和类型的值。 有关详细信息,请参阅设置子资源的名称和类型

以下示例假定扩展嵌套在虚拟机资源内。 嵌套扩展资源时,JSON 放置在虚拟机的 "resources": [] 对象中。

{
  "name": "myExtensionName",
  "type": "extensions",
  "location": "[resourceGroup().location]",
  "apiVersion": "2015-06-15",
  "dependsOn": [
    "[concat('Microsoft.Compute/virtualMachines/', myVM)]"
  ],
  "properties": {
    "publisher": "Microsoft.HpcCompute",
    "type": "NvidiaGpuDriverLinux",
    "typeHandlerVersion": "1.6",
    "autoUpgradeMinorVersion": true,
    "settings": {
    }
  }
}

PowerShell

Set-AzVMExtension
    -ResourceGroupName "myResourceGroup" `
    -VMName "myVM" `
    -Location "southcentralus" `
    -Publisher "Microsoft.HpcCompute" `
    -ExtensionName "NvidiaGpuDriverLinux" `
    -ExtensionType "NvidiaGpuDriverLinux" `
    -TypeHandlerVersion 1.6 `
    -SettingString '{ `
	}'

Azure CLI

以下示例对上述资源管理器和 PowerShell 示例建立了镜像:

az vm extension set \
  --resource-group myResourceGroup \
  --vm-name myVM \
  --name NvidiaGpuDriverLinux \
  --publisher Microsoft.HpcCompute \
  --version 1.6

以下示例还添加了两个可选的自定义设置,作为非默认驱动程序安装的示例。 具体而言,它将 OS 内核更新为最新版本,并安装特定的 CUDA 工具包版本驱动程序。 同样,请注意,--settings 是可选项,并且是默认设置。 更新内核可能会增加扩展安装时间。 另外,选择的特定(较旧)CUDA 工具包版本可能并不总是与较新的内核兼容。

az vm extension set \
  --resource-group myResourceGroup \
  --vm-name myVM \
  --name NvidiaGpuDriverLinux \
  --publisher Microsoft.HpcCompute \
  --version 1.6 \
  --settings '{ \
    "updateOS": true, \
    "driverVersion": "10.0.130" \
  }'

故障排除和支持

疑难解答

可从 Azure 门户检索有关扩展部署状态的数据,也可使用 Azure PowerShell 和 Azure CLI 检索。 若要查看给定 VM 的扩展部署状态,请运行以下命令:

Get-AzVMExtension -ResourceGroupName myResourceGroup -VMName myVM -Name myExtensionName
az vm extension list --resource-group myResourceGroup --vm-name myVM -o table

扩展执行输出将记录到以下文件。 请参考此文件以跟踪(任何长期运行的)安装的状态以及对任何故障进行排查。

/var/log/azure/nvidia-vmext-status

退出代码

退出代码 含义 可能的操作
0 操作成功
1 扩展的用法不正确 检查执行输出日志。
10 用于 Hyper-V 和 Azure 的 Linux Integration Services 不可用或未安装 查看 lspci 的输出。
11 在此 VM 大小上找不到 NVIDIA GPU 请使用支持的 VM 大小和 OS
12 不支持的映像产品/服务
13 不支持的 VM 大小 请使用 N 系列 VM 部署。
14 操作失败 检查执行输出日志。

支持

如果对本文中的任何内容需要更多帮助,可以联系 MSDN Azure 和 Stack Overflow 论坛上的 Azure 专家。 或者,你也可以提出 Azure 支持事件。 转到 Azure 门户,然后选择“获取支持”。 有关使用 Azure 支持的信息,请阅读 Azure 支持常见问题解答

后续步骤