在 Linux 实例上安装 NVIDIA 驱动程序 - Amazon Elastic Compute Cloud

Linux 实例上安装 NVIDIA 驱动程序

已挂载 GPU 的实例(如 P3 或 G4 实例)必须安装相应的 NVIDIA 驱动程序。根据实例类型,您可以下载公共 NVIDIA 驱动程序、从仅对 AWS 客户可用的 Amazon S3 下载驱动程序或者使用预安装了驱动程序的 AMI。

NVIDIA 驱动程序的类型

以下是可与基于 GPU 的实例一起使用的 NVIDIA 驱动程序的主要类型。

Tesla 驱动程序

这些驱动程序主要用于将 GPU 用于计算任务的计算工作负载,例如适用于机器学习的并行浮点计算,以及适用于高性能计算应用的快速傅里叶变换。

GRID 驱动程序

这些驱动程序经过认证,可针对渲染 3D 模型或高分辨率视频等内容的专业可视化应用程序,提供最佳性能。您可以将 GRID 驱动程序配置为支持两种模式。Quadro 虚拟工作站的每个 GPU 可支持四个 4K 显示器。GRID vApps 提供 RDSH App 托管功能。

Gaming 驱动程序

这些驱动程序包含针对游戏的优化,并经常更新以提供性能增强。它们支持每个 GPU 单个 4K 显示器。

NVIDIA 控制面板

GRID 和游戏驱动程序支持 NVIDIA 控制面板。Tesla 驱动程序不支持此控制面板。

Tesla、GRID 和游戏驱动程序支持的 API

  • OpenCL、OpenGL 和 Vulkan

  • NVIDIA CUDA 和相关库(例如,cuDNN、TensorRT、nvJPEG 和 cuBLAS)

  • 用于视频编码的 NVENC 和用于视频解码的 NVDEC

按实例类型列出的可用驱动程序

下表总结了各种 GPU 实例类型支持的 NVIDIA 驱动程序。

实例类型 Tesla 驱动程序 GRID 驱动程序 Gaming 驱动程序
G2
G3 支持
G4
P2
P3 是,†

† 仅使用 Marketplace AMI

安装选项

使用以下选项之一获取 GPU 实例所需的 NVIDIA 驱动程序。

选项 1:安装了 NVIDIA 驱动程序的 AMI

AWS 和 NVIDIA 随已安装 NVIDIA 驱动程序提供了的不同 Amazon 系统映像 (AMI)。

要使用这些 AMI 之一更新已安装的驱动程序版本,您必须从实例中卸载 NVIDIA 软件包以避免版本冲突。使用此命令卸载 NVIDIA 软件包:

[ec2-user ~]$ sudo yum erase nvidia cuda

Amazon 提供的 CUDA 工具包安装包对 NVIDIA 驱动程序有依赖性。卸载 NVIDIA 软件包也会删除 CUDA 工具包。必须在安装 NVIDIA 驱动程序之后重新安装 CUDA 工具包。

选项 2:公共 NVIDIA 驱动程序

AWS 提供的选项附带了驱动程序所需的许可证。或者,您可以安装公共驱动程序并自带许可证。要安装公共驱动程序,请按照此处的说明从 NVIDIA 站点下载该驱动程序。

或者,您可以使用 AWS 提供的选项而非公共驱动程序。要在 P3 实例上使用 GRID 驱动程序,请按照选项 1中的说明使用 AWS Marketplace AMI。要在 G3 或 G4 实例上使用 GRID 驱动程序,请使用 AWS Marketplace AMI(如选项 1 所述),或安装 AWS 提供的 NVIDIA 驱动程序(如选项 3 中所述)。

下载公共 NVIDIA 驱动程序

登录您的 Linux 实例并从 http://www.nvidia.com/Download/Find.aspx 下载适合实例类型的 64 位 NVIDIA 驱动程。对于产品类型产品系列产品,请使用下表中的选项。

实例 产品类型 产品系列 产品
G2 GRID GRID 系列 GRID K520
G3 Tesla M-Class M60
G4 † Tesla T 系列 T4
P2 Tesla E 系列 K80
P3 Tesla V 系列 V100

† G4 实例需要驱动程序版本 418.87 或更高版本。

在 Linux 上安装 NVIDIA 驱动程序

有关安装和配置驱动程序的更多信息,请参阅 NVIDIA 驱动程序安装快速入门指南

选项 3:GRID 驱动程序(G3 和 G4 实例)

这些下载仅供 AWS 客户使用。下载即表明您同意仅将下载的软件用于开发在 NVIDIA Tesla T4 或 NVIDIA Tesla M60 硬件上使用的 AMIs。安装软件时,您需要遵循 NVIDIA GRID Cloud 最终用户许可协议的条款。

先决条件

  • 在 Linux 实例上安装 AWS CLI 并配置默认凭证。有关更多信息,请参阅 AWS Command Line Interface 用户指南 中的安装 AWS CLI

  • IAM 用户必须具有由 AmazonS3ReadOnlyAccess 策略授予的权限。

