您可以在创建GPU计算型实例(Linux)时自动配置Linux系统的GPU驱动,也可以在创建GPU计算型实例(Linux)后手动安装Linux系统的GPU驱动。本文为您介绍如何为Linux操作系统的GPU计算型实例手动安装GPU驱动。
背景信息
GPU计算型实例仅支持安装与其操作系统一致的GPU驱动,本文重点为您介绍手动安装Linux操作系统的GPU驱动的相关操作。
适用场景
本文操作适用于以下情况同时满足的业务场景。
如果您在创建GPU计算型实例时未配置自动安装GPU驱动,或者在公共镜像中没有您需要的操作系统或版本,您可以参考本文操作手动安装GPU驱动。
针对深度学习、AI等通用计算业务场景或者OpenGL、Direct3D等图形计算场景,如果您需要使用Linux操作系统的GPU计算型实例应用于该场景时,建议您安装GPU驱动(Linux)。
针对所有Linux操作系统的GPU计算型实例,如需安装GPU驱动(Linux),请参考本文操作。GPU计算型实例规格的更多信息,请参见GPU计算型。
操作步骤
如果您创建的GPU实例规格族为gn7,目前仅支持安装Driver 510.47.03(不含510.47.03)以下版本的驱动。
下载GPU驱动。
访问NVIDIA驱动下载。
设置搜索条件后,单击搜索查找适用的驱动程序。

设置项说明如下所示:
设置项 | 说明 | 示例 |
| 根据实例规格配备的GPU选择对应的产品类型、产品系列和产品家族。
说明 关于如何查看GPU实例的详细信息(实例ID、实例规格以及操作系统等),具体操作,请参见查看实例信息。 | Data Center / Tesla A-Series NVDIA A10
|
操作系统 | 根据实例使用的镜像选择对应的Linux操作系统版本。 | Linux 64-bit |
CUDA Toolkit | 选择CUDA Toolkit版本。 | 11.4 |
语言 | 选择驱动对应的语言。 | Chinese (Simplified) |
最新 | 默认项为全部,保持默认选项即可。 | 全部 |
各GPU计算型规格的GPU信息如下所示:
信息项 | gn4 | gn5 | gn5i | gn6v | gn6i | gn6e | gn7 | gn7i | gn7e |
产品类型 | Data Center / Tesla | Data Center / Tesla | Data Center / Tesla | Data Center / Tesla | Data Center / Tesla | Data Center / Tesla | Data Center / Tesla | Data Center / Tesla | Data Center / Tesla |
产品系列 | M-Class | P-Series | P-Series | V-Series | T-Series | V-Series | A-Series | A-Series | A-Series |
产品家族 | M40 | Tesla P100 | Tesla P4 | Tesla V100 | Tesla T4 | Tesla V100 | NVIDIA A100 | NVIDIA A10 | NVIDIA A100 |
说明 上表中仅列出部分常用GPU计算型实例规格的GPU信息,具有相同GPU显卡的实例,对应的GPU信息(产品类型、产品系列和产品家族)相同。例如,ebmgn7i与gn7i的GPU显卡都为NVIDIA A10,所以这两个实例对应的产品类型、产品系列和产品家族相同。
在搜索到的驱动程序列表下,选择需要下载的驱动版本(例如驱动版本为470.161.03),单击对应的驱动名称。
在待下载驱动的详情页面,单击下载。

在NVIDIA驱动程序下载页面,右键单击同意并开始下载并选择复制链接地址。

