9.4. 为 RDMA 配置集群
NVIDIA GPUDirect RDMA 使用远程直接内存访问(RDMA)来提供直接 GPU 互连。要为 RDMA 配置集群,集群管理员必须安装并配置几个 Operator。
先决条件
- 您可以使用集群管理员身份访问 OpenShift 集群。
- 集群有多个带有支持的 NVIDIA GPU 的 worker 节点,并可以访问兼容的 NVIDIA 加速网络平台。
- 您已安装了带有所需分布式培训组件的 Red Hat OpenShift AI,如 安装分布式工作负载组件 中所述。
- 您已配置了分布式培训资源,如 管理分布式工作负载 中所述。
步骤
- 以集群管理员身份登录 OpenShift 控制台。
在 OpenShift AI 中启用 NVIDIA GPU 支持。
这个过程包括安装 Node Feature Discovery Operator 和 NVIDIA GPU Operator。如需更多信息,请参阅启用 NVIDIA GPU。
注意安装 NVIDIA GPU Operator 后,请确保在
ClusterPolicy自定义资源实例中将rdma设置为enabled。要简化 NVIDIA 网络资源的管理,请安装和配置 NVIDIA Network Operator,如下所示:
- 安装 NVIDIA Network Operator,如 OpenShift 文档中的 在集群中添加 Operator 所述。
- 配置 NVIDIA Network Operator,如 NVIDIA 文档中的 Network Operator Application Notes 中的部署示例所述。
[可选] 要使用单根 I/O 虚拟化(SR-IOV)部署模式,请完成以下步骤:
- 安装 SR-IOV Network Operator,如 OpenShift 文档中的安装 SR-IOV Network Operator 部分所述。
- 配置 SR-IOV Network Operator,如 OpenShift 文档中的 配置 SR-IOV Network Operator 部分所述。
使用 Machine Configuration Operator 为容器引擎(CRI-O)配置中非 root 用户增加固定内存的限制,如下所示:
-
在 OpenShift 控制台中,在 Administrator 视角中点 Compute
MachineConfigs。 - 点 Create MachineConfig。
使用以下内容替换占位符文本:
机器配置示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
编辑
default_ulimits条目,为您的配置指定适当的值。有关默认限制的更多信息,请参阅 使用机器配置知识库解决方案在 CRIO 上设置默认 ulimits。 - 点 Create。
- 重启 worker 节点以应用机器配置。
此配置可让非 root 用户在限制性最严格的 OpenShift 默认安全上下文中使用 RDMA 运行培训作业。
-
在 OpenShift 控制台中,在 Administrator 视角中点 Compute
验证
验证 Operator 是否已正确安装,如下所示:
-
在 OpenShift 控制台中,在 Administrator 视角中点 Workloads
Pods。 - 从 Project 列表中选择您的项目。
- 验证每个新安装的 Operator 的 Pod 是否正在运行。
-
在 OpenShift 控制台中,在 Administrator 视角中点 Workloads
验证是否使用 RDMA,如下所示:
编辑
PyTorchJob资源,将*NCCL_DEBUG*环境变量设置为INFO,如下例所示:将 NCCL debug 级别设置为 INFO
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 运行 PyTorch 作业。
检查 pod 日志是否包含类似以下文本的条目:
pod 日志条目示例
NCCL INFO NET/IB : Using [0]mlx5_1:1/RoCE [RO]
NCCL INFO NET/IB : Using [0]mlx5_1:1/RoCE [RO]Copy to Clipboard Copied! Toggle word wrap Toggle overflow