在GPU计算型实例中手动安装Tesla驱动(Linux)

在深度学习、AI等通用计算业务场景或者OpenGL、Direct3D、云游戏等图形加速场景下,安装了Tesla驱动的GPU才可以发挥高性能计算能力,或提供更流畅的图形显示效果。如果您在创建GPU计算型实例(Linux)时未同时安装Tesla驱动,则需要在创建GPU实例后,单独手动安装Tesla驱动(Linux)。本文为您介绍如何为Linux系统的GPU计算型实例手动安装Tesla驱动。

说明

如果GPU实例为Alibaba Cloud Linux 3操作系统的GPU计算型实例,且在创建实例时未同步自动安装Tesla驱动,则您也可以通过YUM方式安装该驱动,具体操作,请参见通过YUM方式快速安装NVIDIA Tesla驱动(Alibaba Cloud Linux 3)

操作步骤

本文适用于所有Linux系统的GPU计算型实例,更多信息,请参见GPU计算型(gn/ebm/scc系列)。在该实例上仅支持安装与其操作系统一致的Tesla驱动,即Linux系统GPU实例支持安装Tesla驱动(Linux)。

步骤一:下载NVIDIA Tesla驱动

  1. 访问NVIDIA驱动下载页面

    说明

    关于安装和配置NVIDIA驱动程序的更多信息,请参见NVIDIA Driver Installation Quickstart Guide

  2. 设置搜索条件后,单击查找选择适用的驱动程序。

    Tesla驱动.jpg

    设置项说明如下所示:

    设置项

    说明

    示例

    • 产品类别

    • 产品系列

    • 产品家族

    根据实例规格配备的GPU选择对应的产品类别、产品系列和产品家族。

    说明

    关于如何查看GPU实例的详细信息(实例ID、实例规格以及操作系统等),具体操作,请参见查看实例信息

    • Data Center / Tesla

    • A-Series

    • NVIDIA A10

    操作系统

    根据实例使用的镜像选择对应的Linux操作系统版本。

    Linux 64-bit

    CUDA工具包版本

    选择CUDA Toolkit版本。

    11.4

    语言

    选择驱动对应的语言。

    Chinese (Simplified)

    部分GPU计算型规格的GPU信息,以及支持的驱动版本和CUDA版本

    信息项

    gn8v

    gn8is

    gn7e

    gn7i

    gn7

    gn6e

    gn6i

    gn6v

    gn5i

    gn5

    产品类型

    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

    Data Center / Tesla

    产品系列

    H-Series

    L-Series

    A-Series

    A-Series

    A-Series

    V-Series

    T-Series

    V-Series

    P-Series

    P-Series

    推荐的Tesla驱动版本

    550.90.07或更高版本

    450.80.02或更高版本

    460.73.01 或更高版本

    450.80.02 或更高版本

    410.79或更高版本

    推荐的CUDA Toolkit版本

    CUDA Toolkit 12.4 Update 1

    CUDA Toolkit 11.0 Update 1

    CUDA Toolkit 11.2

    CUDA Toolkit 11.0 Update 1

    CUDA Toolkit 10.1 Update 2

    说明
    • 上表中仅列出部分常用GPU计算型实例规格的GPU信息,具有相同GPU卡的实例,对应的GPU信息(产品类型、产品系列和产品家族)相同。例如,ebmgn7i与gn7i的GPU卡都为NVIDIA A10,所以这两个实例对应的产品类型、产品系列和产品家族相同。

    • 手动安装Tesla驱动和CUDA包时,必须确保驱动版本和CUDA包版本的兼容性。更多信息,请参见CUDA兼容性

  3. 在搜索到的驱动页面,单击展开查看更多版本

  4. 找到待下载的驱动,单击对应驱动后的查看

    例如,选择驱动版本为470.161.03、CUDA工具包版本为11.4的Data Center Driver for Linux x64

  5. 在待下载驱动的详情页面,右键单击下载并选择复制链接地址

    驱动下载.jpg

  6. 远程连接Linux系统的GPU实例。

    具体操作,请参见使用Workbench工具以SSH协议登录Linux实例

  7. 执行以下命令,下载驱动安装包。

    命令示例中的驱动下载地址为您在步骤5中获取的驱动下载链接。

    wget https://cn.download.nvidia.com/tesla/470.161.03/NVIDIA-Linux-x86_64-470.161.03.run

