创建具有一个或多个 GPU 的虚拟机 (VM) 实例后,系统需要安装 NVIDIA 设备驱动程序,以便应用可以访问设备。确保您的虚拟机 (VM) 实例具有足够的可用磁盘空间。创建新虚拟机时,您应该至少为启动磁盘选择 40 GB。
如需安装驱动程序,您有以下两种选择:
如果您需要将 GPU 用于硬件加速 3D 图形(例如远程桌面)或用于游戏,请参阅为 NVIDIA RTX 虚拟工作站 (vWS) 安装驱动程序。
对于其他工作负载,请按照本文档中的说明安装 NVIDIA 驱动程序。
NVIDIA 驱动程序、CUDA 工具包和 CUDA 运行时版本
您的环境中可能需要使用不同版本的驱动程序和运行时。其中包括以下组件:
- NVIDIA 驱动程序
- CUDA 工具包
- CUDA 运行时
安装这些组件时,您可以配置环境以满足您的需求。例如,如果您的某个较低版本的 Tensorflow 最适合与某个较低版本的 CUDA 工具包搭配使用,但您想要使用的 GPU 需要更高版本的 NVIDIA 驱动程序,那么您可以安装较低版本的 CUDA 工具包和较高版本的 NVIDIA 驱动程序。
但是,您必须确保 NVIDIA 驱动程序和 CUDA 工具包版本兼容。如需了解 CUDA 工具包和 NVIDIA 驱动程序的兼容性,请参阅关于 CUDA 兼容性的 NVIDIA 文档。
必需的 NVIDIA 驱动程序版本
对于在 Compute Engine 上运行的 NVIDIA GPU,建议使用以下 NVIDIA 驱动程序版本。
机器系列 | NVIDIA GPU 型号 | Linux 推荐的驱动程序 | Windows 推荐的驱动程序 |
---|---|---|---|
A3 | H100 | 550.90.07 | 不适用 |
G2 | L4 | 550.90.07 | 538.67 |
A2 | A100 | 550.90.07 | 538.67 |
N1 | T4、P4、P100 和 V100 | 535.183.01 | 538.67 |
使用 NVIDIA 指南在虚拟机上安装 GPU 驱动程序
在大多数虚拟机上安装 NVIDIA 驱动程序的一种方法是安装 NVIDIA CUDA 工具包。
要安装 NVIDIA 工具包,请完成以下步骤:
在虚拟机上,下载并安装 CUDA 工具包。推荐使用的最低工具包的安装软件包和指南如下表所示。 在安装工具包之前,请确保完成安装指南中的安装前步骤。
机器系列 NVIDIA GPU 型号 Linux 推荐的 CUDA 工具包 Windows 推荐的 CUDA 工具包 A3 H100 - 下载链接:CUDA 工具包 12.4 更新 1
- 安装指南:CUDA 12.4 安装指南
不适用 G2 L4 - 下载链接:CUDA 工具包 12.4 更新 1
- 安装指南:CUDA 12.4 安装指南
- 下载链接:CUDA 工具包 12.2 更新 2
- 安装指南:CUDA 12.2 安装指南
A2 A100 N1 - T4
- V100
- P100
- P4
- 下载链接:CUDA 工具包 12.2
- 安装指南:CUDA 12.2 安装指南
- 下载链接:CUDA 工具包 12.2
- 安装指南:CUDA 12.2 安装指南
使用安装脚本在虚拟机上安装 GPU 驱动程序
您可以使用以下脚本自动执行安装过程。如需查看这些脚本,请参阅 GitHub 代码库。
Linux
按照以下说明在运行的虚拟机上安装 GPU 驱动程序。
支持的操作系统
Linux 安装脚本已在以下操作系统上进行测试:
- Debian 10、11 和 12
- Red Hat Enterprise Linux (RHEL) 8 和 9
- Rocky Linux 8 和 9
- Ubuntu 20、22 和 24
如果您在其他操作系统上使用此脚本,安装可能会失败。此脚本可以安装 NVIDIA 驱动程序和 CUDA 工具包。如需安装 GPU 驱动程序和 CUDA 工具包,请完成以下步骤:
如果安装了 2.38.0 版或更高版本的 Ops Agent 来收集虚拟机上的 GPU 指标,则必须先停止代理,然后才能使用此安装脚本安装或升级 GPU 驱动程序。
完成 GPU 驱动程序的安装或升级后,您必须重新启动虚拟机。
如需停止 Ops Agent,请运行以下命令:
sudo systemctl stop google-cloud-ops-agent
确保您的操作系统上安装了 Python 3。
下载安装脚本。
curl -L https://github.com/GoogleCloudPlatform/compute-gpu-installation/releases/download/cuda-installer-v1.1.0/cuda_installer.pyz --output cuda_installer.pyz
运行安装脚本。
sudo python3 cuda_installer.pyz install_driver
运行脚本需要一些时间。这会重启虚拟机。如果虚拟机重启,请再次运行脚本以继续安装。
验证安装。请参阅验证 GPU 驱动程序安装。
您还可以使用此工具安装 CUDA 工具包。要安装 CUDA 工具包,请运行以下命令:
sudo python3 cuda_installer.pyz install_cuda
此脚本可能至少需要 30 分钟才能完成运行。这会重启虚拟机。如果虚拟机重启,请再次运行脚本以继续安装。
验证 CUDA 工具包安装。
sudo python3 cuda_installer.pyz verify_cuda
Linux(启动脚本)
按照以下说明在虚拟机启动期间安装 GPU 驱动程序。
支持的操作系统
Linux 安装脚本已在以下操作系统上进行测试:
- Debian 10、11 和 12
- Red Hat Enterprise Linux (RHEL) 8 和 9
- Rocky Linux 8 和 9
- Ubuntu 20、22 和 24
如果您在其他操作系统上使用此脚本,安装可能会失败。此脚本可以安装 NVIDIA 驱动程序和 CUDA 工具包。
使用以下启动脚本自动安装驱动程序和 CUDA 工具包:
Windows
此安装脚本可用于启用了安全启动的虚拟机。
- 对于使用 G2 机器系列的 Windows 虚拟机,此脚本仅会安装 NVIDIA 驱动程序。
- 对于其他机器类型,此脚本会安装 NVIDIA 驱动程序和 CUDA 工具包。
以管理员身份打开 PowerShell 终端,然后完成以下步骤:
如果您使用的是 Windows Server 2016,请将传输层安全协议 (TLS) 版本设置为 1.2。
[Net.ServicePointManager]::SecurityProtocol = 'Tls12'
下载脚本。
Invoke-WebRequest https://github.com/GoogleCloudPlatform/compute-gpu-installation/raw/main/windows/install_gpu_driver.ps1 -OutFile C:\install_gpu_driver.ps1
运行脚本。
C:\install_gpu_driver.ps1
运行脚本需要一些时间。安装过程中不会提供命令提示。脚本退出后,驱动程序即会安装。
此脚本会在虚拟机上的以下默认位置安装这些驱动程序:
C:\Program Files\NVIDIA Corporation\
。验证安装。请参阅验证 GPU 驱动程序安装。
安装 GPU 驱动程序(安全启动虚拟机)
以下说明适用于在使用安全启动的 Linux 虚拟机上安装 GPU 驱动程序。
如果您使用的是不使用安全启动的 Windows 虚拟机或 Linux 虚拟机,请改为查看以下说明之一:
对于 Linux 虚拟机,在安全启动虚拟机上安装驱动程序是不同的,因为这些虚拟机要求所有内核模块均由系统信任的密钥进行签名。
这些说明仅适用于在 Ubuntu 18.04、20.04 和 22.04 操作系统上运行的安全启动 Linux 虚拟机。我们正在设法支持更多 Linux 操作系统。
如需在使用安全启动的 Ubuntu 虚拟机上安装 GPU 驱动程序,请完成以下步骤:
更新代码库
sudo apt-get update
搜索最新的 NVIDIA 内核模块软件包或您所需的版本。此软件包包含由 Ubuntu 密钥签名的 NVIDIA 内核模块。如果您要查找早期版本,请更改 tail 参数的数字以获取早期版本。例如,指定
tail -n 2
。Ubuntu PRO 和 LTS
对于 Ubuntu PRO 和 LTS,请运行以下命令:
NVIDIA_DRIVER_VERSION=$(sudo apt-cache search 'linux-modules-nvidia-[0-9]+-gcp$' | awk '{print $1}' | sort | tail -n 1 | head -n 1 | awk -F"-" '{print $4}')
Ubuntu PRO FIPS
对于 Ubuntu PRO FIPS,请运行以下命令:
启用 Ubuntu FIPS 更新。
sudo ua enable fips-updates
关停并重新启动
sudo shutdown -r now
获取最新软件包。
NVIDIA_DRIVER_VERSION=$(sudo apt-cache search 'linux-modules-nvidia-[0-9]+-gcp-fips$' | awk '{print $1}' | sort | tail -n 1 | head -n 1 | awk -F"-" '{print $4}')
您可以通过运行
echo $NVIDIA_DRIVER_VERSION
来检查选定的驱动程序版本。输出是一个类似于455
的版本字符串。安装内核模块软件包和相应的 NVIDIA 驱动程序。
sudo apt install linux-modules-nvidia-${NVIDIA_DRIVER_VERSION}-gcp nvidia-driver-${NVIDIA_DRIVER_VERSION}
如果该命令失败并显示
package not found error
,则表示仓库中可能缺少最新的 NVIDIA 驱动程序。请更改 tail 数字来重试上一步并选择早期驱动程序版本。验证是否已安装 NVIDIA 驱动程序。您可能需要重新启动虚拟机。
如果您重新启动系统来验证 NVIDIA 版本。重新启动后,您需要通过重新运行第 3 步中使用的命令来重置
NVIDIA_DRIVER_VERSION
变量。配置 APT 以使用 NVIDIA 软件包代码库。
要帮助 APT 选择正确的依赖项,请按如下所示 Pin 代码库:
sudo tee /etc/apt/preferences.d/cuda-repository-pin-600 > /dev/null <<EOL Package: nsight-compute Pin: origin *ubuntu.com* Pin-Priority: -1
Package: nsight-systems Pin: origin *ubuntu.com* Pin-Priority: -1
Package: nvidia-modprobe Pin: release l=NVIDIA CUDA Pin-Priority: 600
Package: nvidia-settings Pin: release l=NVIDIA CUDA Pin-Priority: 600
Package: * Pin: release l=NVIDIA CUDA Pin-Priority: 100 EOL安装
software-properties-common
。如果您使用的是 Ubuntu 最小映像,则必须执行此操作。sudo apt install software-properties-common
设置 Ubuntu 版本。
Ubuntu 18.04
对于 Ubuntu 18.04,请运行以下命令:
export UBUNTU_VERSION=ubuntu1804/x86_64
Ubuntu 20.04
对于 Ubuntu 20.04,请运行以下命令:
export UBUNTU_VERSION=ubuntu2004/x86_64
Ubuntu 22.04
对于 Ubuntu 22.04,请运行以下命令:
export UBUNTU_VERSION=ubuntu2204/x86_64
下载
cuda-keyring
软件包。wget https://developer.download.nvidia.com/compute/cuda/repos/$UBUNTU_VERSION/cuda-keyring_1.0-1_all.deb
安装
cuda-keyring
软件包。sudo dpkg -i cuda-keyring_1.0-1_all.deb
添加 NVIDIA 代码库。
sudo add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/$UBUNTU_VERSION/ /"
如果出现提示,请选择默认操作以保留当前版本。
找到兼容的 CUDA 驱动程序版本。
以下脚本确定与我们刚刚安装的 NVIDIA 驱动程序兼容的最新 CUDA 驱动程序版本:
CUDA_DRIVER_VERSION=$(apt-cache madison cuda-drivers | awk '{print $3}' | sort -r | while read line; do if dpkg --compare-versions $(dpkg-query -f='${Version}\n' -W nvidia-driver-${NVIDIA_DRIVER_VERSION}) ge $line ; then echo "$line" break fi done)
您可以通过运行
echo $CUDA_DRIVER_VERSION
来检查 CUDA 驱动程序版本。输出是一个类似于455.32.00-1
的版本字符串。使用上一步中识别的版本安装 CUDA 驱动程序。
sudo apt install cuda-drivers-${NVIDIA_DRIVER_VERSION}=${CUDA_DRIVER_VERSION} cuda-drivers=${CUDA_DRIVER_VERSION}
可选:保留
dkms
软件包。启用安全启动后,所有内核模块必须先签署然后才能加载。
dkms
构建的内核模块不适用于虚拟机,因为在默认情况下它们没有正确签署。这是一个可选步骤,但它有助于防止您将来在无意中安装其他dkms
软件包。如需保留
dkms
软件包,请运行以下命令:sudo apt-get remove dkms && sudo apt-mark hold dkms
安装 CUDA 工具包和运行时。
选择合适的 CUDA 版本。以下脚本确定与我们刚刚安装的 CUDA 驱动程序兼容的最新 CUDA 版本:
CUDA_VERSION=$(apt-cache showpkg cuda-drivers | grep -o 'cuda-runtime-[0-9][0-9]-[0-9],cuda-drivers [0-9\\.]*' | while read line; do if dpkg --compare-versions ${CUDA_DRIVER_VERSION} ge $(echo $line | grep -Eo '[[:digit:]]+\.[[:digit:]]+') ; then echo $(echo $line | grep -Eo '[[:digit:]]+-[[:digit:]]') break fi done)
您可以通过运行
echo $CUDA_VERSION
来检查 CUDA 版本。输出是一个类似于11-1
的版本字符串。安装 CUDA 软件包。
sudo apt install cuda-${CUDA_VERSION}
验证 CUDA 安装。
sudo nvidia-smi
/usr/local/cuda/bin/nvcc --version
第一条命令输出 GPU 信息。第二条命令输出已安装的 CUDA 编译器版本。
验证 GPU 驱动程序安装
驱动程序安装步骤完成后,请验证该驱动程序是否已正确安装和初始化。
Linux
连接到 Linux 实例,然后使用 nvidia-smi
命令验证该驱动程序是否正常运行。
sudo nvidia-smi
输出内容类似如下:
Tue Mar 21 19:50:15 2023 +-----------------------------------------------------------------------------------------+ | NVIDIA-SMI 550.90.07 Driver Version: 550.90.07 CUDA Version: 12.4 | |-----------------------------------------+------------------------+----------------------+ | GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. | | | | MIG M. | |=========================================+========================+======================| | 0 Tesla T4 On | 00000000:00:04.0 Off | 0 | | N/A 50C P8 16W / 70W | 1MiB / 15360MiB | 0% Default | | | | N/A | +-----------------------------------------+------------------------+----------------------+ +-----------------------------------------------------------------------------------------+ | Processes: | | GPU GI CI PID Type Process name GPU Memory | | ID ID Usage | |=========================================================================================| | No running processes found | +-----------------------------------------------------------------------------------------+
如果此命令失败,请查看以下内容:
检查 GPU 是否已挂接到虚拟机。如需检查是否有任何 NVIDIA PCI 设备,请运行以下命令:
sudo lspci | grep -i "nvidia"
检查驱动程序内核版本和虚拟机内核版本是否相同。
如需检查虚拟机内核版本,请运行以下命令:
uname -r
如需检查驱动程序内核版本,请运行以下命令:
sudo apt-cache show linux-modules-nvidia-NVIDIA_DRIVER_VERSION-gcp
如果版本不匹配,请重新启动虚拟机到新的内核版本。
Windows Server
连接到 Windows Server 实例并打开 PowerShell 终端,然后运行以下命令来验证该驱动程序正常运行。
nvidia-smi
输出内容类似如下:
+---------------------------------------------------------------------------------------+ | NVIDIA-SMI 538.67 Driver Version: 538.67 CUDA Version: 12.2 | |-----------------------------------------+----------------------+----------------------+ | GPU Name TCC/WDDM | Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. | | | | MIG M. | |=========================================+======================+======================| | 0 NVIDIA L4 WDDM | 00000000:00:03.0 Off | 0 | | N/A 66C P8 17W / 72W | 128MiB / 23034MiB | 0% Default | | | | N/A | +-----------------------------------------+----------------------+----------------------+ +---------------------------------------------------------------------------------------+ | Processes: | | GPU GI CI PID Type Process name GPU Memory | | ID ID Usage | |=======================================================================================| | 0 N/A N/A 4888 C+G ...CBS_cw5n1h2txyewy\TextInputHost.exe N/A | | 0 N/A N/A 5180 C+G ....Search_cw5n1h2txyewy\SearchApp.exe N/A | +---------------------------------------------------------------------------------------+
后续步骤
- 如需监控 GPU 性能,请参阅监控 GPU 性能。
- 如需处理 GPU 主机维护,请参阅处理 GPU 主机维护事件。
- 如需提升网络性能,请参阅使用更高的网络带宽。
- 如需排查 GPU 虚拟机问题,请参阅排查 GPU 虚拟机问题。