在运行 Linux 的 N 系列 VM 上安装 NVIDIA GPU 驱动程序
注意
本文引用了 CentOS,这是一个处于生命周期结束 (EOL) 状态的 Linux 发行版。 请相应地考虑你的使用和规划。 有关详细信息,请参阅 CentOS 生命周期结束指南。
适用于:✔️ Linux VM
若要利用 NVIDIA GPU 支持的 Azure N 系列 VM 的 GPU 功能,必须安装 NVIDIA GPU 驱动程序。
如果选择手动安装 NVIDIA GPU 驱动程序,本文提供受支持的分发版、驱动程序以及安装和验证步骤。 针对 Windows VM 也提供了驱动程序手动安装信息。
有关 N 系列 VM 规格、存储容量和磁盘详细信息,请参阅 GPU Linux VM 大小。
支持的分发和驱动程序
NVIDIA CUDA 驱动程序
有关最新的 CUDA 驱动程序和支持的操作系统,请访问 NVIDIA 网站。 确保为你的发行版安装或升级到最新支持的 CUDA 驱动程序。
注意
Azure NVads A10 v5 VM 仅支持 GRID 14.1 (510.73) 或更高驱动程序版本。 A10 SKU 的 vGPU 驱动程序是一个支持图形和计算工作负载的统一驱动程序。
提示
作为一种在 Linux VM 上手动安装 CUDA 驱动程序的替代方法,可以部署 Azure 数据科学虚拟机映像。 Ubuntu 16.04 LTS 的 DSVM 版本会预安装 NVIDIA CUDA 驱动程序、CUDA 深度神经网络库和其他工具。
NVIDIA GRID 驱动程序
Microsoft 为用作虚拟工作站或用于虚拟应用程序的 NV 和 NVv3 系列 VM,重新分发 NVIDIA GRID 驱动程序安装程序。 请仅在下表所列操作系统上的 Azure NV VM 上安装这些 GRID 驱动程序。 这些驱动程序包括 Azure 中 GRID Virtual GPU Software 的许可。 不需要设置 NVIDIA vGPU 软件许可证服务器。
Azure 重新分发的 GRID 驱动程序不适用于大多数非 NV 系列 VM(如 NCv3 VM),但适用于 NCasT4v3 系列。
有关特定 vGPU 和驱动程序分支版本的详细信息,请访问 NVIDIA 网站。
分发 | 驱动程序 |
---|---|
Ubuntu 20.04 LTS、22.04 LTS Red Hat Enterprise Linux 7.9、8.6、8.8、8.9 SUSE Linux Enterprise Server 15 SP2、12 SP2、12 SP5 Rocky Linux 8.4 |
NVIDIA vGPU 16.5,驱动程序分支 R535 (.exe) NVIDIA vGPU 16.3,驱动程序分支 R535 (.exe) |
注意
对于 Azure NVads A10 v5 VM,建议客户始终使用最新版本的驱动程序。 最新的 NVIDIA 主要驱动程序分支 (n) 仅与上一个主要分支 (n-1) 向后兼容。 例如,vGPU 17.x 仅与 vGPU 16.x 向后兼容。 向 Azure 主机推出到最新的驱动器分支时,任何仍然运行 n-2 或更低版本的 VM 都可能会出现驱动程序故障。
有关所有以前的 Nvidia GRID 驱动程序链接的完整列表,请访问 GitHub。
警告
在 Red Hat 产品上安装第三方软件可能会影响 Red Hat 支持条款。 请参阅 Red Hat 知识库文章。
在 N 系列 VM 上安装 CUDA 驱动程序
从 NVIDIA CUDA 工具包在 N 系列 VM 上安装 CUDA 驱动程序的步骤如下。
C 和 C++ 开发人员可以选择安装完整的工具包来生成 GPU 加速应用程序。 有关详细信息,请参阅 CUDA 安装指南。
要安装 CUDA 驱动程序,请建立到每个 VM 的 SSH 连接。 若要验证系统是否具有支持 CUDA 的 GPU,请运行以下命令:
lspci | grep -i NVIDIA
输出类似于以下示例(显示 NVIDIA Tesla K80 卡):
lspci 列出了 VM 上的 PCIe 设备,包括 InfiniBand NIC 和 GPU(如果有)。 如果 lspci 没有成功返回,你可能需要在 CentOS/RHEL 上安装 LIS。
然后,运行特定于分发的安装命令。
Ubuntu
Ubuntu 打包 NVIDIA 专有驱动程序。 这些驱动程序直接来自 NVIDIA,只是由 Ubuntu 打包,以便系统可以自动管理这些驱动程序。 从另一个源下载和安装驱动程序可能会导致系统损坏。 此外,安装第三方驱动程序需要在启用了 TrustedLaunch 和安全启动的 VM 上执行额外步骤。 他们要求用户为系统添加新的计算机所有者密钥才能启动。 来自 Ubuntu 的驱动程序由 Canonical 签名,适用于安全启动。
安装
ubuntu-drivers
实用工具:sudo apt update && sudo apt install -y ubuntu-drivers-common
安装最新的 NVIDIA 驱动程序:
sudo ubuntu-drivers install
安装 GPU 驱动程序后重新启动 VM。
从 NVIDIA 下载并安装 CUDA 工具包:
注意
此示例显示了 Ubuntu 24.04 LTS 的 CUDA 包路径。 替换特定于你计划使用的版本的路径。
请访问 NVIDIA 下载中心 或 NVIDIA CUDA 资源页 ,获取特定于每个版本的完整路径。
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb sudo apt install -y ./cuda-keyring_1.1-1_all.deb sudo apt update sudo apt -y install cuda-toolkit-12-5
安装可能需要几分钟。
安装完成后重启 VM:
sudo reboot
验证是否已正确识别 GPU(重启后):
nvidia-smi
NVIDIA 驱动程序更新
在部署后,建议定期更新 NVIDIA 驱动程序。
sudo apt update
sudo apt full-upgrade
CentOS 或 Red Hat Enterprise Linux
更新内核(建议)。 如果选择不更新内核,请确保
kernel-devel
和dkms
的版本适合你的内核。sudo yum install kernel kernel-tools kernel-headers kernel-devel sudo reboot
安装最新的适用于 Hyper-V 和 Azure 的 Linux 集成服务。 通过验证 lspci 的结果来检查是否需要 LIS。 如果所有 GPU 设备都按预期列出,则不需要安装 .LIS。
LIS 适用于 Red Hat Enterprise Linux、CentOS 和 Oracle Linux Red Hat 兼容内核 5.2-5.11、6.0-6.10 和 7.0-7.7。 有关更多详细信息,请参阅 Linux Integration Services 文档。 如果计划使用 CentOS/RHEL 7.8(或更高版本),请跳过此步骤,因为这些版本不再需要 LIS。
wget https://aka.ms/lis tar xvzf lis cd LISISO sudo ./install.sh sudo reboot
重新连接到 VM 并使用以下命令继续安装:
sudo rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm sudo yum-config-manager --add-repo https://developer.download.nvidia.com/compute/cuda/repos/rhel7/x86_64/cuda-rhel7.repo sudo yum clean all sudo yum -y install nvidia-driver-latest-dkms cuda-drivers
安装可能需要几分钟。
注意
请访问 Fedora 和 Nvidia CUDA 存储库,为要使用的 CentOS 或 RHEL 版本选择正确的包。
例如,CentOS 8 和 RHEL 8 需要以下步骤。
sudo rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
sudo yum install dkms
sudo wget https://developer.download.nvidia.com/compute/cuda/repos/rhel8/x86_64/cuda-rhel8.repo -O /etc/yum.repos.d/cuda-rhel8.repo
sudo yum install cuda-drivers
若要安装完整的 CUDA 工具包,请键入:
sudo yum install cuda
注意
如果你看到与缺少 vulkan-filesystem 等包有关的错误消息,则可能需要编辑 /etc/yum.repos.d/rh-cloud,寻找 optional-rpms 并将“已启用”设置为“1”
重新启动 VM,并继续验证安装。
验证驱动程序安装
要查询 GPU 设备状态,请建立到 VM 的 SSH 连接,并运行与驱动程序一起安装的 nvidia-smi 命令行实用工具。
如果已安装驱动程序,Nvidia SMI 会将 GPU-Util 列为 0%,直到你在 VM 上运行 GPU 工作负载。 驱动程序版本和 GPU 详细信息可能与所示的内容不同。
RDMA 网络连接
可以在支持 RDMA 的 N 系列 VM(例如 NC24r)上启用 RDMA 网络连接,这些 VM 部署在同一可用性集中或虚拟机 (VM) 规模集的单个放置组中。 对于使用 Intel MPI 5.x 或更高版本运行的应用程序,RDMA 网络支持消息传递接口 (MPI) 流量:
分发
在 N 系列 VM 上,在支持 RDMA 连接的 Azure 市场中,从以下映像之一部署支持 RDMA 的 N 系列 VM:
Ubuntu 16.04 LTS - 在 VM 上配置 RDMA 驱动程序,并注册 Intel 下载 Intel MPI:
安装 dapl、rdmacm、ibverbs 和 mlx4
sudo apt-get update sudo apt-get install libdapl2 libmlx4-1
在 /etc/waagent.conf 中,通过取消注释以下配置行来启用 RDMA。 需要根访问权限才能编辑该文件。
OS.EnableRDMA=y OS.UpdateRdmaDriver=y
在 /etc/security/limits.conf 文件中,添加或更改 KB 中的以下内存设置。 需要根访问权限才能编辑该文件。 出于测试目的,可以将 memlock 设置为不受限制。 例如:
<User or group name> hard memlock unlimited
。<User or group name> hard memlock <memory required for your application in KB> <User or group name> soft memlock <memory required for your application in KB>
安装 Intel MPI 库。 从 Intel 购买和下载库或下载免费评估版本。
wget http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/9278/l_mpi_p_5.1.3.223.tgz
仅支持 Intel MPI 5.x 运行时。
有关安装步骤,请参阅 Intel MPI 库安装指南。
启用非根非调试器进程的 ptrace(为最新版本的 Intel MPI 所需)。
echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope
基于 CentOS 的 7.4 HPC - 在 VM 上安装 RDMA 驱动程序和 Intel MPI 5.1。
基于 CentOS 的 HPC - CentOS-HPC 7.6 及更高版本(适用于通过 SR-IOV 支持 InfiniBand 的 SKU)。 这些映像预安装了 Mellanox OFED 和 MPI 库。
注意
仅 Mellanox OFED 的 LTS 版本支持 CX3-Pro 卡。 在带有 ConnectX3-Pro 卡的 N 系列 VM 上使用 LTS Mellanox OFED 版本 (4.9-0.1.7.0)。 有关详细信息,请参阅 Linux 驱动程序。
另外,某些最新的 Azure 市场 HPC 映像具有 Mellanox OFED 5.1 及更高版本,这些版本不支持 ConnectX3-Pro 卡。 请先检查 HPC 映像中的 Mellanox OFED 版本,然后再将其用于带有 ConnectX3-Pro 卡的 VM。
以下映像是支持 ConnectX3-Pro 卡的最新 CentOS-HPC 映像:
- OpenLogic:CentOS-HPC:7.6:7.6.2020062900
- OpenLogic:CentOS-HPC:7_6gen2:7.6.2020062901
- OpenLogic:CentOS-HPC:7.7:7.7.2020062600
- OpenLogic:CentOS-HPC:7_7-gen2:7.7.2020062601
- OpenLogic:CentOS-HPC:8_1:8.1.2020062400
- OpenLogic:CentOS-HPC:8_1-gen2:8.1.2020062401
疑难解答
- 可以使用
nvidia-smi
设置持久性模式,以便在需要查询卡时该命令的输出更快。 若要设置持久性模式,请执行nvidia-smi -pm 1
。 请注意,如果重启 VM,此模式设置将消失。 你可以始终将该模式设置编写为在启动时执行。 - 如果已将 NVIDIA CUDA 驱动程序更新到最新版本,并且发现 RDMA 连接不再工作,请重新安装 RDMA 驱动程序以重新建立该连接。
- 安装 LIS 期间,如果 LIS 不支持特定的 CentOS/RHEL OS 版本(或内核),则会引发“内核版本不受支持”错误。 请报告此错误以及 OS 和内核版本。
- 如果作业被 GPU 上的 ECC 错误中断(可纠正或无法纠正),请先检查 GPU 是否符合 Nvidia 的任何 ECC 错误的 RMA 标准。 如果 GPU 符合 RMA 标准,请联系支持人员处理;否则,请按照此处所述,重新启动 VM 以重新附加 GPU。 入侵性较小的方法(如
nvidia-smi -r
)不能与 Azure 中部署的虚拟化解决方案一起使用。
后续步骤
- 若要捕获安装了 NVIDIA 驱动程序的 Linux VM 映像,请参阅如何通用化和捕获 Linux 虚拟机。