安装 DGX 软件#

本节假定您已在 DGX™ 系统上安装了红帽企业 Linux 或衍生操作系统。如果您已在 kickstart 安装期间安装了 DGX 软件堆栈,则可以跳过本节。

重要提示

在执行安装之前,请参阅发行说明,了解最新信息以及取决于具体版本的其他说明。

配置系统代理#

如果您的网络需要您使用代理

  • 编辑文件 /etc/dnf/dnf.conf 并确保 [main] 部分中存在以下行,并使用适用于您网络的参数

    proxy=http://<Proxy-Server-IP-Address>:<Proxy-Port>
    proxy_username=<Proxy-User-Name>
    proxy_password=<Proxy-Password>
    

启用 DGX 软件存储库#

注意

通过运行这些命令,您确认已阅读并同意接受 NVIDIA 软件许可协议的约束,该协议可在 NVIDIA 企业软件页面上找到。您还确认您理解您选择在 DGX 中安装的任何预发布软件和材料可能无法完全正常运行,可能包含错误或设计缺陷,并且可能相对于 NVIDIA 软件和材料的商业版本而言,在安全性、隐私性、可用性和可靠性标准方面有所降低或不同,并且您自行承担使用预发布版本的风险。

为红帽企业 Linux 安装 NVIDIA DGX 软件包。

sudo dnf install -y https://repo.download.nvidia.com/baseos/el/el-files/9/nvidia-repo-setup-22.12-1.el9.x86_64.rpm

安装必需组件#

  1. 在红帽企业 Linux 上,运行以下命令以启用 DGX 软件所需的其他存储库。

    sudo subscription-manager repos --enable=rhel-9-for-x86_64-appstream-rpms
    sudo subscription-manager repos --enable=rhel-9-for-x86_64-baseos-rpms
    sudo subscription-manager repos --enable=codeready-builder-for-rhel-9-x86_64-rpms
    
  2. 升级到最新软件。

    sudo dnf update -y --nobest
    
  3. 安装 DGX 工具和配置文件。

    • 对于 DGX-1,安装 DGX-1 配置。

      sudo dnf group install -y 'DGX-1 Configurations'
      
    • 对于 DGX-2,安装 DGX-2 配置。

      sudo dnf group install -y 'DGX-2 Configurations'
      
    • 对于 DGX A100,安装 DGX A100 配置。

      sudo dnf group install -y 'DGX A100 Configurations'
      
    • 对于 DGX A800,安装 DGX A800 配置。

      sudo dnf group install -y 'DGX A800 Configurations'
      
    • 对于 DGX H100,安装 DGX H100 配置。

      sudo dnf group install -y 'DGX H100 Configurations'
      
    • 对于 DGX H200,安装 DGX H200 配置。

      sudo dnf group install -y 'DGX H200 Configurations'
      
    • 对于 DGX Station,安装 DGX Station 配置。

      sudo dnf group install -y 'DGX Station Configurations'
      
    • 对于 DGX Station A100,安装 DGX Station A100 配置。

      sudo dnf group install -y 'DGX Station A100 Configurations'
      

    配置更改仅在系统重启后生效。为了减少重启次数,您可以推迟重启,直到安装驱动程序之后。

配置数据驱动器#

DGX 系统中的数据驱动器可以配置为 RAID 0 或 RAID 5。RAID 0 提供最大的存储容量和性能,但不提供任何冗余。

RAID 0 通常用于数据缓存。您可以使用 cachefilesd 为 NFS 共享提供缓存。

重要提示

您可以稍后更改 RAID 级别,但这将销毁这些驱动器上的数据。

