安装 NVIDIA MLNX_OFED#

面向 Red Hat Enterprise Linux 的 DGX 软件堆栈不包含适用于 Linux 的 NVIDIA MLNX_OFED (OpenFabrics Enterprise Distribution)。这是为了确保 MLNX_OFED 驱动程序与 Red Hat 发行版内核同步。本节介绍如何在运行 Red Hat Enterprise Linux 的系统上下载、安装和升级 MLNX_OFED。

先决条件#

  • NVIDIA 针对特定 MLNX_OFED 版本验证面向 Red Hat Enterprise Linux 的每个 NVIDIA DGX 软件版本。请参阅发行说明以获取建议安装的 MLNX_OFED 版本。

安装和配置 MLNX_OFED#

本节介绍如何在尚未安装 MLNX_OFED 的系统上安装它。务必为 DGX 系统正在运行的 RHEL 版本使用经过验证的 MLNX_OFED 版本。

重要提示

在任何时候运行 dnf update 命令来安装驱动程序都可能会将系统更新到最新的 Red Hat Enterprise Linux 版本。

  1. 确定 DGX 系统上安装的 Red Hat Enterprise Linux 版本。

    cat /etc/redhat-release
    
  2. 参阅发行说明后,下载 MLNX_OFED 软件包。

    1. 转到 Linux InfiniBand 驱动程序 页面,然后向下滚动到 MLNX_OFED 下载中心 矩阵。

      _images/mlnx_ofed-download-matrix.png
    2. MLNX_OFED 下载中心 矩阵中,选择 MLNX_OFED 版本、操作系统发行版和发行版版本以及架构,以显示软件包和文档。例如,

      • 版本:23.10-1.1.9.0-LTS

      • 操作系统发行版:RHEL/CentOS/Rocky

      • 操作系统发行版版本:RHEL/Rocky 9.2

      • 架构:x86_64

      _images/mlnx_ofed-select-1.png
    3. 单击受支持的 ISO 或 tgz 软件包。

      出现 Mellanox OFED (MLNX_OFED) 软件:最终用户协议 页面。

    4. 单击 我已阅读上述最终用户许可协议 以接受最终用户许可协议。

      所选软件包开始下载。

  3. 下载正确的 MLNX_OFED 软件包后,继续执行安装步骤。

    有关使用 MODEF mlnxofedinstall 在 RHEL 9.2 安装期间出现的问题,请参阅已知问题 MOFED mlnxofedinstall 报告“当前操作系统不受支持”(使用 RHEL 9.2)

    1. 转到 MLNX_OFED 软件版本 站点,然后选择您下载的 MLNX_OFED 软件版本。

    2. 单击 用户手册 链接,然后导航到 安装 > 安装 MLNX_OFED

      _images/mlnx_ofed-installing.png

      按照安装说明进行操作。

      注意

      系统可能会报告在执行安装之前需要安装其他软件。如果出现此类消息,请安装该软件,然后重试安装 MLNX_OFED 驱动程序。

  4. 如果您打算使用 NVIDIA GPUDirect Storage (GDS),请根据 MLNX_OFED 要求和安装 中的说明启用驱动程序的 GDS 支持。

  5. 安装 nvidia-mlnx-config

    sudo dnf install -y nvidia-mlnx-config
    
  6. 为您的内核安装内核标头和开发软件包。

    这些是后续 DKMS 编译所必需的。

    sudo dnf install -y kernel-headers-$(uname -r) kernel-devel-$(uname -r)
    
  7. 安装 MLNX_OFED 驱动程序后,安装 NVIDIA 对等内存模块。

    sudo dnf install -y nvidia-peer-memory-dkms
    

注意

nvidia-peer-memory-dkms 1.2 或更高版本,需要 MOFED 5.4-3.0.3.0 或更高版本。使用不符合此标准的 MOFED 版本将导致 nv_peer_mem DKMS 模块构建失败。有关详细信息,请参阅:Mellanox/nv_peer_memory#94

注意

