阿里云代理商-阿里云服务器-阿里云数据库-重庆典名科技

阿里云GPU云服务器管理NVIDIA驱动教程,GPU云加速器

发布时间: 2020-11-10 14:42:08文章作者: 网站编辑阅读量: 611

  典名科技本文介绍阿里云GPU云服务器如何管理NVIDIA驱动教程、GPU云加速器。手动安装GPU驱动,手动卸载GPU驱动,在GPU实例中安装GRID驱动(Linux),在vgn6i和vgn5i实例中安装GRID驱动(Linux)。仅供参考。

手动安装GPU驱动


  如果在创建实例时没有选择自动安装GPU驱动,您必须在创建后手动安装。如何为GPU实例手动安装GPU驱动。

vgn6i和vgn5i只支持安装GRID驱动。

操作步骤

  1. 进入NVIDIA官网
  2. 手动查找适用的驱动程序。
    1. 根据实例规格配备的GPU选择产品类型、产品系列和产品家族。
      各GPU计算型规格的GPU信息如下表所示:
      信息项gn4gn5gn5ign6vgn6i
      产品类型TeslaTeslaTeslaTeslaTesla
      产品系列M-ClassP-SeriesP-SeriesV-SeriesT-Series
      产品家族M40Tesla P100Tesla P4Tesla V100Tesla T4
    2. 根据实例使用的镜像选择的操作系统版本。
      如果实例使用Debian操作系统,选择Linux 64-bit。如果下拉列表中没有显示所需的操作系统,请单击下拉列表底部的选择所有操作系统
    3. 选择CUDA Toolkit版本。
    4. 选择语言。
    5. 单击搜索
  3. 确认驱动程序信息,然后单击下载
    如果您为Linux实例安装GPU驱动,请不要关闭下载页面,安装GPU时需要参考下载页面中其他信息的安装步骤。
  4. 安装GPU驱动。
    • 为Linux实例安装GPU驱动:
      1. 下载并安装kernel对应版本的kernel-devel和kernel-header包。
        说明 kernel-devel和kernel版本不一致会导致在安装driver rpm过程中driver编译出错。您可以在实例中运行rpm –qa | grep kernel检测版本是否一致。确认版本后,再重新安装驱动。
      2. 运行命令sudo rpm -qa | grep $(uname -r),确认已经下载并安装kernel-devel和kernel-header包。
        以CentOS 7.3为例,如果出现下方类似的版本信息,表示已经安装完成。
        kernel-3.10.0-514.26.2.el7.x86_64
        kernel-headers-3.10.0-514.26.2.el7.x86_64
        kernel-tools-libs-3.10.0-514.26.2.el7.x86_64
        python-perf-3.10.0-514.26.2.el7.x86_64
        kernel-tools-3.10.0-514.26.2.el7.x86_64
      3. 按照驱动程序下载页中其他信息的步骤安装GPU驱动。
        以Linux 64-bit Ubuntu 14.04为例,其它信息中提示的步骤如下所示:
    • 为Windows实例安装GPU驱动:
      双击安装文件,按提示完成安装。
      说明 对于Windows系统,GPU驱动安装生效后,Windows自带的远程连接(RDP)协议不支持DirectX、OpenGL等相关应用。您需要自行安装VNC服务和客户端,或使用其它支持此类应用的协议,例如PCOIP、XenDesktop HDX 3D等。

手动卸载GPU驱动


您可以手动卸载GPU驱动,卸载命令视GPU驱动安装方式和镜像类型而定。

背景信息

本文中登录root用户操作。如果您是普通用户,请使用sudo命令获取root权限后再操作。
如果您使用自动安装功能安装了GPU驱动,卸载方式视操作系统类型而定:
  • CentOS和SUSE操作系统使用run方式。
  • Ubuntu操作系统使用deb方式。

在Ubuntu操作系统中卸载GPU驱动

如果您使用deb安装包安装了GPU驱动,建议您按照以下步骤卸载GPU驱动,以下步骤以Driver 410.104、CUDA 10.0.130、cuDNN 7.5.0为例。

  1. 运行以下命令卸载GPU驱动。
    apt-get remove --purge nvidia-*
  2. 运行以下命令卸载CUDA和cuDNN库。
    apt autoremove --purge cuda-10-0
    rm -rf /usr/local/cuda-10.0
  3. 运行以下命令重启实例。
    reboot