选择以下任一种方式远程连接GPU实例。
使用wget
命令,并粘贴您在步骤1中复制的驱动下载链接,执行命令下载安装包。
命令示例如下所示:
wget https://us.download.nvidia.com/tesla/470.161.03/NVIDIA-Linux-x86_64-470.161.03.run
安装GPU驱动。
不同操作系统实例,安装GPU驱动的方法有所不同,具体操作如下所示。
CentOS操作系统
执行以下命令,查询GPU实例中是否安装kernel-devel和kernel-headers包。
rpm -qa | grep $(uname -r)
如果回显类似如下信息,即包含了kernel-devel和kernel-headers包的版本信息,表示已安装。
kernel-3.10.0-1062.18.1.el7.x86_64
kernel-devel-3.10.0-1062.18.1.el7.x86_64
kernel-headers-3.10.0-1062.18.1.el7.x86_64
如果在回显信息中,您没有找到kernel-devel-*和kernel-headers-*内容,您需要自行下载并安装kernel对应版本的kernel-devel和kernel-headers包。
重要 kernel-devel和kernel版本不一致会导致在安装driver rpm过程中driver编译出错。因此,请您确认回显信息中kernel-*的版本号后,再下载对应版本的kernel-devel。在示例回显信息中,kernel的版本号为3.10.0-1062.18.1.el7.x86_64。
授权并安装GPU驱动。
以操作系统是Linux 64-bit的驱动为例,您下载的GPU驱动为.run格式,例如:NVIDIA-Linux-x86_64-xxxx.run。分别执行以下命令,授权并安装GPU驱动。
chmod +x NVIDIA-Linux-x86_64-xxxx.run
sh NVIDIA-Linux-x86_64-xxxx.run
执行以下命令,查看GPU驱动是否安装成功。
nvidia-smi
回显信息类似如下所示,表示GPU驱动安装成功。

(可选)通过NVIDIA Persistence Daemon方式开启Persistence-M属性。
GPU驱动安装完成后,Persistence-M默认为关闭(off
)状态,GPU驱动在开启Persistence-M属性状态下性能更稳定。为了业务更稳定地进行,建议您通过NVIDIA Persistence Daemon方式开启Persistence-M属性。更多信息,请参见Persistence Daemon。
说明 Persistence-M(即Persistence Mode)是用户可设置的驱动程序属性术语,该属性可以使目标GPU保持初始化状态。
NVIDIA先前通过Persistence Mode(Legacy)方式开启Persistence-M(即通过执行nvidia-smi -pm 1
命令的方式),该方式即将到达使用期限,最终将被弃用,取而代之的是NVIDIA Persistence Daemon方式。
执行以下命令,运行NVIDIA Persistence Daemon。
sudo nvidia-persistenced --user username
# username为您的用户名。
执行以下命令,查看Persistence-M属性状态。
nvidia-smi
回显信息类似如下所示,表示Persistence-M为开启(on
)状态。

(可选)重启系统后开启Persistence-M属性。
如果系统重启,则会导致Persistence-M开启(on
)状态失效,您可以按照以下操作重新开启Persistence-M属性。
通过安装NVIDIA GPU驱动安装包,将NVIDIA提供的安装脚本(例如示例脚本和安装程序脚本)安装到 /usr/share/doc/NVIDIA_GLX-1.0/samples/nvidia-persistenced-init.tar.bz2
路径下。
执行以下命令,解压并安装NVIDIA提供的安装脚本。
cd /usr/share/doc/NVIDIA_GLX-1.0/samples/
tar xf nvidia-persistenced-init.tar.bz2
cd nvidia-persistenced-init
sh install.sh
执行以下命令,查看NVIDIA Persistence Daemon是否正常运行。
systemctl status nvidia-persistenced
回显信息类似如下所示,表示NVIDIA Persistence Daemon正常运行。

