一、操作场景
·驱动 GPU 工作的硬件驱动程序。
·上层应用程序所需要的库。
若把 NVIDIA GPU 用作通用计算,则需安装 Tesla Driver + CUDA。这篇说说如何安装 Tesla Driver,如何安装 CUDA 请参见 安装 CUDA 指引。
注意:说明:
注意:NVIDIA GPU 实例的类型包括物理直通卡实例(整卡 GPU)和 vGPU 实例(非单颗 GPU,例如1/4GPU)。
二、Linux 驱动安装
Linux 驱动安装采用 Shell 脚本安装方式,适用于任何 Linux 发行版,包括 TencentOS,Ubuntu 等。
NVIDIA Tesla GPU 的 Linux 驱动在安装过程中需要编译 kernel module,系统需提前安装 gcc 和编译 Linux Kernel Module 所依赖的包,例如 kernel-devel-$(uname -r) 等。这篇提供 TencentOS 及 Ubuntu 系统操作步骤,请你按需选择:
TencentOS Server 2.4TencentOS Server 3.1Ubuntu
1. 执行以下命令,检查当前系统中是否已安装 dkms。
rpm -q dkms
返回结果如下,则表示已安装 dkms。
如未安装 dkms,则执行以下命令进行安装。
sudo yum install -y dkms
2. 登录 NVIDIA 驱动下载 页面。
3. 根据实例操作系统及实例规格,选择对应系列。实例规格信息请参见 实例类型。这篇以 V100 为例:
注意:选择 Linux 64-bit 即表示下载 shell 安装文件。
4. 单击查找搜寻驱动,选择要下载的驱动版本。
5. 选择特定的版本单击查看进入下载页面,复制下载按钮的链接地址。如下:
6. 参见 使用标准方式登录 Linux 实例(推荐),登录 GPU 实例。你也可以根据实际操作习惯,选择其他不同的登录方式:
·使用远程登录软件登录 Linux 实例
·使用 SSH 登录 Linux 实例
7. 使用 wget 命令,粘贴 步骤5 中复制的链接地址,下载安装包。请将命令中的 xxxx 替换为你复制的链接地址。
wget xxxx
8. 执行以下命令,修改安装包权限。请将命令中的 xxxx 替换为你实际的驱动版本号。
chmod +x NVIDIA-Linux-x86_64-xxxx.run
9. 由于 NVIDIA 驱动的安装需要依赖 kernel-devel 和 kernel-headers,请依次执行以下命令,检查当前系统中是否已安装 kernel-devel 和 kernel-headers 包,且版本要与当前内核版本一致。
rpm -qa |grep -i kernel
返回结果如下,则表示已安装 kernel-devel 和 kernel-headers。
如果在回显信息中,你没有找到当前内核版本的 kernel-devel-* 和 kernel-headers-*,你需要自行安装对应内核版本的 kernel-devel 和 kernel- headers 包。
sudo yum install -y kernel-headers-$(uname -r).tl2.x86_64 kernel-devel-$(uname -r).tl2.x86_64
10. 升级 gcc 版本,TencentOS 2.4 的默认 gcc 版本为 4.8.5,需使用 gcc 8 编译 nvidia 内核模块。
执行如下命令可查看 gcc 版本。
gcc –version
如下所示,gcc 版本为4.8.5。
参考如下步骤使用 SCL(Software Collection) 安装 gcc 8,SCL(Software Collection) 使你能够在系统上构建并同时安装相同组件的多个版本,而不会影响从分发版安装的软件包的系统版本。
sudo yum -y install tlinux-release-scl #安装TencentOS的scl源sudo yum -y install devtoolset-8-gcc #安装scl的提供的gcc 8sudo scl enable devtoolset-8 bash #激活scl提供的gccsudo gcc –version #查看gcc版本
11. 执行命令安装驱动程序,根据提示进行后续操作。请将命令中的 xxxx 替换为你实际的驱动版本号。
sudo sh NVIDIA-Linux-x86_64-xxxx.run –ui=none –disable-nouveau –no-install-libglvnd –dkms –no-cc-version-check -s
12. 安装完成后,执行以下命令进行验证,如返回 GPU 信息,则说明驱动安装成功。
nvidia-smi
13. 重新生成 initramfs。
dracut -f
1. 执行以下命令,检查当前系统中是否已安装 dkms。
rpm -q dkms
返回结果如下,则表示已安装 dkms。
如未安装 dkms,则执行以下命令进行安装。
sudo yum install -y dkms
2. 登录 NVIDIA 驱动下载 页面。
3. 根据实例操作系统及实例规格,选择对应系列。实例规格信息请参见 实例类型。这篇以 V100 为例:
注意:选择 Linux 64-bit 即表示下载 shell 安装文件。
4. 单击查找搜寻驱动,选择要下载的驱动版本。
5. 选择特定的版本单击查看进入下载页面,复制下载按钮的链接地址。如下:
6. 参见 使用标准方式登录 Linux 实例(推荐),登录 GPU 实例。你也可以根据实际操作习惯,选择其他不同的登录方式:
·使用远程登录软件登录 Linux 实例
·使用 SSH 登录 Linux 实例
7. 使用 wget 命令,粘贴 步骤5 中复制的链接地址,下载安装包。请将命令中的 xxxx 替换为你复制的链接地址。
wget xxxx
8. 执行以下命令,修改安装包权限。请将命令中的 xxxx 替换为你实际的驱动版本号。
chmod +x NVIDIA-Linux-x86_64-xxxx.run
9. 由于 NVIDIA 驱动的安装需要依赖 kernel-devel 和 kernel-headers,请依次执行以下命令,检查当前系统中是否已安装 kernel-devel 和 kernel-headers 包,且版本要与当前内核版本一致。
rpm -qa |grep -i kernel
返回结果如下,则表示已安装 kernel-devel 和 kernel-headers。
如果在回显信息中,你没有找到当前内核版本的 kernel-devel-* 和 kernel-headers-*,你需要自行安装对应内核版本的 kernel-devel 和 kernel- headers 包。
sudo yum install -y kernel-headers-$(uname -r).tl3.x86_64 kernel-devel-$(uname -r).tl3.x86_64
10. 执行命令安装驱动程序,根据提示进行后续操作。请将命令中的 xxxx 替换为你实际的驱动版本号。
sudo sh NVIDIA-Linux-x86_64-xxxx.run –ui=none –disable-nouveau –no-install-libglvnd –dkms –no-cc-version-check -s
11. 安装完成后,执行以下命令进行验证,如返回 GPU 信息,则说明驱动安装成功。
nvidia-smi
12. 重新生成 initramfs。
dracut -f
13. 开启常驻模式。
sudo nvidia-persistenced
说明:以下步骤适用于直通卡型(GPU 卡数 ≥ 1)Ubuntu 系统 Tesla 驱动和 GRID 驱动安装,若你使用 GRID 驱动,请参考文档申请和配置 GRID license,详情请参见 安装 NVIDIA GRID 驱动。1. 执行以下命令,检查当前系统中是否已安装 dkms。dpkg -l | grep -i dkms 返回结果如下,则表示已安装 dkms。 若返回结果为空,则表明未安装 dkms,执行以下命令进行安装。sudo apt-get install dkms -y2. 登录 NVIDIA 驱动下载 页面。3. 根据实例操作系统及实例规格,选择对应系列。实例规格信息请参见 实例类型。这篇以 V100 为例:注意:选择 Linux 64-bit 即表示下载 shell 安装文件。4. 单击查找搜寻驱动,选择要下载的驱动版本。5. 选择特定的版本单击查看进入下载页面,复制下载按钮的链接地址。如下:6. 参见 使用标准方式登录 Linux 实例(推荐),登录 GPU 实例。7. 使用 wget 命令,粘贴 步骤5 中复制的链接地址,下载安装包。请将命令中的 xxxx 替换为你复制的链接地址。wget xxxx8. 执行以下命令,修改安装包权限。请将命令中的 xxxx 替换为你实际的驱动版本号。chmod +x NVIDIA-Linux-x86_64-xxxx.run9. 由于 NVIDIA 驱动的安装需要依赖 gcc 和 linux-kernel-headers,请依次执行以下命令,检查当前系统中是否已安装 gcc 和 kernel-devel 包。dpkg -l | grep -i gccdpkg -l | grep -i linux-headers返回结果如下,则表示已安装 gcc 和 kernel-devel。若返回结果为空,则表明未安装,执行以下命令进行安装。sudo apt-get install gcc linux-headers-$(uname -r) -y10. 安装 libgl1-mesa-glx。sudo apt install libgl1-mesa-glx -y11. 执行命令安装驱动程序,根据提示进行后续操作。请将命令中的 xxxx 替换为你实际的驱动版本号。sudo sh NVIDIA-Linux-x86_64-xxxx.run –ui=none –disable-nouveau –no-install-libglvnd –dkms –no-cc-version-check -s12. 安装完成后,执行以下命令进行验证,如返回 GPU 信息,则说明驱动安装成功。nvidia-smi13. 更新 initramfs。sudo update-initramfs -u 14. 开启常驻模式。sudo nvidia-persistenced
三、安装失败原因
Linux 系统驱动安装失败表现为 nvidia-smi 无法工作,通常原因如下:
1. 系统缺乏编译 kernel module 所需要的包,如 gcc、kernel-devel-xxx 等,导致无法编译,最终安装失败。
2. 系统里面存在多个版本的 kernel,由于 DKMS 的不正确配置,导致驱动编译为非当前版本 kernel 的 kernel module,导致 kernel module 安装失败。
3. 安装驱动后,升级了 kernel 版本导致原来的安装失效。
4. 确认是否有安装 nouveau 驱动,如果有安装需卸载。