如果您使用run安装包安装了GPU驱动,建议您按照以下步骤卸载GPU驱动。

  1. 运行以下命令卸载GPU驱动。
    /usr/bin/nvidia-uninstall
  2. 运行以下命令卸载CUDA和和cuDNN库。
    /usr/local/cuda/bin/cuda-uninstaller
    rm -rf /usr/local/cuda-10.0
    说明 不同CUDA版本,卸载命令可能存在差别,如果未找到cuda-uninstaller文件, 请到/usr/local/cuda/bin/下查看是否存在uninstall_cuda开头的文件。如果有,则将命令中的cuda-uninstaller替换为该文件名。
  3. 运行以下命令重启实例。
    reboot

在CentOS操作系统中卸载GPU驱动

如果您使用run安装包安装了GPU驱动,建议您按照以下步骤卸载GPU驱动,以下步骤以Driver 410.104、CUDA 10.0.130、cuDNN 7.5.0为例。

  1. 运行以下命令卸载GPU驱动。
    /usr/bin/nvidia-uninstall
  2. 运行以下命令卸载CUDA和cuDNN库。
    /usr/local/cuda/bin/cuda-uninstaller
    rm -rf /usr/local/cuda-10.0
    说明 不同CUDA版本,卸载命令可能存在差别,如果未找到cuda-uninstaller文件, 请到/usr/local/cuda/bin/下查看是否存在uninstall_cuda开头的文件。如果有,则将命令中的cuda-uninstaller替换为uninstall_cuda开头的文件名。
  3. 运行以下命令重启实例。
    reboot

如果您在CentOS 7中使用rpm安装包安装了GPU驱动,建议您按照以下步骤卸载GPU驱动。

  1. 运行以下命令卸载GPU驱动。
    yum remove xorg-x11-drv-nvidia nvidia-kmod cuda-drivers
    yum remove nvidia-diag-driver-local-repo-rhel7-410.104
  2. 运行以下命令卸载CUDA和cuDNN库。
    yum remove /usr/local/cuda-10.0
    rm -rf /usr/local/cuda-10.0
  3. 运行以下命令重启实例。
    reboot

如果您在CentOS 6中使用rpm安装包安装了GPU驱动,建议您按照以下步骤卸载GPU驱动。

  1. 运行以下命令卸载GPU驱动。
    yum remove xorg-x11-drv-nvidia nvidia-kmod cuda-drivers
    yum remove nvidia-diag-driver-local-repo-rhel6-410.104
  2. 运行以下命令卸载CUDA。
    yum remove /usr/local/cuda-10.0
  3. 运行以下命令重启实例。
    reboot

在SUSE操作系统中卸载GPU驱动

如果您使用run安装包安装GPU驱动,建议您按照以下步骤卸载GPU驱动,以下步骤以CUDA 9.0.176为例。

  1. 运行以下命令卸载GPU驱动。
    /usr/bin/nvidia-uninstall
  2. 运行以下命令卸载CUDA和cuDNN库。
    /usr/local/cuda/bin/uninstall_cuda_9.0.pl
    rm -rf /usr/local/cuda-9.0
  3. 运行以下命令重启实例。
    reboot

在GPU实例中安装GRID驱动(Linux)


如何在运行Linux操作系统的GPU实例中安装GRID驱动,并搭建桌面显示环境。

前提条件

  • 创建一台GPU实例,确保实例能访问公网。
    说明 本文介绍如何为运行Linux操作系统的GPU实例安装GRID驱动,对需要运行Windows操作系统的GPU实例,在创建GPU实例时选用预装GRID驱动的付费镜像即可。

    建议您选择公共镜像中的镜像。如果您选择了镜像市场中预装NVIDIA驱动的镜像,创建实例后您必须禁用nouveau驱动。

    nouveau是一款开源驱动,必须禁用nouveau才能成功安装新的驱动,禁用方法:在/etc/modprobe.d目录下创建一个nouveau.conf文件,添加blacklist nouveau

  • 在本地机器上已经安装了VNC连接软件,例如本示例中使用的VNC Viewer。
  • NVIDIA购买了GRID License。该方式需要自建License服务器,您可以购买ECS实例并参考NVIDIA官网教程搭建。