说明 您可以根据您的操作系统适配NVIDIA Persistence Daemon安装脚本以保证其正常工作。
执行以下命令,再次确认Persistence-M属性为开启(on
)状态。
nvidia-smi
(可选)执行以下命令,关闭NVIDIA Persistence Daemon。
如果目前无需运行NVIDIA Persistence Daemon,您可以选择关闭NVIDIA Persistence Daemo。
systemctl stop nvidia-persistenced
systemctl disable nvidia-persistenced
(条件必选)如果您的GPU实例规格族为ebmgn7、ebmgn7e时,安装与驱动版本对应的nvidia-fabricmanager服务。
安装nvidia-fabricmanager服务。
您可以通过源码或者安装包两种方式安装nvidia-fabricmanager服务,以下操作以CentOS 7.x和CentOS 8.x操作系统为例,驱动版本(driver_version)以460.91.03为例,命令示例如下。其中,driver_version
替换为步骤1中下载的驱动版本号。
源码方式
CentOS 7.x
driver_version=460.91.03
yum -y install yum-utils
yum-config-manager --add-repo https://developer.download.nvidia.com/compute/cuda/repos/rhel7/x86_64/cuda-rhel7.repo
yum install -y nvidia-fabric-manager-${driver_version}-1
CentOS 8.x
driver_version=460.91.03
driver_version_main=$(echo $driver_version | awk -F '.' '{print $1}')
distribution=rhel8
ARCH=$( /bin/arch )
dnf config-manager --add-repo http://developer.download.nvidia.com/compute/cuda/repos/$distribution/${ARCH}/cuda-$distribution.repo
dnf module enable -y nvidia-driver:${driver_version_main}
dnf install -y nvidia-fabric-manager-0:${driver_version}-1
安装包方式
CentOS 7.x
driver_version=460.91.03
wget http://mirrors.cloud.aliyuncs.com/nvidia-cuda/rhel7/x86_64/nvidia-fabric-manager-${driver_version}-1.x86_64.rpm
rpm -ivh nvidia-fabric-manager-${driver_version}-1.x86_64.rpm
CentOS 8.x
driver_version=460.91.03
wget http://mirrors.cloud.aliyuncs.com/nvidia-cuda/rhel8/x86_64/nvidia-fabric-manager-${driver_version}-1.x86_64.rpm
rpm -ivh nvidia-fabric-manager-${driver_version}-1.x86_64.rpm
执行如下命令,启动nvidia-fabricmanager服务。
systemctl enable nvidia-fabricmanager
systemctl start nvidia-fabricmanager
执行如下命令,查看nvidia-fabricmanager服务是否安装成功。
systemctl status nvidia-fabricmanager
回显信息如下所示,表示nvidia-fabricmanager服务安装成功。
Ubuntu等其他操作系统
授权并安装GPU驱动。
以操作系统是Linux 64-bit的驱动为例,您下载的GPU驱动为.run格式,例如:NVIDIA-Linux-x86_64-xxxx.run。分别执行以下命令,授权并安装GPU驱动。
chmod +x NVIDIA-Linux-x86_64-xxxx.run
sh NVIDIA-Linux-x86_64-xxxx.run
执行以下命令,查看GPU驱动是否安装成功。
nvidia-smi
回显信息类似如下所示,表示GPU驱动安装成功。

(可选)通过NVIDIA Persistence Daemon方式开启Persistence-M属性。
GPU驱动安装完成后,Persistence-M默认为关闭(off
)状态,GPU驱动在开启Persistence-M属性状态下性能更稳定。为了业务更稳定地进行,建议您通过NVIDIA Persistence Daemon方式开启Persistence-M属性。更多信息,请参见Persistence Daemon。
说明 Persistence-M(即Persistence Mode)是用户可设置的驱动程序属性术语,该属性可以使目标GPU保持初始化状态。
NVIDIA先前通过Persistence Mode(Legacy)方式开启Persistence-M(即通过执行nvidia-smi -pm 1
命令的方式),该方式即将到达使用期限,最终将被弃用,取而代之的是NVIDIA Persistence Daemon方式。
执行以下命令,运行NVIDIA Persistence Daemon。
sudo nvidia-persistenced --user username
# username为您的用户名。
执行以下命令,查看Persistence-M属性状态。
nvidia-smi
回显信息类似如下所示,表示Persistence-M为开启(on
)状态。