除 DGX-1 之外,RAID 配置可以在操作系统安装期间配置。如果您已在安装期间配置了 RAID 阵列,则可以跳过第一步并转到步骤 2。

  1. 配置 /raid 分区。

    所有 DGX 系统都支持 RAID 0 或 RAID 5 阵列。

    以下命令创建 RAID 阵列,将其挂载到 /raid,并在 /etc/fstab 中创建相应的条目。

    • 要创建 RAID 0 阵列

      sudo /usr/bin/configure_raid_array.py -c -f
      
    • 要创建 RAID 5 阵列

      sudo /usr/bin/configure_raid_array.py -c -f -5
      

    注意

    RAID 阵列必须在安装 nvidia-conf-cachefilesd 之前配置,这会将正确的 SELinux 标签放置在 /raid 目录上。如果您在安装 nvidia-conf-cachefilesd 后需要重新创建 RAID 阵列(这将擦除 /raid 上的任何标签),请务必在重新启动 cachefilesd 之前手动恢复标签。

    sudo restorecon /raid
    sudo systemctl restart cachefilesd
    
  2. (可选)安装用于管理 DGX A100、DGX A800 或 DGX H100/H200 系统上的数据驱动器的自加密驱动器 (SED) 的工具。

    有关更多信息,请参阅管理自加密驱动器

  3. (可选)如果您希望将 RAID 阵列用于缓存,请安装 nvidia-conf-cachefilesd。这将更新 cachefilesd 配置以使用 /raid 分区。

    sudo dnf install -y nvidia-conf-cachefilesd
    

安装 GPU 驱动程序#

您可以选择 DGX 系统的不同 GPU 驱动程序分支。最新的驱动程序版本包含新功能,但可能无法提供与旧版本相同的支持持续时间。有关更多详细信息以及 GPU 架构所需的最低驱动程序版本,请参阅 NVIDIA 驱动程序文档中的发行说明。

  1. 显示可用驱动程序的列表。

    dnf module list nvidia-driver
    

    示例输出

    Name                                    Stream                                    Profiles                                                   Summary
    nvidia-driver                           latest                                    default [d], fm, ks, src                                   Nvidia driver for latest branch
    nvidia-driver                           latest-dkms [d]                           default [d], fm, ks                                        Nvidia driver for latest-dkms branch
    nvidia-driver                           open-dkms                                 default [d], fm, ks, src                                   Nvidia driver for open-dkms branch
    nvidia-driver                           515                                       default [d], fm, ks, src                                   Nvidia driver for 515 branch
    nvidia-driver                           515-dkms                                  default [d], fm, ks                                        Nvidia driver for 515-dkms branch
    nvidia-driver                           515-open                                  default [d], fm, ks, src                                   Nvidia driver for 515-open branch
    nvidia-driver                           520                                       default [d], fm, ks, src                                   Nvidia driver for 520 branch
    nvidia-driver                           520-dkms                                  default [d], fm, ks                                        Nvidia driver for 520-dkms branch
    nvidia-driver                           520-open                                  default [d], fm, ks, src                                   Nvidia driver for 520-open branch
    nvidia-driver                           525                                       default [d], fm, ks, src                                   Nvidia driver for 525 branch
    nvidia-driver                           525-dkms                                  default [d], fm, ks                                        Nvidia driver for 525-dkms branch
    nvidia-driver                           525-open                                  default [d], fm, ks, src                                   Nvidia driver for 525-open branch
    nvidia-driver                           530                                       default [d], fm, ks, src                                   Nvidia driver for 530 branch
    nvidia-driver                           530-dkms                                  default [d], fm, ks                                        Nvidia driver for 530-dkms branch
    nvidia-driver                           530-open                                  default [d], fm, ks, src                                   Nvidia driver for 530-open branch
    nvidia-driver                           535 [e]                                   default [d] [i], fm, ks, src [i]                           Nvidia driver for 535 branch
    nvidia-driver                           535-dkms                                  default [d], fm, ks                                        Nvidia driver for 535-dkms branch
    nvidia-driver                           535-open                                  default [d], fm, ks, src                                   Nvidia driver for 535-open branch
    

    在安装 NVIDIA CUDA 驱动程序并配置系统之前,

    • 将步骤 2 中用作示例的发行版本 (535) 替换为您要安装的版本。

    • 如果示例输出中的 Stream 列未显示您想要的已编译驱动程序版本(例如,535),而仅显示 DKMS 版本 (535-dkms),则无论系统如何,都将步骤 2 中的相关 sudo dnf module install --nobest -y nvidia-driver:535... 命令替换为以下命令

      sudo dnf module install --nobest -y nvidia-driver:535-dkms/fm
      
    • 确保您打算安装的驱动程序版本受系统中 GPU 的支持。

  2. 安装 NVIDIA CUDA 驱动程序。

    1. 对于非 NVSwitch 系统,例如 DGX-1、DGX Station 和 DGX Station A100,使用 default 和 src 配置文件安装驱动程序

      sudo dnf module install --nobest -y nvidia-driver:535/{default,src}
      sudo dnf install -y nv-persistence-mode libnvidia-nscq-535
      
    2. 对于 NVSwitch 系统,例如 DGX-2、DGX A100、DGX H100/H200 和 DGX A800,使用 fabric manager (fm) 和 source (src) 配置文件安装驱动程序

      sudo dnf module install --nobest -y nvidia-driver:535/{fm,src}
      sudo dnf install -y nv-persistence-mode nvidia-fm-enable
      
  3. (仅限 DGX Station A100)安装 DGX Station A100 所需的其他软件包。

    这些软件包必须在安装 nvidia-driver 模块后安装。

    sudo dnf install -y nvidia-conf-xconfig nv-docker-gpus
    

    配置更改仅在系统重启后生效。为了减少重启次数,您可以推迟重启,直到安装 NVIDIA Container Runtime 组之后。

  4. 使用 Docker CE 或 Podman 安装和配置 NVIDIA Container Toolkit。

    选择以下选项之一