背景信息

如果您的GPU实例需要OpenGL图形支持,必须在实例上安装GRID驱动。GPU实例自带的NVIDIA GPU计算卡,例如P100、P4、V100等,因为NVIDIA GRID License而限制了GPU图形功能,您可以使用NVIDIA官方发布的GRID驱动满足使用OpenGL图形功能的需求。
说明 非NVIDIA合作伙伴不能从NVIDIA官网下载该驱动,本章节操作步骤中介绍了从阿里云获取GRID驱动安装包的方法。

本文介绍如何为非vGPU的GPU实例安装GRID驱动,如果您需要为配备vGPU的GPU实例(vgn6i和vgn5i)安装GRID驱动。

操作步骤

安装GRID驱动的步骤如下:
  • Ubuntu 16.04 64-bit:
    1. 在Ubuntu 16.04 64-bit中安装GRID驱动
    2. 在Ubuntu 16.04 64-bit中测试GRID驱动
  • CentOS 7.3 64-bit:
    1. 在CentOS 7.3 64-bit中安装GRID驱动
    2. 在CentOS 7.3 64-bit中测试GRID驱动

在Ubuntu 16.04 64-bit中安装GRID驱动

  1. 远程连接Linux实例
  2. 依次运行以下命令升级系统并安装KDE桌面。
    apt-get update
    apt-get upgrade
    apt-get install kubuntu-desktop
  3. 运行reboot命令重启系统。
  4. 再次远程连接Linux实例,并运行以下命令下载NVIDIA GRID驱动包。
    NVIDIA GRID驱动包中有多个系统的GRID驱动。Linux GRID驱动是NVIDIA-Linux-x86_64-430.99-grid.run
    wget http://grid-9-4.oss-cn-hangzhou.aliyuncs.com/NVIDIA-Linux-x86_64-430.99-grid.run
  5. 依次运行以下命令,并按界面提示安装NVIDIA GRID驱动。
    chmod 777 NVIDIA-Linux-x86_64-430.99-grid.run
    ./NVIDIA-Linux-x86_64-430.99-grid.run
  6. 运行命令nvidia-smi测试驱动安装结果。
    如果返回以下类似结果,说明驱动已经成功安装。
  7. 按以下步骤添加License服务器并激活License。
    1. 切换到/etc/nvidia目录:cd /etc/nvidia
    2. 创建gridd.conf文件:cp gridd.conf.template gridd.conf
    3. gridd.conf文件中添加License服务器的信息。
      ServerAddress=
      ServerPort=
      FeatureType=2
      EnableUI=TRUE
  8. 运行命令安装x11vnc。
    apt-get install x11vnc
  9. 运行命令lspci | grep NVIDIA查询GPU BusID。

    本示例中,查询到的GPU BusID为00:07.0

  10. 配置X Server环境并重启。
    1. 运行命令nvidia-xconfig --enable-all-gpus --separate-x-screens
    2. 编辑/etc/X11/xorg.conf,在Section "Device"段添加GPU BusID,如本示例中为BusID "PCI:0:7:0"
    3. 运行reboot命令重启系统。

在Ubuntu 16.04 64-bit中测试GRID驱动

  1. 运行命令安装GLX测试程序。
    apt-get install mesa-utils                    
  2. 运行命令startx启动X Server。
    • 如果没有startx命令,执行apt-get install xinit命令安装。
    • startx启动时可能会提示hostname: Name or service not known。这个提示不会影响X Server启动。您可以运行命令hostname查得主机名后,再修改/etc/hosts文件,将127.0.0.1后的hostname改为本机的hostname。
  3. 开启一个新的SSH客户端终端,运行命令启动x11vnc。
    x11vnc -display :1
    如果看到如下图所示的信息,表示x11vnc已经成功启动。此时,您能通过VNC Viewer等VNC远程连接软件连接实例。
  4. 登录ECS控制台,在实例所在安全组中添加安全组规则,允许TCP 5900端口的入方向访问。
  5. 在本地机器上,使用VNC Viewer等VNC远程连接软件,通过实例公网IP地址:5900连接实例,进入KDE桌面。
  6. 按以下步骤使用glxinfo命令查看当前GRID驱动支持的配置。
    1. 开启一个新的SSH客户端终端。
    2. 运行命令export DISPLAY=:1
    3. 运行命令glxinfo –t列出当前GRID驱动支持的配置。
  7. 按以下步骤使用glxgears命令测试GRID驱动。
    1. 在KDE桌面上,右键单击桌面,并选择Run Command
    2. 运行glxgears启动齿轮图形测试程序。
      如果出现如下图所示的窗口,表明GRID驱动正常工作。