步骤二:安装NVIDIA Tesla驱动

不同操作系统实例,安装Tesla驱动的方法有所不同,具体操作如下所示。

CentOS操作系统

  1. 执行以下命令,查询GPU实例中是否安装kernel-devel和kernel-headers包。

    sudo 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-develkernel-headers包。

      重要

      kernel-devel和kernel版本不一致会导致在安装driver rpm过程中driver编译出错。因此,请您确认回显信息中kernel-*的版本号后,再下载对应版本的kernel-devel。在示例回显信息中,kernel的版本号为3.10.0-1062.18.1.el7.x86_64。

  2. 授权并安装Tesla驱动。

    以操作系统是Linux 64-bit的驱动为例,推荐您使用.run形式的Tesla驱动,例如:NVIDIA-Linux-x86_64-xxxx.run。分别执行以下命令,授权并安装Tesla驱动。

    说明

    如果您使用的是.deb或.rpm等其他形式的Tesla驱动,具体安装方法,请参见NVIDIA CUDA Installation Guide for Linux

    sudo chmod +x NVIDIA-Linux-x86_64-xxxx.run
    sudo sh NVIDIA-Linux-x86_64-xxxx.run
  3. 执行以下命令,查看Tesla驱动是否安装成功。

    nvidia-smi

    回显信息类似如下所示,表示Tesla驱动安装成功。

    驱动版本.jpg

  4. (可选)通过NVIDIA Persistence Daemon方式开启Persistence-M属性。

    Tesla驱动安装完成后,Persistence-M默认为关闭(off)状态,Tesla驱动在开启Persistence-M属性状态下性能更稳定。为了业务更稳定地进行,建议您通过NVIDIA Persistence Daemon方式开启Persistence-M属性。更多信息,请参见Persistence Daemon

    说明
    1. 执行以下命令,运行NVIDIA Persistence Daemon。

      sudo nvidia-persistenced --user username 
      # username为您的用户名。
    2. 执行以下命令,查看Persistence-M属性状态。

      nvidia-smi

      回显信息类似如下所示,表示Persistence-M为开启(on)状态。

      persistence.jpg

  5. (可选)重启系统后开启Persistence-M属性。

    如果系统重启,则会导致Persistence-M开启(on)状态失效,您可以按照以下操作重新开启Persistence-M属性。

    通过安装Tesla驱动安装包,将NVIDIA提供的安装脚本(例如示例脚本和安装程序脚本)安装到/usr/share/doc/NVIDIA_GLX-1.0/samples/nvidia-persistenced-init.tar.bz2路径下。

    1. 执行以下命令,解压并安装NVIDIA提供的安装脚本。

      cd  /usr/share/doc/NVIDIA_GLX-1.0/samples/
      sudo tar xf nvidia-persistenced-init.tar.bz2
      cd  nvidia-persistenced-init
      sudo sh install.sh
    2. 执行以下命令,查看NVIDIA Persistence Daemon是否正常运行。

      sudo systemctl status nvidia-persistenced

      回显信息类似如下所示,表示NVIDIA Persistence Daemon正常运行。

      persistence Daemon.jpg

      说明

      您可以根据您的操作系统适配NVIDIA Persistence Daemon安装脚本以保证其正常工作。

    3. 执行以下命令,再次确认Persistence-M属性为开启(on)状态。

      nvidia-smi
    4. (可选)执行以下命令,关闭NVIDIA Persistence Daemon。

      如果目前无需运行NVIDIA Persistence Daemon,您可以选择关闭NVIDIA Persistence Daemon。

      sudo systemctl stop nvidia-persistenced
      sudo systemctl disable nvidia-persistenced
  6. (条件必选)如果您的GPU实例规格族为ebmgn8v、ebmgn7、ebmgn7e、ebmgn7ex或sccgn7ex时,安装与驱动版本对应的nvidia-fabricmanager服务。

    重要
    • GPU实例规格族为ebmgn8v、ebmgn7、ebmgn7e、ebmgn7ex或sccgn7ex时,如果未安装与版本驱动对应的nvidia-fabricmanager服务,则您将无法正常使用GPU实例。

    • GPU实例规格族不是ebmgn8v、ebmgn7、ebmgn7e、ebmgn7ex或sccgn7ex时,请跳过本步骤。

    1. 安装nvidia-fabricmanager服务。

      您可以通过源码或者安装包两种方式安装nvidia-fabricmanager服务,以下操作以CentOS 7.x和CentOS 8.x操作系统为例,驱动版本(driver_version)以460.91.03为例,命令示例如下。其中,driver_version替换为步骤一:下载NVIDIA Tesla驱动中下载的驱动版本号。

      • 源码方式

        • CentOS 7.x

          driver_version=460.91.03
          sudo yum -y install yum-utils
          sudo yum-config-manager --add-repo https://developer.download.nvidia.com/compute/cuda/repos/rhel7/x86_64/cuda-rhel7.repo
          sudo 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 )
          sudo dnf config-manager --add-repo https://developer.download.nvidia.com/compute/cuda/repos/$distribution/${ARCH}/cuda-$distribution.repo
          sudo dnf module enable -y nvidia-driver:${driver_version_main}
          sudo dnf install -y nvidia-fabric-manager-0:${driver_version}-1
      • 安装包方式

        • CentOS 7.x

          driver_version=460.91.03
          sudo wget https://developer.download.nvidia.com/compute/cuda/repos/rhel7/x86_64/nvidia-fabric-manager-${driver_version}-1.x86_64.rpm
          sudo rpm -ivh nvidia-fabric-manager-${driver_version}-1.x86_64.rpm
        • CentOS 8.x

          driver_version=460.91.03
          sudo wget https://developer.download.nvidia.com/compute/cuda/repos/rhel8/x86_64/nvidia-fabric-manager-${driver_version}-1.x86_64.rpm
          sudo rpm -ivh nvidia-fabric-manager-${driver_version}-1.x86_64.rpm
    2. 执行如下命令,启动nvidia-fabricmanager服务。

      sudo systemctl enable nvidia-fabricmanager
      sudo systemctl start nvidia-fabricmanager
    3. 执行如下命令,查看nvidia-fabricmanager服务是否安装成功。

      systemctl status nvidia-fabricmanager

      回显信息如下所示,表示nvidia-fabricmanager服务安装成功。

      Dingtalk_20240910143221.jpg