安装和运行 Docker CE#

要使用 Docker CE 运行 NVIDIA 容器

  1. 安装 NVIDIA 容器设备插件以及 Docker CE。

    安装 NVIDIA Container Runtime 组

    sudo dnf group install -y --allowerasing 'NVIDIA Container Runtime'
    
  2. 重启系统以加载驱动程序并更新系统配置。

    1. 重启系统。

      sudo reboot
      
    2. 系统重启后,验证驱动程序是否已加载并正在处理 NVIDIA 设备。

      nvidia-smi
      

      输出显示所有可用的 GPU。

      示例输出

      +-----------------------------------------------------------------------------+
      | NVIDIA-SMI 535.86.10   Driver Version: 535.86.10    CUDA Version: 12.2      |
      |-------------------------------+----------------------+----------------------+
      | GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
      | Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
      |                               |                      |               MIG M. |
      |===============================+======================+======================|
      |   0  Tesla V100-SXM2...  On   | 00000000:06:00.0 Off |                    0 |
      | N/A   35C    P0    42W / 300W |      0MiB / 16160MiB |      0%      Default |
      |                               |                      |                  N/A |
      +-------------------------------+----------------------+----------------------+
      |   1  Tesla V100-SXM2...  On   | 00000000:07:00.0 Off |                    0 |
      | N/A   35C    P0    44W / 300W |      0MiB / 16160MiB |      0%      Default |
      |                               |                      |                  N/A |
      +-------------------------------+----------------------+----------------------+
      ...
      +-------------------------------+----------------------+----------------------+
      |   7  Tesla V100-SXM2...  On   | 00000000:8A:00.0 Off |                    0 |
      | N/A   35C    P0    43W / 300W |      0MiB / 16160MiB |      0%      Default |
      |                               |                      |                  N/A |
      +-------------------------------+----------------------+----------------------+
      
      +-----------------------------------------------------------------------------+
      | Processes:                                                                  |
      |  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
      |        ID   ID                                                   Usage      |
      |=============================================================================|
      |  No running processes found                                                 |
      +-----------------------------------------------------------------------------+
      
  3. 运行以下命令以验证安装

    sudo docker run --gpus=all --rm nvcr.io/nvidia/cuda:12.2.0-base-ubi8 nvidia-smi
    

    输出显示所有可用的 GPU。

    有关 nvcr.io 的信息,请参阅 NGC 私有注册表用户指南

安装和运行 Podman#

要使用 Podman 运行 NVIDIA 容器

  1. 安装 Podman。

    sudo dnf install podman
    
  2. 安装 nvidia-container-toolkit-base 软件包。

    sudo dnf clean expire-cache && sudo dnf install -y nvidia-container-toolkit-base
    
  3. 检查 NVIDIA Container Toolkit 版本。

    nvidia-ctk --version
    
  4. 生成容器设备接口 (CDI) 规范文件。

    sudo nvidia-ctk cdi generate --output=/etc/cdi/nvidia.yaml
    

    示例命令使用 sudo 以确保创建 /etc/cdi/nvidia.yaml 中的文件。您可以省略 --output 参数以将生成的规范打印到 STDOUT

  5. 验证 GPU 驱动程序是否已加载并正在处理 NVIDIA 设备。

    nvidia-smi -L
    
  6. 运行以下命令以验证安装。

    sudo podman run --rm --device nvidia.com/gpu=all ubuntu nvidia-smi -L
    
  7. 通过使用 Podman 运行示例容器来验证您的安装。

    podman run --security-opt=label=disable --rm --device nvidia.com/gpu=all  ubuntu  nvidia-smi
    