在CentOS 7.3 64-bit中安装GRID驱动

  1. 远程连接Linux实例
  2. 依次运行以下命令升级系统并安装KDE桌面。
    yum update
    yum install kernel-devel
    yum groupinstall "KDE Plasma Workspaces"
  3. 运行reboot重启系统。
  4. 再次远程连接Linux实例,并运行以下命令下载并解压NVIDIA GRID驱动包。

    NVIDIA GRID驱动包中包含多个系统的GRID驱动,其中,Linux GRID驱动是NVIDIA-Linux-x86_64-430.99-grid.run

    wget http://grid-9-4.oss-cn-hangzhou.aliyuncs.com/NVIDIA-Linux-x86_64-430.99-grid.run
  5. 按以下步骤关闭nouveau驱动。
    1. 运行vim /etc/modprobe.d/blacklist.conf,添加blacklist nouveau
    2. 运行vim /lib/modprobe.d/dist-blacklist.conf,添加以下内容。
      blacklist nouveau
      options nouveau modeset=0
    3. 运行mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r)-nouveau.img
    4. 运行dracut /boot/initramfs-$(uname -r).img $(uname -r)
  6. 运行reboot重启系统。
  7. 依次运行以下命令,并按界面提示安装NVIDIA GRID驱动。
    chmod 777 NVIDIA-Linux-x86_64-430.99-grid.run
    ./NVIDIA-Linux-x86_64-430.99-grid.run
  8. 运行命令nvidia-smi测试驱动是否安装成功。
    如果返回以下类似结果,说明驱动已经成功安装。
  9. 按以下步骤添加License服务器并激活License。
    1. 切换到/etc/nvidia目录:cd /etc/nvidia
    2. 创建gridd.conf文件:cp gridd.conf.template gridd.conf
    3. gridd.conf文件中添加License服务器的信息。
      ServerAddress=
      ServerPort=
      FeatureType=2
      EnableUI=TRUE
  10. 安装x11vnc。
    yum install x11vnc
  11. 运行命令lspci | grep NVIDIA查询GPU BusID。
    本示例中,查询到的GPU BusID为00:07.0
  12. 配置X Server环境。
    1. 运行命令nvidia-xconfig --enable-all-gpus --separate-x-screens
    2. 编辑/etc/X11/xorg.conf,在Section "Device"段添加GPU BusID,如本示例中为BusID "PCI:0:7:0"
  13. 运行reboot重启系统。

在CentOS 7.3 64-bit中测试GRID驱动

  1. 运行命令startx启动X Server。
  2. 开启一个新的SSH客户端终端,运行命令启动x11vnc。
    x11vnc -display :0
    如果看到如下图所示的信息,表示x11vnc已经成功启动。此时,您能通过VNC Viewer等VNC远程连接软件连接实例。
  3. 登录ECS管理控制台,在实例所在安全组中添加安全组规则,允许TCP 5900端口的入方向访问。具体操作,请参见添加安全组规则
  4. 在本地机器上,使用VNC Viewer等VNC远程连接软件,通过实例公网IP地址:5900连接实例,进入KDE桌面。
  5. 按以下步骤使用glxinfo命令查看当前GRID驱动支持的配置。
    1. 开启一个新的SSH客户端终端。
    2. 运行命令export DISPLAY=:0
    3. 运行命令glxinfo –t列出当前GRID驱动支持的配置。
  6. 按以下步骤使用glxgears命令测试GRID驱动。
    1. 在KDE桌面上,右键单击桌面,并选择Run Command
    2. 运行glxgears启动齿轮图形测试程序。
      如果出现如下图所示的窗口,表明GRID驱动正常工作。

在vgn6i和vgn5i实例中安装GRID驱动(Linux)