在 Linux 实例上安装 NVIDIA GRID 驱动程序

  1. 连接到 Linux 实例。安装 gccmake(如果尚未安装)。

  2. 更新软件包缓存并获取实例的必需软件包更新。

    • 对于 Amazon Linux、CentOS 和 Red Hat Enterprise Linux:

      [ec2-user ~]$ sudo yum update -y
    • 对于 Ubuntu 和 Debian:

      $ sudo apt-get update -y
  3. (Ubuntu 16.04 和更高版本,带有 linux-aws 软件包) 升级 linux-aws 软件包以接收最新版本。

    $ sudo apt-get upgrade -y linux-aws
  4. 重启实例以加载最新内核版本。

    [ec2-user ~]$ sudo reboot
  5. 重启之后重新连接到实例。

  6. 为您当前运行的内核版本安装 gcc 编译器和内核标头软件包。

    • 对于 Amazon Linux、CentOS 和 Red Hat Enterprise Linux:

      [ec2-user ~]$ sudo yum install -y gcc kernel-devel-$(uname -r)
    • 对于 Ubuntu 和 Debian:

      $ sudo apt-get install -y gcc make linux-headers-$(uname -r)
  7. [CentOS、Red Hat Enterprise Linux、Ubuntu、Debian] 禁用 NVIDIA 显卡的 nouveau 开源驱动程序。

    1. nouveau 添加到 /etc/modprobe.d/blacklist.conf 黑名单文件。复制下面的代码块并将其粘贴到终端中。

      [ec2-user ~]$ cat << EOF | sudo tee --append /etc/modprobe.d/blacklist.conf blacklist vga16fb blacklist nouveau blacklist rivafb blacklist nvidiafb blacklist rivatv EOF
    2. 编辑 /etc/default/grub 文件并添加以下行:

      GRUB_CMDLINE_LINUX="rdblacklist=nouveau"
    3. 重新生成 Grub 配置。

      • 对于 CentOS 和 Red Hat Enterprise Linux:

        [ec2-user ~]$ sudo grub2-mkconfig -o /boot/grub2/grub.cfg
      • 对于 Ubuntu 和 Debian:

        $ sudo update-grub
  8. 使用以下命令下载 GRID 驱动程序安装实用程序:

    [ec2-user ~]$ aws s3 cp --recursive s3://ec2-linux-nvidia-drivers/latest/ .

    此存储桶中存储了多个版本的 GRID 驱动程序。您可以使用以下命令查看所有可用的版本。

    [ec2-user ~]$ aws s3 ls --recursive s3://ec2-linux-nvidia-drivers/

    从 GRID 版本 11.0 开始,您可以对 G3 和 G4 实例使用 latest 下的驱动程序包。我们不会将 11.0 之后的版本添加到 g4/latest 中,但会将版本 11.0 和特定于 G4 的早期版本保留在 g4/latest 下。

  9. 使用以下命令添加权限以运行驱动程序安装实用程序。

    [ec2-user ~]$ chmod +x NVIDIA-Linux-x86_64*.run
  10. 如下所示运行自安装脚本,安装您下载的 GRID 驱动程序。例如:

    [ec2-user ~]$ sudo /bin/sh ./NVIDIA-Linux-x86_64*.run

    系统提示时,接受许可协议并根据需要指定安装选项 (您可以接受默认选项)。

  11. 重启实例。

    [ec2-user ~]$ sudo reboot
  12. 确认驱动程序正常运行。以下命令的响应列出已安装的 NVIDIA 驱动程序版本和有关 GPU 的详细信息。

    [ec2-user ~]$ nvidia-smi -q | head
  13. (可选)根据您的用例,您可能会完成以下可选步骤。如果您不需要此功能,请不要完成这些步骤。

    1. 为了帮助利用高达 4K 分辨率的四个显示器,请设置高性能显示协议 NICE DCV

    2. NVIDIA Quadro 虚拟工作站模式默认处于启用状态。要为 RDSH 应用程序托管功能激活 GRID 虚拟应用程序,请完成激活 NVIDIA GRID 虚拟应用程序中的 GRID 虚拟应用程序激活步骤。

选项 4:NVIDIA Gaming 驱动程序(G4 实例)

这些驱动程序仅供 AWS 客户使用。下载驱动程序即表明您同意仅使用下载的软件开发用于 NVIDIA Tesla T4 硬件的 AMIs。安装软件时,您需要遵循 NVIDIA GRID Cloud 最终用户许可协议的条款。

先决条件

  • 在 Linux 实例上安装 AWS CLI 并配置默认凭证。有关更多信息,请参阅 AWS Command Line Interface 用户指南 中的安装 AWS CLI

  • IAM 用户必须具有由 AmazonS3ReadOnlyAccess 策略授予的权限。

