使用 NVIDIA Mellanox InfiniBand 驱动程序

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

确定要安装的 MLNX_OFED 版本

NVIDIA 验证每个版本的 NVIDIA EL7 软件时都会使用特定的 MLNX_OFED 版本。请查阅 NVIDIA EL7 发行说明,了解特定版本的 NVIDIA EL7 软件建议安装的 MLNX_OFED 版本。

下表提供了经过测试版本的快速参考。

Red Hat Enterprise Linux 版本 MLNX_OFED LTS 版本
7.9 4.9-2.2.6.0
7.8 4.9-0.1.7.0
7.7 4.7-3.2.9.0

安装 NVIDIA Mellanox InfiniBand 驱动程序

本节介绍如何在尚未安装 MLNX_OFED 的系统上安装它。务必为 DGX 系统运行的 RHEL 版本使用经过验证的 MLNX_OFED 版本。请注意,在安装 NVIDIA 驱动程序之前运行的 “yum update” 命令会将系统更新到最新的 Red Hat Enterprise Linux 版本。

  1. 确定 DGX 系统上安装的 Red Hat Enterprise Linux 版本。 cat /etc/redhat-release
  2. 确定要安装的适当 MLNX_OFED 软件包。

    请参阅 确定要安装的 MLNX_OFED 版本

  3. 下载 MLNX_OFED 软件包。
    1. 访问 Linux InfiniBand 驱动程序 页面,向下滚动到下载向导,然后单击 LTS 下载 选项卡。



      NVIDIA EL7 软件仅使用 LTS 版本的 MLNX_OFED 进行测试。

    2. MLNX_OFED 下载中心 矩阵中,选择
      • 要安装的版本(您可能需要选择 存档版本),
      • RHEL/CentOS(在操作系统发行版下),以及
      • 相关的操作系统发行版版本和架构。




    3. 单击所需的 ISO/tgz 软件包。

      要获取下载链接,请接受最终用户许可协议。

  4. 下载正确的 MLNX_OFED 软件包后,继续执行安装步骤。
    1. 重新访问 MLNX_OFED 软件发布 站点,然后选择您打算使用的 MLNX_OFED 软件版本。
    2. 使用侧边菜单导航到 安装->安装 MLNX_OFED,然后按照说明操作。
  5. 安装 nvidia-mlnx-config
    sudo yum install -y nvidia-mlnx-config
  6. 为您的内核安装内核头文件和开发包。

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

    sudo yum install -y kernel-headers-$(uname -r) kernel-devel-$(uname -r)
  7. 安装 MLNX_OFED 驱动程序后,安装 NVIDIA 对等内存模块。
    sudo yum install -y nvidia-peer-memory-dkms
  8. 加载 nv_peer_mem 模块,可以
    • 手动方式,通过发出 sudo systemctl start nv_peer_mem 命令,或者
    • 设置系统使其在每次系统启动时自动启动,如下所示。
      1. 创建一个文件 /etc/modules-load.d/nv-peer-mem.conf ,内容为 “nv_peer_mem”。
      2. 发出 sudo dracut --force /boot/initramfs-$(uname -r).img $(uname -r) 命令
      3. 重启系统。
注意: 虽然可能有内置驱动程序可用,但不建议使用内置驱动程序,因为它们的性能低于官方 MLNX OFED 驱动程序,并且不支持 GPUDirectTM RDMA 功能。有关配置内置驱动程序的更多信息,请参阅以下 Red Hat Enterprise Linux 文档:

更新 NVIDIA Mellanox InfiniBand 驱动程序

本节介绍如何在已安装 MLNX_OFED 的系统上更新它。RPM 软件包中的 Mellanox InfiniBand 驱动程序是为特定内核版本预编译的。务必为 DGX 系统已更新到的 Red Hat Enterprise Linux 版本使用经过验证的 MLNX_OFED 版本。无需先卸载当前的 MLNX_OFED,因为 “mlnxofedinstall” 脚本将自动卸载任何先前安装的版本。

注意: MLNX_OFED 驱动程序支持 Red Hat Enterprise Linux weak-modules 脚本。这意味着在同一 Red Hat Enterprise Linux 版本(例如,7.9)中对内核进行的任何更新都不需要更新 MLNX_OFED 驱动程序。
  1. 升级 Red Hat Enterprise Linux 发行版和内核版本。
    sudo yum update
  2. 确定 DGX 系统上安装的 Red Hat Enterprise Linux 版本。 cat /etc/redhat-release
  3. 确定要安装的适当 MLNX_OFED 软件包。

    请参阅 确定要安装的 MLNX_OFED 版本

  4. 下载 MLNX_OFED 软件包。
    1. 访问 Linux InfiniBand 驱动程序 页面,向下滚动到下载向导,然后单击 LTS 下载 选项卡。



      NVIDIA EL7 软件仅使用 LTS 版本的 MLNX_OFED 进行测试。

    2. MLNX_OFED 下载中心 矩阵中,选择
      • 要安装的版本(您可能需要选择 存档版本),
      • RHEL/CentOS(在操作系统发行版下),以及
      • 相关的操作系统发行版版本和架构。




    3. 单击所需的 ISO/tgz 软件包。

      要获取下载链接,请接受最终用户许可协议。

  5. 将下载的 ISO 挂载到系统上的某个位置。

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

    sudo mount MLNX_OFED_LINUX-<version>.iso /mnt
  6. 准备安装驱动程序。
    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')
  7. 使用 -k 和 -s 标志安装驱动程序,以指定新的内核版本和内核源路径。
    sudo /mnt/mlnxofedinstall -k ${NEXTKERNEL} -s /lib/modules/${NEXTKERNEL}/build --force
    
    注意: 系统可能会报告在执行安装之前需要安装其他软件。如果出现此类消息,请安装该软件,然后重试安装 MLNX_OFED 驱动程序。
  8. 重启。
    sudo reboot
  9. 重新安装 nvidia-mlnx-confignvidia-peer-memory-dkms
    sudo yum install -y nvidia-mlnx-config nvidia-peer-memory-dkms
  10. 加载 nv_peer_mem 模块,可以
    • 手动方式,通过发出 sudo systemctl start nv_peer_mem 命令,或者
    • 设置系统使其在每次系统启动时自动启动,如下所示。
      1. 创建一个文件 /etc/modules-load.d/nv-peer-mem.conf ,内容为 “nv_peer_mem”。
      2. 发出 sudo dracut --force /boot/initramfs-$(uname -r).img $(uname -r) 命令
      3. 重启系统。