如果您的GPU实例需要支持OpenGL图形显示,必须安装GRID驱动。GPU实例配备的NVIDIA GPU计算卡尚未激活NVIDIA GRID License,GPU图形功能受到限制,您需要购买并激活GRID License。本章节以操作系统为Ubuntu 16.04 64-bit的轻量级GPU实例vgn6i和vgn5i为例,介绍如何安装GRID驱动并激活GRID License。

前提条件

  • 创建一台vgn6i或vgn5i实例,确保实例可以访问公网,建议您选择公共镜像中的镜像。
    说明 本文介绍如何为运行Linux操作系统的实例安装GRID驱动,对需要运行Windows操作系统的实例,在创建实例时选用预装GRID驱动的付费镜像即可,请参见 创建配备NVIDIA GPU的实例
  • 在本地机器上安装了远程连接工具,例如VNC Viewer。
  • NVIDIA购买了GRID License。该方式需要自建License服务器,您可以购买ECS实例并参考NVIDIA官网教程搭建。

背景信息

本文介绍如何为配备vGPU的GPU实例(vgn6i和vgn5i)安装GRID驱动,如果您需要为非vGPU的GPU实例安装GRID驱动,请参见 在GPU实例中安装GRID驱动(Linux)

操作步骤

  1. 禁用nouveau。
    nouveau是部分Linux系统中预装的一款开源驱动,必须禁用nouveau才能成功安装新的驱动。
    1. 远程连接实例
    2. 查看是否存在blacklist-nouveau.conf文件。
      ls /etc/modprobe.d/blacklist-nouveau.conf
    3. 如果blacklist-nouveau.conf文件存在且已配置以下内容,则跳过本步骤。否则需要执行命令vim /etc/modprobe.d/blacklist-nouveau.conf创建文件,并在文件中添加以下内容禁用nouveau。
      blacklist nouveau
      blacklist lbm-nouveau
      options nouveau modeset=0
    4. 生成kernel initramfs。
      rmmod nouveau
      update-initramfs -u
    5. 重启实例。
      reboot
  2. 下载GRID驱动安装包。
    1. 远程连接实例
    2. 下载GRID驱动安装包。
      • vgn5i GRID Guest驱动安装包:
        wget http://nvidia-418.oss-cn-shenzhen.aliyuncs.com/NVIDIA-Linux-x86_64-418.70-grid.run
      • vgn6i GRID Guest驱动安装包:
        wget http://grid-9-2.oss-cn-hangzhou.aliyuncs.com/NVIDIA-Linux-x86_64-430.63-grid.run
  3. 安装GRID驱动。
    • vgn5i
      chmod +x NVIDIA-Linux-x86_64-418.70-grid.run
      ./NVIDIA-Linux-x86_64-418.70-grid.run
    • vgn6i
      chmod +x NVIDIA-Linux-x86_64-430.63-grid.run
      ./NVIDIA-Linux-x86_64-430.63-grid.run
  4. 测试GRID驱动是否安装成功。
    nvidia-smi
    如果返回以下GRID驱动信息,说明驱动安装成功。
  5. 添加License服务器。
    1. 切换到/etc/nvidia目录。
      cd /etc/nvidia
    2. 创建gridd.conf文件。
      cp gridd.conf.template gridd.conf
    3. gridd.conf文件中添加License服务器的信息。
      ServerAddress=
      ServerPort=7070)>
      FeatureType=1
  6. 重启实例使License服务器配置生效。
    reboot
  7. 查看License是否激活成功。
    1. 远程连接实例
    2. 查看License状态。
      systemctl status nvidia-gridd
      返回结果显示 License acquired successfully,表示License激活成功。

GPU云加速器


飞天AI加速器AIACC(Apsara AI Accelerator)是阿里云自研的AI加速器,包括训练加速器AIACC-Training和推理加速器AIACC-Inference,支持统一加速AI主流计算框架TensorFlow、PyTorch、MxNet和Caffe。GPU云加速器可以自动配置包含AIACC-Training的Python Conda环境。

背景信息

Conda是一款开源跨平台的软件包和环境管理系统。在GPU云加速器自动配置的Python Conda环境中,您可以轻松安装和切换深度学习框架,并通过AIACC-Training显著提升训练性能。