Ubuntu等其他操作系统

  1. 授权并安装Tesla驱动。

    以操作系统是Linux 64-bit的驱动为例,推荐您使用.run形式的Tesla驱动,例如:NVIDIA-Linux-x86_64-xxxx.run。分别执行以下命令,授权并安装Tesla驱动。

    说明

    如果您使用的是.deb或.rpm等其他形式的Tesla驱动,具体安装方法,请参见NVIDIA CUDA Installation Guide for Linux

    sudo chmod +x NVIDIA-Linux-x86_64-xxxx.run
    sudo sh NVIDIA-Linux-x86_64-xxxx.run
  2. 执行以下命令,查看Tesla驱动是否安装成功。

    nvidia-smi

    回显信息类似如下所示,表示Tesla驱动安装成功。

    驱动版本.jpg

  3. (可选)通过NVIDIA Persistence Daemon方式开启Persistence-M属性。

    Tesla驱动安装完成后,Persistence-M默认为关闭(off)状态,Tesla驱动在开启Persistence-M属性状态下性能更稳定。为了业务更稳定地进行,建议您通过NVIDIA Persistence Daemon方式开启Persistence-M属性。更多信息,请参见Persistence Daemon

    说明
    1. 执行以下命令,运行NVIDIA Persistence Daemon。

      sudo nvidia-persistenced --user username 
      # username为您的用户名。
    2. 执行以下命令,查看Persistence-M属性状态。

      nvidia-smi

      回显信息类似如下所示,表示Persistence-M为开启(on)状态。

      persistence.jpg

  4. (可选)重启系统后开启Persistence-M属性。

    如果系统重启,则会导致Persistence-M开启(on)状态失效,您可以按照以下操作重新开启Persistence-M属性。

    通过安装Tesla驱动安装包,将NVIDIA提供的安装脚本(例如示例脚本和安装程序脚本)安装到/usr/share/doc/NVIDIA_GLX-1.0/samples/nvidia-persistenced-init.tar.bz2路径下。

    1. 执行以下命令,解压并安装NVIDIA提供的安装脚本。

      cd  /usr/share/doc/NVIDIA_GLX-1.0/samples/
      sudo tar xf nvidia-persistenced-init.tar.bz2
      cd  nvidia-persistenced-init
      sudo sh install.sh
    2. 执行以下命令,查看NVIDIA Persistence Daemon是否正常运行。

      sudo systemctl status nvidia-persistenced

      回显信息类似如下所示,表示NVIDIA Persistence Daemon正常运行。

      persistence Daemon.jpg

      说明

      您可以根据您的操作系统适配NVIDIA Persistence Daemon安装脚本以保证其正常工作。

    3. 执行以下命令,再次确认Persistence-M属性为开启(on)状态。

      nvidia-smi
    4. (可选)执行以下命令,关闭NVIDIA Persistence Daemon。

      如果目前无需运行NVIDIA Persistence Daemon,您可以选择关闭NVIDIA Persistence Daemon。

      sudo systemctl stop nvidia-persistenced
      sudo systemctl disable nvidia-persistenced
  5. (条件必选)如果您的GPU实例规格族为ebmgn8v、ebmgn7、ebmgn7e、ebmgn7ex或sccgn7ex时,安装与驱动版本对应的nvidia-fabricmanager服务。

    重要
    • GPU实例规格族为ebmgn8v、ebmgn7、ebmgn7e、ebmgn7ex或sccgn7ex时,如果未安装与版本驱动对应的nvidia-fabricmanager服务,则您将无法正常使用GPU实例。

    • GPU实例规格族不是ebmgn8v、ebmgn7、ebmgn7e、ebmgn7ex或sccgn7ex时,请跳过本步骤。

    1. 安装nvidia-fabricmanager服务。

      您可以通过源码或者安装包两种方式安装nvidia-fabricmanager服务,以下操作以Ubuntu 16.04、Ubuntu 18.04、Ubuntu 20.04或Ubuntu 22.04操作系统为例,驱动版本(driver_version)以460.91.03或535.154.05为例,命令示例如下。其中,driver_version替换为步骤一:下载NVIDIA Tesla驱动中下载的驱动版本号。

      重要

      在Ubuntu 22.04操作系统中安装nvidia-fabricmanager服务时,需要Tesla驱动版本高于515.48.07,针对Ubuntu 22.04操作系统,下述示例代码以535.154.05版本的驱动为例。

      • 源代码方式

        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')
        sudo wget https://developer.download.nvidia.com/compute/cuda/repos/$distribution/x86_64/cuda-$distribution.pin
        sudo mv cuda-$distribution.pin /etc/apt/preferences.d/cuda-repository-pin-600
        sudo wget https://developer.download.nvidia.com/compute/cuda/repos/$distribution/x86_64/3bf863cc.pub
        sudo apt-key add 3bf863cc.pub
        sudo rm 3bf863cc.pub
        sudo echo "deb https://developer.download.nvidia.com/compute/cuda/repos/$distribution/x86_64 /" | tee /etc/apt/sources.list.d/cuda.list
        sudo apt-get update
        sudo apt-get -y install nvidia-fabricmanager-${driver_version_main}=${driver_version}-*

        Ubuntu 22.04

        driver_version=535.154.05
        driver_version_main=$(echo $driver_version | awk -F '.' '{print $1}')
        distribution=$(. /etc/os-release;echo $ID$VERSION_ID | sed -e 's/\.//g')
        sudo wget https://developer.download.nvidia.com/compute/cuda/repos/$distribution/x86_64/cuda-$distribution.pin
        sudo mv cuda-$distribution.pin /etc/apt/preferences.d/cuda-repository-pin-600
        sudo wget https://developer.download.nvidia.com/compute/cuda/repos/$distribution/x86_64/3bf863cc.pub
        sudo apt-key add 3bf863cc.pub
        sudo rm 3bf863cc.pub
        sudo echo "deb https://developer.download.nvidia.com/compute/cuda/repos/$distribution/x86_64 /" | tee /etc/apt/sources.list.d/cuda.list
        sudo apt-get update
        sudo 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}')
          sudo wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/nvidia-fabricmanager-${driver_version_main}_${driver_version}-1_amd64.deb
          sudo 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}')
          sudo wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/nvidia-fabricmanager-${driver_version_main}_${driver_version}-1_amd64.deb
          sudo 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}')
          sudo wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/nvidia-fabricmanager-${driver_version_main}_${driver_version}-1_amd64.deb
          sudo dpkg -i nvidia-fabricmanager-${driver_version_main}_${driver_version}-1_amd64.deb
        • Ubuntu 22.04

          driver_version=535.154.05 
          driver_version_main=$(echo $driver_version | awk -F '.' '{print $1}')
          sudo wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/nvidia-fabricmanager-${driver_version_main}_${driver_version}-1_amd64.deb
          sudo dpkg -i nvidia-fabricmanager-${driver_version_main}_${driver_version}-1_amd64.deb
    2. 执行如下命令,启动nvidia-fabricmanager服务。

      sudo systemctl enable nvidia-fabricmanager
      sudo systemctl start nvidia-fabricmanager
    3. 执行如下命令,查看nvidia-fabricmanager服务是否安装成功。

      systemctl status nvidia-fabricmanager

      回显信息如下所示,表示nvidia-fabricmanager服务安装成功。

      image.png

      说明

      nvidia-fabricmanager软件包版本必须与Tesla驱动版本一致,才能保证GPU的正常使用。在Ubuntu系统下,如果您采用安装包方式安装nvidia-fabricmanager服务,则apt-daily服务可能会自动更新nvidia-fabricmanager安装包,使得nvidia-fabricmanager软件包版本与Tesla驱动版本不一致,从而导致nvidia-fabricmanager服务启动失败,并且GPU无法正常使用。如何解决该问题,请参见nvidia-fabricmanager版本与Tesla驱动版本不一致导致GPU无法正常使用

相关文档

  • 如果您购买了Windows系统的GPU计算型实例,则只能单独安装Tesla驱动来更好地应用于深度学习、AI等通用计算业务场景。具体操作,请参见在GPU计算型实例中手动安装Tesla驱动(Windows)

  • 如果您需要在创建GPU实例时同时安装了Tesla驱动,具体操作,请参见创建GPU实例时自动安装或加载Tesla驱动

  • 如果当前Tesla驱动因某种原因需要您卸载,具体操作,请参见卸载Tesla驱动

  • 如果GPU实例中安装的驱动版本不适用于当前场景,或您安装了错误的驱动类型或版本导致GPU实例无法使用,您可以卸载当前驱动然后安装新的驱动或直接升级驱动。关于如何升级驱动的具体操作,请参见升级NVIDIA驱动