ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

HCCL 多机 RDMA 提交方式优化:HCCL_RDMA_PCIE_DIRECT_POST_NOSTRICT 环境变量解析与实战指南

HCCL 多机 RDMA 提交方式优化:HCCL_RDMA_PCIE_DIRECT_POST_NOSTRICT 环境变量解析与实战指南 HCCL 多机 RDMA 提交方式优化HCCL_RDMA_PCIE_DIRECT_POST_NOSTRICT 环境变量解析与实战指南【免费下载链接】hccl集合通信库Huawei Collective Communication Library简称HCCL是基于昇腾AI处理器的高性能集合通信库为计算集群提供高性能、高可靠的通信方案项目地址: https://gitcode.com/cann/hccl本文聚焦 CANN / hccl 开源仓库中用于提升多机通信算子下发性能的环境变量HCCL_RDMA_PCIE_DIRECT_POST_NOSTRICT系统讲解其在 Host 小页内存页表非 4KB 场景下通过 PCIe Direct 提交 RDMA 任务的原理、取值规则、配置方法与资源权衡。读者阅读后可准确判断该变量适用的硬件平台与场景并能在实际多机训练集群中完成配置与验证。功能背景为何需要切换 RDMA 任务提交方式在昇腾多机server 间通信中RDMARemote Direct Memory Access任务需要由 Host 侧下发到 Device 侧执行。HCCL 提供了两种任务提交通道HDCHost Device Communication主机设备通信通过 Host 与 Device 之间的主机设备通信通道提交 RDMA 任务是默认方式PCIe Direct通过 Host 与 Device 之间的 PCIe 高速通信接口直接提交 RDMA 任务。当满足以下两个前提时通信算子下发算子启动、任务发布路径可能出现性能瓶颈即Host BoundHost 侧下发成为瓶颈多机通信场景存在 server 间 RDMA 通信Host 操作系统小页内存页表大小非 4KB例如 64KB 等大页表场景。在此类场景下开发者可设置HCCL_RDMA_PCIE_DIRECT_POST_NOSTRICT环境变量强制通过 PCIe Direct 方式提交 RDMA 任务从而提升通信算子下发性能。说明关于该变量的归类与索引可参见 hccl_env 环境变量目录在多机通信问题定位时该变量的取值也会出现在环境变量加载日志中具体示例可参考 debug_thinking.md。取值说明TRUE / FALSE 与 4KB 例外规则该环境变量支持以下取值取值含义TRUE通过 PCIe DirectHost 与 Device 之间的高速通信接口方式提交 RDMA 任务FALSE默认值通过 HDCHost Device Communication主机设备通信方式提交 RDMA 任务需要特别注意的是此变量的生效存在一个例外规则该变量仅对 Host 侧小页内存页表大小非 4KB 的场景生效若 Host 侧小页内存页表大小是4KB则无论此环境变量取值如何HCCL 都会采用 PCIe Direct 的方式提交 RDMA 任务。也就是说4KB 页表场景下系统默认即使用 PCIe Direct无需也无法通过该变量切回 HDC 方式该变量的价值集中在页表大小非 4KB 的 Host 环境。从仓库中的日志证据看该变量在默认未配置时以空字符串形式出现在 HCCL 环境变量解析日志中并映射到底层rdmaFastPost标志为 0即未开启 PCIe Direct 快速提交走 HDC 方式典型日志形如[INFO] HCCL(1595259,alltoall_test):... [externalinput.cc:525] [1595259][HCCL_ENV] HCCL_RDMA_PCIE_DIRECT_POST_NOSTRICT set by default to [EmptyString], rdmaFastPost is [0]从上述日志可以看出环境变量解析模块externalinput.cc会将用户配置的该环境变量转换为内部标志rdmaFastPost参与后续提交路径选择这也是故障诊断文档中用于确认提交方式是否生效的依据之一。配置示例在启动多机训练任务前通过 shell 导出该环境变量即可生效export HCCL_RDMA_PCIE_DIRECT_POST_NOSTRICTTRUE配置完成后可通过 HCCL_DEBUG_CONFIG 相关开关观察 HCCL_ENV 日志确认该变量解析结果与底层rdmaFastPost标志是否符合预期。性能与资源权衡大页内存额外开销及控制手段开启该变量提升下发性能的同时会带来 Device 侧资源的额外消耗额外消耗 Device 侧大页内存每个通信链路connection会额外多占用1MB的大页内存。因此在高链路数、多卡多机的大规模集群中如果链路数量众多累计的大页内存开销不可忽视。原文档给出了兼顾性能与内存占用的推荐做法如果开发者既想通过此环境变量提升通信算子下发性能又想节省 Device 侧大页内存占用可通过 HCCL_ALGO 环境变量将 server 间通信算法设置为 ring以控制通信链路数量。配置方式为export HCCL_ALGOlevel0:NA;level1:ring该配置表示在 level0device 内不指定特定算法在 level1server 间使用 ring 算法。ring 算法的特点是每个 rank 的收发链路相对集中、链路数受控相比其他多路并行算法可有效减少通信链路总量从而控制 PCIe Direct 方式下大页内存的额外占用。关于 HCCL_ALGO 的更多算法取值与语法可参考 HCCL_ALGO 环境变量说明。使用约束使用此环境变量时需要同时满足以下场景条件多机通信场景存在 server 间 RDMA 通信需求Host 操作系统小页内存页表大小非 4KB若为 4KB 则系统默认使用 PCIe Direct该变量不产生额外作用。此外还需满足对应硬件产品的支持范围见下节。产品支持情况该环境变量的支持情况与昇腾硬件平台相关具体如下Ascend 950PR / Ascend 950DT不支持Atlas A3 训练系列产品 / Atlas A3 推理系列产品不支持Atlas A2 训练系列产品 / Atlas A2 推理系列产品支持Atlas 训练系列产品不支持Atlas 推理系列产品不支持从支持矩阵可见当前该能力仅对 Atlas A2 训练/推理系列产品开放。在部署前请先确认目标硬件型号属于支持列表避免配置无效或产生不符合预期的行为。总结HCCL_RDMA_PCIE_DIRECT_POST_NOSTRICT是针对 Host 小页页表非 4KB 的多机通信场景、用于缓解算子下发 Host Bound 的专项优化开关。其核心要点可归纳为默认值为FALSE走 HDC 提交设为TRUE后改用 PCIe Direct 提交可提升通信算子下发性能仅在小页页表非 4KB 时生效4KB 场景系统恒走 PCIe Direct开启后每个通信链路额外占用 1MB Device 侧大页内存可通过 HCCL_ALGO 将 server 间算法设为 ring 控制链路数、节省内存当前仅 Atlas A2 训练/推理系列产品支持配置前需核对硬件支持矩阵。【免费下载链接】hccl集合通信库Huawei Collective Communication Library简称HCCL是基于昇腾AI处理器的高性能集合通信库为计算集群提供高性能、高可靠的通信方案项目地址: https://gitcode.com/cann/hccl创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表