虽然可能可以使用内置驱动程序,但不建议使用内置驱动程序,因为它们的性能低于官方 MLNX OFED 驱动程序,并且它们不支持 GPUDirectTM RDMA 功能。有关配置内置驱动程序的更多信息,请参阅以下 Red Hat Enterprise Linux 文档:配置 InfiniBand 和 RDMA 网络

更新 NVIDIA MLNX_OFED#

本节介绍如何在已安装 MOFED 的系统上更新 MOFED。RPM 软件包中的 Mellanox InfiniBand 驱动程序是针对特定内核版本预编译的。同样重要的是,必须为 DGX 系统已更新到的 RHEL 版本使用正确的 MOFED 版本。无需先卸载当前的 MOFED,因为“mlnxofedinstall”脚本将自动卸载任何先前安装的版本。

  1. 升级 Red Hat Enterprise Linux 发行版和内核版本。

    sudo dnf update --nobest
    
  2. 确定 DGX 系统上安装的 Red Hat Enterprise Linux 版本。

    cat /etc/redhat-release
    
  3. 参阅发行说明后,下载 MLNX_OFED 软件包。

    1. 转到 Linux InfiniBand 驱动程序 页面,然后向下滚动到 MLNX_OFED 下载中心 矩阵。

    2. MLNX_OFED 下载中心 矩阵中,选择 MLNX_OFED 版本、操作系统发行版和发行版版本以及架构,以显示软件包和文档。例如,

      • 版本:23.10-1.1.9.0-LTS

      • 操作系统发行版:RHEL/CentOS/Rocky

      • 操作系统发行版版本:RHEL/Rocky 9.2

      • 架构:X86_64

      _images/mlnx_ofed-select-1.png
    3. 单击受支持的 ISO 或 tgz 软件包。

      出现 Mellanox OFED (MLNX_OFED) 软件:最终用户协议 页面。

    4. 单击 我已阅读上述最终用户许可协议 以接受最终用户许可协议。

      所选软件包开始下载。

  4. 将下载的 ISO 挂载到系统上。

    以下示例显示了 ISO 挂载到 /mnt 目录。

    sudo mount MLNX_OFED_LINUX-<version>.iso /mnt
    
  5. 准备安装驱动程序。

    1. 删除 nvidia-mlnx-confignvidia-peer-memory-dkms

      sudo dnf remove -y nvidia-mlnx-config nvidia-peer-memory-dkms
      

      mlnxofedinstall 步骤将在安装新软件包之前删除软件包,从而导致 nvidia-mlnx-confignvidia-peer-memory-dkms 失败,因为它们依赖于其中一些已删除的软件包。提前删除这些组件可以避免问题。这些组件将在最后一步重新安装。

    2. 指定安装驱动程序时要使用的新内核版本。

      NEXTKERNEL=$(sudo grubby --default-kernel | sed 's/.*vmlinuz\-//g')
      
  6. 使用 -k-s 标志安装驱动程序,以指定新的内核版本和内核源路径。

    sudo /mnt/mlnxofedinstall -k ${NEXTKERNEL} -s /lib/modules/${NEXTKERNEL}/build --force
    

    注意

    注意:系统可能会报告在执行安装之前需要安装其他软件。如果出现此类消息,请安装该软件,然后重复此步骤。

  7. 重新启动。

    sudo reboot
    
  8. 重新安装 nvidia-mlnx-confignvidia-peer-memory-dkms

    sudo dnf install -y nvidia-mlnx-config nvidia-peer-memory-dkms
    

安装 nvidia-peermem-loader 软件包#

nvidia-peermem 内核模块通过使用 NVIDIA GPU 驱动程序提供的对等 API 将 NVIDIA GPU 注册到 InfiniBand 子系统。此模块最初由 Mellanox 在 GitHub 上维护,现在包含在 NVIDIA Linux GPU 驱动程序中。有关更多信息,请参阅 NVIDIA GPUDirect RDMA 文档中的 使用 nvidia-peermem

没有服务会自动加载 nvidia-peermem 模块。要在启动时自动加载该模块,请安装 NVIDIA peermem 加载程序软件包 (nvidia-peermem-loader)。

sudo dnf install nvidia-peermem-loader

此软件包在 /etc/modules-load.d/nvidia-peermem.conf 中添加 nvidia-peermem 模块。