安装可选组件#

在安装安装必需组件中描述的组件后,DGX 已完全正常运行。如果您打算在 DGX 系统上启动 NGC 容器(其中包含 CUDA 工具包、NCCL、cuDNN 和 TensorRT),这是预期的用例,则可以跳过本节。

如果您打算将 DGX 用作开发系统,以在裸机上运行深度学习应用程序,则请安装本节中描述的可选组件。安装 CUDA Toolkit 12.2 软件包(请参阅从本地存储库安装 NVIDIA CUDA 驱动程序

sudo dnf install -y cuda-toolkit-12-2 cuda-compat-12-2 nvidia-cuda-compat-setup

注意

nvidia-smi 的输出显示与已安装驱动程序本机兼容的 CUDA 版本(例如,先前步骤中的“NVIDIA-SMI 535.86.10 驱动程序版本:535.86.10 CUDA 版本:12.2”)。建议安装与此版本匹配的 CUDA 工具包和兼容软件包。

  • 要安装 NVIDIA Collectives Communication Library (NCCL) 运行时,请参阅 NCCL:入门 文档

    sudo dnf group install -y 'NVIDIA Collectives Communication Library Runtime'
    
  • 要安装 CUDA 深度神经网络 (cuDNN) 库运行时,请参阅 NVIDIA cuDNN 页面。

    sudo dnf group install -y 'CUDA Deep Neural Networks Library Runtime'
    
  • 要安装 NVIDIA TensorRT,请参阅 NVIDIA TensorRT 页面。

安装 NVIDIA GPUDirect Storage#

先决条件#

  • 对于 NVIDIA DGX-1、DGX-2 和 DGX Station 以外的系统,要使用 nvidia-fs-dkms-2.17.5-1 提供的最新 GDS 版本 12.2.2-1,您必须安装 NVIDIA Open GPU 内核模块驱动程序。有关安装驱动程序的更多信息,请参阅安装 GPU 驱动程序

  • 对于运行通用 Linux 内核的 NVIDIA DGX-1、DGX-2 和 DGX Station,这些系统中的 GPU 不受 NVIDIA Open GPU 内核模块的支持。GDS 版本 12.2.2-1 及更高版本仅支持 Open GPU 内核模块。

    对于这些系统,您必须将 nvidia-fs 软件包锁定为版本 2.17.3 或更低版本,并将 nvidia-gds 软件包锁定为版本 12.2.1-1 或更低版本。

    sudo dnf install python3-dnf-plugin-versionlock
    sudo dnf versionlock add nvidia-fs-0:2.17.3-1 nvidia-fs-dkms-0:2.17.3-1 nvidia-gds-0:12.2.1-1
    

    示例输出

    Adding versionlock on: nvidia-fs-0:2.17.3-1.*
    Adding versionlock on: nvidia-gds-0:12.2.1-1.*
    

步骤#

要安装 NVIDIA GPUDirect Storage (GDS),请执行以下步骤。

  1. 安装内核标头和内核的开发软件包。

    sudo dnf install -y kernel-headers-$(uname -r) kernel-devel-$(uname -r)
    
  2. 安装 GDS 软件包。

    sudo dnf install -y nvidia-gds
    

请参阅NVIDIA GPUDirect Storage 安装和故障排除指南中的验证 GDS 安装成功

安装可选的 NVIDIA 桌面主题#

DGX 软件存储库还提供可选的主题软件包和桌面壁纸,使 DGX Station 桌面的用户界面具有 NVIDIA 的外观和风格。这些软件包本应作为DGX Station 配置组的一部分安装。

  1. 要应用主题和背景图像,请首先打开 gnome-tweaks。

  2. 应用程序下,选择 NV-Yaru 主题之一。这有默认、浅色和深色变体。

  3. Shell 下,选择 NV-Yaru-dark 主题。

    如果此字段灰显,您可能需要重启系统或重启 GDM 以启用 user-themes 扩展。

  4. 要重启 GDM,请执行以下操作。

    sudo systemctl restart gdm
    
  5. 为背景图像和锁屏选择 NVIDIA 壁纸之一。

    _images/desktop-theme-wallpaper.jpg