在 Linux 实例上安装 NVIDIA Gaming 驱动程序

  1. 连接到 Linux 实例。安装 gccmake(如果尚未安装)。

  2. 更新软件包缓存并获取实例的必需软件包更新。

    • 对于 Amazon Linux、CentOS 和 Red Hat Enterprise Linux:

      [ec2-user ~]$ sudo yum update -y
    • 对于 Ubuntu 和 Debian:

      $ sudo apt-get update -y
  3. (Ubuntu 16.04 和更高版本,带有 linux-aws 软件包) 升级 linux-aws 软件包以接收最新版本。

    $ sudo apt-get upgrade -y linux-aws
  4. 重启实例以加载最新内核版本。

    [ec2-user ~]$ sudo reboot
  5. 重启之后重新连接到实例。

  6. 为您当前运行的内核版本安装 gcc 编译器和内核标头软件包。

    • 对于 Amazon Linux、CentOS 和 Red Hat Enterprise Linux:

      [ec2-user ~]$ sudo yum install -y gcc kernel-devel-$(uname -r)
    • 对于 Ubuntu 和 Debian:

      $ sudo apt-get install -y gcc make linux-headers-$(uname -r)
  7. [CentOS、Red Hat Enterprise Linux、Ubuntu、Debian] 禁用 NVIDIA 显卡的 nouveau 开源驱动程序。

    1. nouveau 添加到 /etc/modprobe.d/blacklist.conf 黑名单文件。复制下面的代码块并将其粘贴到终端中。

      [ec2-user ~]$ cat << EOF | sudo tee --append /etc/modprobe.d/blacklist.conf blacklist vga16fb blacklist nouveau blacklist rivafb blacklist nvidiafb blacklist rivatv EOF
    2. 编辑 /etc/default/grub 文件并添加以下行:

      GRUB_CMDLINE_LINUX="rdblacklist=nouveau"
    3. 重新生成 Grub 配置。

      • 对于 CentOS 和 Red Hat Enterprise Linux:

        [ec2-user ~]$ sudo grub2-mkconfig -o /boot/grub2/grub.cfg
      • 对于 Ubuntu 和 Debian:

        $ sudo update-grub
  8. 使用以下命令下载 Gaming 驱动程序安装实用程序:

    [ec2-user ~]$ aws s3 cp --recursive s3://nvidia-gaming/linux/latest/ .

    此存储桶中存储了多个版本的游戏驱动程序。您可以使用以下命令查看所有可用的版本:

    [ec2-user ~]$ aws s3 ls --recursive s3://nvidia-gaming/linux/
  9. 使用以下命令添加权限以运行驱动程序安装实用程序。

    [ec2-user ~]$ chmod +x NVIDIA-Linux-x86_64*.run
  10. 使用以下命令运行安装程序:

    [ec2-user ~]$ sudo ./NVIDIA-Linux-x86_64*.run

    系统提示时,接受许可协议并根据需要指定安装选项 (您可以接受默认选项)。

  11. 使用以下命令创建所需的配置文件。

    [ec2-user ~]$ cat << EOF | sudo tee -a /etc/nvidia/gridd.conf vGamingMarketplace=2 EOF
  12. 使用以下命令下载并重命名认证文件。

    • 对于版本 440.68 或更高版本:

      [ec2-user ~]$ sudo curl -o /etc/nvidia/GridSwCert.txt "https://nvidia-gaming.s3.amazonaws.com/GridSwCert-Archive/GridSwCert-Linux_2020_04.cert"
    • 对于早期版本:

      [ec2-user ~]$ sudo curl -o /etc/nvidia/GridSwCert.txt "https://nvidia-gaming.s3.amazonaws.com/GridSwCert-Archive/GridSwCert-Linux_2019_09.cert"
  13. 重启实例。

    [ec2-user ~]$ sudo reboot
  14. (可选)为了帮助利用高达 4K 分辨率的单个显示器,请设置高性能显示协议 NICE DCV。如果您不需要此功能,请勿完成此步骤。

安装 CUDA 的附加版本

在您的实例上安装 NVIDIA 图形驱动程序后,您可以安装与图形驱动程序捆绑的版本以外的 CUDA 版本。以下过程演示如何在实例上配置多个版本的 CUDA。

安装 CUDA 工具包

  1. 连接到 Linux 实例。

  2. 打开 NVIDIA 网站,然后选择所需的 CUDA 版本。

  3. 为您的实例上的操作系统选择架构、分发版和版本。对于安装程序类型,选择运行文件(本地)

  4. 按照说明下载安装脚本。

  5. 将运行权限添加到您使用以下命令下载的安装脚本。

    [ec2-user ~]$ chmod +x downloaded_installer_file
  6. 按如下方式运行安装脚本以安装 CUDA 工具包并将 CUDA 版本号添加到工具包路径中。

    [ec2-user ~]$ sudo downloaded_installer_file --silent --override --toolkit --samples --toolkitpath=/usr/local/cuda-version --samplespath=/usr/local/cuda --no-opengl-lib
  7. (可选)按如下方式设置默认 CUDA 版本。

    [ec2-user ~]$ ln -s /usr/local/cuda-version /usr/local/cuda