9.4. 为 RDMA 配置集群


NVIDIA GPUDirect RDMA 使用远程直接内存访问(RDMA)来提供直接 GPU 互连。要为 RDMA 配置集群,集群管理员必须安装并配置几个 Operator。

先决条件

  • 您可以使用集群管理员身份访问 OpenShift 集群。
  • 集群有多个带有支持的 NVIDIA GPU 的 worker 节点,并可以访问兼容的 NVIDIA 加速网络平台。
  • 您已安装了带有所需分布式培训组件的 Red Hat OpenShift AI,如 安装分布式工作负载组件 中所述。
  • 您已配置了分布式培训资源,如 管理分布式工作负载 中所述。

步骤

  1. 以集群管理员身份登录 OpenShift 控制台。
  2. 在 OpenShift AI 中启用 NVIDIA GPU 支持。

    这个过程包括安装 Node Feature Discovery Operator 和 NVIDIA GPU Operator。如需更多信息,请参阅启用 NVIDIA GPU

    注意

    安装 NVIDIA GPU Operator 后,请确保在 ClusterPolicy 自定义资源实例中将 rdma 设置为 enabled

  3. 要简化 NVIDIA 网络资源的管理,请安装和配置 NVIDIA Network Operator,如下所示:

    1. 安装 NVIDIA Network Operator,如 OpenShift 文档中的 在集群中添加 Operator 所述。
    2. 配置 NVIDIA Network Operator,如 NVIDIA 文档中的 Network Operator Application Notes 中的部署示例所述。
  4. [可选] 要使用单根 I/O 虚拟化(SR-IOV)部署模式,请完成以下步骤:

    1. 安装 SR-IOV Network Operator,如 OpenShift 文档中的安装 SR-IOV Network Operator 部分所述。
    2. 配置 SR-IOV Network Operator,如 OpenShift 文档中的 配置 SR-IOV Network Operator 部分所述。
  5. 使用 Machine Configuration Operator 为容器引擎(CRI-O)配置中非 root 用户增加固定内存的限制,如下所示:

    1. 在 OpenShift 控制台中,在 Administrator 视角中点 Compute MachineConfigs
    2. Create MachineConfig
    3. 使用以下内容替换占位符文本:

      机器配置示例

      apiVersion: machineconfiguration.openshift.io/v1
      kind: MachineConfig
      metadata:
        labels:
          machineconfiguration.openshift.io/role: worker
        name: 02-worker-container-runtime
      spec:
        config:
          ignition:
            version: 3.2.0
          storage:
            files:
              - contents:
                  inline: |
                    [crio.runtime]
                    default_ulimits = [
                      "memlock=-1:-1"
                    ]
                mode: 420
                overwrite: true
                path: /etc/crio/crio.conf.d/10-custom
      Copy to Clipboard Toggle word wrap

    4. 编辑 default_ulimits 条目,为您的配置指定适当的值。有关默认限制的更多信息,请参阅 使用机器配置知识库解决方案在 CRIO 上设置默认 ulimits
    5. Create
    6. 重启 worker 节点以应用机器配置。

    此配置可让非 root 用户在限制性最严格的 OpenShift 默认安全上下文中使用 RDMA 运行培训作业。

验证

  1. 验证 Operator 是否已正确安装,如下所示:

    1. 在 OpenShift 控制台中,在 Administrator 视角中点 Workloads Pods
    2. Project 列表中选择您的项目。
    3. 验证每个新安装的 Operator 的 Pod 是否正在运行。
  2. 验证是否使用 RDMA,如下所示:

    1. 编辑 PyTorchJob 资源,将 *NCCL_DEBUG* 环境变量设置为 INFO,如下例所示:

      将 NCCL debug 级别设置为 INFO

              spec:
                containers:
                - command:
                  - /bin/bash
                  - -c
                  - "your container command"
                  env:
                  - name: NCCL_SOCKET_IFNAME
                    value: "net1"
                  - name: NCCL_IB_HCA
                    value: "mlx5_1"
                  - name: NCCL_DEBUG
                    value: "INFO"
      Copy to Clipboard Toggle word wrap

    2. 运行 PyTorch 作业。
    3. 检查 pod 日志是否包含类似以下文本的条目:

      pod 日志条目示例

      NCCL INFO NET/IB : Using [0]mlx5_1:1/RoCE [RO]
      Copy to Clipboard Toggle word wrap

Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2026 Red Hat
返回顶部