(可选)重启系统后开启Persistence-M属性。
如果系统重启,则会导致Persistence-M开启(on
)状态失效,您可以按照以下操作重新开启Persistence-M属性。
通过安装NVIDIA GPU驱动安装包,将NVIDIA提供的安装脚本(例如示例脚本和安装程序脚本)安装到 /usr/share/doc/NVIDIA_GLX-1.0/samples/nvidia-persistenced-init.tar.bz2
路径下。
执行以下命令,解压并安装NVIDIA提供的安装脚本。
cd /usr/share/doc/NVIDIA_GLX-1.0/samples/
tar xf nvidia-persistenced-init.tar.bz2
cd nvidia-persistenced-init
sh install.sh
执行以下命令,查看NVIDIA Persistence Daemon是否正常运行。
systemctl status nvidia-persistenced
回显信息类似如下所示,表示NVIDIA Persistence Daemon正常运行。

说明 您可以根据您的操作系统适配NVIDIA Persistence Daemon安装脚本以保证其正常工作。
执行以下命令,再次确认Persistence-M属性为开启(on
)状态。
nvidia-smi
(可选)执行以下命令,关闭NVIDIA Persistence Daemon。
如果目前无需运行NVIDIA Persistence Daemon,您可以选择关闭NVIDIA Persistence Daemo。
systemctl stop nvidia-persistenced
systemctl disable nvidia-persistenced
(条件必选)如果您的GPU实例规格族为ebmgn7、ebmgn7e时,安装与驱动版本对应的nvidia-fabricmanager服务。
安装nvidia-fabricmanager服务。
您可以通过源码或者安装包两种方式安装nvidia-fabricmanager服务,以下操作以Ubuntu 16.04、Ubuntu 18.04或Ubuntu 20.04操作系统为例,驱动版本(driver_version)以460.91.03为例,命令示例如下。其中,driver_version
替换为步骤1中下载的驱动版本号。
源码方式
Ubuntu 16.04、Ubuntu 18.04或Ubuntu 20.04
driver_version=460.91.03
driver_version_main=$(echo $driver_version | awk -F '.' '{print $1}')
distribution=$(. /etc/os-release;echo $ID$VERSION_ID | sed -e 's/\.//g')
wget https://developer.download.nvidia.com/compute/cuda/repos/$distribution/x86_64/cuda-$distribution.pin
mv cuda-$distribution.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/repos/$distribution/x86_64/3bf863cc.pub
apt-key add 3bf863cc.pub
rm 3bf863cc.pub
echo "deb http://developer.download.nvidia.com/compute/cuda/repos/$distribution/x86_64 /" | tee /etc/apt/sources.list.d/cuda.list
apt-get update
apt-get -y install nvidia-fabricmanager-${driver_version_main}=${driver_version}-*
安装包方式
Ubuntu 16.04
driver_version=460.91.03
driver_version_main=$(echo $driver_version | awk -F '.' '{print $1}')
wget http://mirrors.cloud.aliyuncs.com/nvidia-cuda/ubuntu1604/x86_64/nvidia-fabricmanager-${driver_version_main}_${driver_version}-1_amd64.deb
dpkg -i nvidia-fabricmanager-${driver_version_main}_${driver_version}-1_amd64.deb
Ubuntu 18.04
driver_version=460.91.03
driver_version_main=$(echo $driver_version | awk -F '.' '{print $1}')
wget http://mirrors.cloud.aliyuncs.com/nvidia-cuda/ubuntu1804/x86_64/nvidia-fabricmanager-${driver_version_main}_${driver_version}-1_amd64.deb
dpkg -i nvidia-fabricmanager-${driver_version_main}_${driver_version}-1_amd64.deb
Ubuntu 20.04
driver_version=460.91.03
driver_version_main=$(echo $driver_version | awk -F '.' '{print $1}')
wget http://mirrors.cloud.aliyuncs.com/nvidia-cuda/ubuntu2004/x86_64/nvidia-fabricmanager-${driver_version_main}_${driver_version}-1_amd64.deb
dpkg -i nvidia-fabricmanager-${driver_version_main}_${driver_version}-1_amd64.deb
执行如下命令,启动nvidia-fabricmanager服务。
systemctl enable nvidia-fabricmanager
systemctl start nvidia-fabricmanager
执行如下命令,查看nvidia-fabricmanager服务是否安装成功。
systemctl status nvidia-fabricmanager
回显信息如下所示,表示nvidia-fabricmanager服务安装成功。