AIACC-Training包括以下加速特性:
  • 梯度融合通信支持自适应多流、自适应梯度融合,显著提升带宽密集的网络模型的训练性能,约提速50%至300%。
  • 采用去中心化梯度协商机制,将大规模节点下梯度协商的通信量降低1到2个数量级。
  • 采用分级的Allreduce方法,支持FP16梯度压缩及混合精度压缩。
  • 支持在训练过程中开启NaN检查,支持定位NaN来自于哪个梯度(需要为SM60及更新平台)。
  • 提供针对MXNet的API扩展,支持insighface类型的数据和模型并行。
  • 提供针对RDMA网络的深度优化。

自动安装AIACC-Training

AIACC依赖GPU驱动、CUDA和cuDNN,请在创建GPU实例时,配置自动安装GPU驱动,然后选中GPU云加速器。GPU实例创建完成后,会根据您选择的CUDA版本配置包含AIACC-Training v1.3.0的Python Conda环境。创建GPU实例的具体操作,请参见创建配备NVIDIA GPU的实例自动安装GPU云加速器

Python Conda环境包括AIACC-Training及OpenMPI等依赖包,但不包括深度学习框架。安装深度学习框架的具体操作,请参见安装深度学习框架

CUDA版本决定支持安装的深度学习框架版本,对应关系如下表所示。
CUDA版本默认进入的Conda环境支持安装的深度学习框架版本
CUDA 10.1tf2.1_cu10.1_py36Tensorflow 2.1
CUDA 10.0tf1.15_tr1.4.0_mx1.5.0_cu10.0_py36
  • Tensorflow 1.15 + Pytorch 1.4.0 + MXNet 1.5.0
  • Tensorflow 1.14 + Pytorch 1.3.0 + MXNet 1.4.0
CUDA 9.0tf1.12_tr1.3.0_mx1.5.0_cu9.0_py36Tensorflow 1.12 + Pytorch 1.3.0 + MXNet 1.5.0

安装深度学习框架

  1. 远程连接实例
  2. 查看自动激活的Conda环境。
    查看用户名前显示的版本号即可,示例如下图所示。conda环境版本
    tf2.1_cu10.1_py36代表:
    • Tensorflow 2.1
    • CUDA 10.1
    • Python 3.6
  3. 可选:如果您不需要使用自动激活的Conda环境,激活其它Conda环境。
    1. 查看所有Conda环境。
      conda env list
      示例如下图所示。查看conda环境
    2. 激活需要使用的conda环境。
      conda activate [version number]
      示例如下图所示。激活conda环境
  4. 安装深度学习框架。
    install_frameworks.sh
    示例如下图所示。安装深度学习框架
  5. 测试demo。
    以测试TensorFlow的demo为例。
    • 如果TensorFlow版本为2.1:
      1. 解压demo测试包。
        tar -xvf ali-perseus-demos.tgz
      2. 进入TensorFlow的demo目录。
        cd ali-perseus-demos/tensorflow2-examples
      3. 执行目录下的测试脚本。

        示例命令如下:

        python tensorflow2_keras_mnist_perseus.py
        该demo使用MNIST数据集进行训练,在提升训练性能的同时,保证和您的基准代码达到相同的精度。训练结果示例如下图所示。实际数据训练结果
    • 如果TensorFlow版本为1.14:
      1. 解压demo测试包。
        tar -xvf ali-perseus-demos.tgz
      2. 进入TensorFlow的demo目录。
        cd ali-perseus-demos/tensorflow-benchmarks
      3. 查看README.txt中的测试命令。
      4. 进入对应版本的测试脚本目录。
        示例命令如下:
        cd benchmarks-tf1.14
      5. 根据实例规格的GPU数量修改并执行测试命令。
        示例命令如下:
        mpirun --allow-run-as-root --bind-to none -np 1 -npernode 1  \
               --mca btl_tcp_if_include eth0  \
               --mca orte_keep_fqdn_hostnames t   \
               -x NCCL_SOCKET_IFNAME=eth0   \
               -x LD_LIBRARY_PATH   \
               ./config-fp16-tf.sh
        该demo使用合成数据进行训练,测试训练速度。训练结果示例如下图所示。合成数据训练结果

联系客服免费领取更多阿里云产品新购、续费升级折扣,叠加官网活动折上折更优惠