HCCL 系统约束与限制:跨昇腾产品线的部署边界与展开模式配置详解

HCCL 系统约束与限制:跨昇腾产品线的部署边界与展开模式配置详解 HCCL 系统约束与限制跨昇腾产品线的部署边界与展开模式配置详解【免费下载链接】hccl集合通信库Huawei Collective Communication Library简称HCCL是基于昇腾AI处理器的高性能集合通信库为计算集群提供高性能、高可靠的通信方案项目地址: https://gitcode.com/cann/hccl本文基于 CANN/hccl 仓库的系统约束与限制文档展开系统梳理 HCCLHuawei Collective Communication Library昇腾集合通信库在公共场景以及 Ascend 950、Atlas A3/A2/910/300I Duo 各产品线下的硬性限制与建议边界包括单卡多进程并发数、ACL Graph 图实例配对要求、CCU 调度模式硬件资源规格、组网数量约束等并结合 HCCL_OP_EXPANSION_MODE 环境变量文档 与源码中的展开模式解析、CCU 回退协商实现帮助你在部署集群通信任务前准确判断场景可行性、规避死锁与通信阻塞风险。一、公共约束所有产品线必须遵守的三条边界以下约束不区分具体硬件型号适用于所有使用 HCCL 的场景。1.1 集合通信不支持昇腾虚拟化实例场景集合通信不支持应用于昇腾虚拟化实例场景。这里的“昇腾虚拟化实例”是指通过资源虚拟化的方式将物理机或虚拟机配置的 NPU 切分成多个 vNPU虚拟 NPU 实例挂载到目标环境使用。虚拟化管理方式能够实现统一不同规格资源的分配和回收处理满足多用户反复申请/释放的资源操作请求——但 HCCL 并不在该虚拟化形态下提供服务。如果你的环境是 vNPU 切分形态需要改回整卡独占使用。1.2 ACL Graph同一捕获会话内的 Graph 实例必须配对执行使用 ACL Graph 特性时如果捕获的 Graph 实例中包含通信算子则在执行阶段通信域内所有 Rank 必须执行由同一次捕获生成的同一个 Graph 实例。不支持跨不同捕获会话生成的 Graph 实例配对执行通信操作——即使这些 Graph 实例的内部算子序列完全相同也会导致通信算子执行异常。这条约束的工程含义是多机训练框架中做图捕获时不能各 Rank 独立捕获后“碰巧算子一致”就混用必须由统一的捕获流程同一会话、同一 Graph 句柄分发保证所有 Rank 执行同一实例。这是图模式下最常见的“算子序列一致但通信挂死/报错”类问题的根因之一。1.3 单机多容器场景建议所有容器配置相同 IP在单机多容器场景下建议为所有容器配置相同的 IP 地址以避免在性能对比测试中出现相较于裸机环境的性能劣化。即多容器间通信路径若因 IP 规划不当走错网卡或路由性能测试结论会失真配置一致 IP 是排除该变量的前提。二、Ascend 950PR/Ascend 950DT 专属约束2.1 第三方 x86 服务器的内核版本要求昇腾计算模组适配第三方 x86 服务器的场景操作系统内核版本需要高于 5.18。如不符合此要求则需要手工安装 haveged 补熵工具并启动其服务——低内核版本下 /dev/urandom 熵池不足会影响 RDMA QP 建链等依赖随机数的流程补熵工具用于消除该依赖。2.2 单卡多进程CCU 归属一致性与并发上限由于 CCU 不支持多进程使用单卡多进程下需要保证不同 NPU 上首个通信域的创建归属于同一组业务进程以保证 CCU 被同一组进程的业务占用。这是 950 系列单卡多进程场景最关键的一条如果进程 A 和进程 B 分别在不同 NPU 上先建了通信域并各自占用了 CCU后续交叉使用时 CCU 无法跨进程共享业务将不可用。并发数量建议按通信算子的展开模式通过环境变量HCCL_OP_EXPANSION_MODE设置详见HCCL_OP_EXPANSION_MODE区分展开模式为AICPU_TS默认值单卡进程并发数量建议不超过 6 个展开模式为AIV不建议单卡多进程并发执行多个进程之间建议串行执行。请参考以上建议配置否则存在任务死锁的风险。2.3 AI CPU 模式下单卡并发图数量上限图模式Ascend IR或者图捕获aclgraph场景当通信算法采用默认的 AI CPU 模式时单卡上的并发图数量不能超过 6 个否则可能会因 AI CPU 核被占满而导致通信阻塞。该限制与 2.2 节的“并发进程不超过 6”同源AI CPU 核是稀缺资源进程/图并发过多都会把核占满。2.4 CCU 调度模式适用场景、配置方式与硬件资源规格Ascend 950 新增 CCU 调度模式但受 CCU 硬件资源规格限制建议结合实际业务场景灵活使用。CCU 适用场景64P 以内通信算子场景可考虑开启 CCU 模式用以提升通信性能AlltoAllV 算子限于 16P 内通信域间 CCU 资源无法复用多通信域场景下需评估 CCU 硬件资源是否充足。CCU 配置方式HCCL 集合通信默认使用 AI CPU 模式如需开启 CCU提供如下两种配置方式通过环境变量开启 CCU 调度模式资源不足情况下 HCCL 会回退为 AI CPU 模式配置方法详见 HCCL_OP_EXPANSION_MODE基于通信域粒度配置 CCU 使能可将 CCU 通信域独立管理按需规划使用 CCU 资源配置方法详见 hcomm 侧的HcclCommInitClusterInfoConfig接口文档属于 hcomm 通信库的 API不在本仓库范围内。CCU 硬件资源规格单卡CCU 模式资源分类单位硬件资源规格调度模式Channel个120调度模式Loop个68调度模式CCU BufferKB2048从源码结构看HCCL_OP_EXPANSION_MODECCU_SCHED/CCU_MS被解析为OpExecuteConfig::CCU_SCHED/CCU_MS两种执行配置见 OpExecuteConfig 枚举定义“资源不足自动回退 AI CPU”的行为对应 ccu_fallback.cc 中实现的 CCU 资源协商与回退逻辑——CheckCcuResNegotiation在发起通信前先通过子通信域协商远端 CCU 资源是否可用CheckCcuParamAndFallback则在算子参数算子类型、数据类型、规模等不满足 CCU 支持条件时回退到 AI CPU 算法这与文档中“资源不足情况下 HCCL 会回退为 AI CPU 模式”的描述相互印证。三、Atlas A3 训练/推理系列产品的约束3.1 单卡多进程支持条件与并发上限若驱动固件是25.0.RC1 或更高版本支持单卡多进程的业务场景即支持多个业务进程同时共用一个 NPU。需要注意多进程会对资源开销、通信性能有一定的影响若同一个 NPU 上进程过多可能会由于资源不足造成业务运行失败。若驱动固件不满足版本要求会使用单进程运行。按展开模式区分的并发建议HCCL_OP_EXPANSION_MODE设置展开模式为AI_CPU默认值单卡进程并发数量建议不超过 6 个展开模式为AIV不建议单卡多进程并发执行多个进程之间建议串行执行。同样存在任务死锁风险请按建议配置。3.2 超节点规模一致性建议建议每个超节点中的 Server 数量一致每个 Server 中的 AI 处理器数量一致若不一致会造成性能劣化。集合通信算法在拓扑规整时才能达到最优调度异构规模属于“能跑但慢”的场景。3.3 AI CPU 模式下单卡并发图数量上限与 950 一致图模式Ascend IR或者图捕获aclgraph场景当通信算法采用默认的 AI CPU 模式时单卡上的并发图数量不能超过 6 个否则可能会因 AI CPU 核被占满而导致通信阻塞。四、Atlas A2 训练/推理系列产品的约束4.1 单卡多进程支持条件与并发上限与 A3 相同驱动固件为25.0.RC1 或更高版本时支持单卡多进程多个业务进程同时共用一个 NPU不满足则退回单进程运行。多进程对资源开销、通信性能有一定影响进程过多可能因资源不足导致业务运行失败。按展开模式区分的并发建议注意 A2 系列默认展开模式是 HOST与 950/A3 的 AI CPU 系默认值不同展开模式为HOST默认值单卡进程并发数量不建议超过 8 个展开模式为AIV不建议单卡多进程并发执行多个进程之间建议串行执行。请参考以上建议配置否则存在任务死锁的风险。4.2 组网数量约束单 Server 场景对参与集合通信的 AI 处理器数量无限制Server 集群场景要求参与集合通信的 AI 处理器数量为(1~8)*nn 为参与训练的 Server 个数。此外建议每个 Server 中参与集合通信的 AI 处理器数量保持一致若不一致会造成性能劣化。五、Atlas 训练系列产品Atlas 910 系列的约束5.1 不支持单卡多进程不支持单卡多进程的业务场景即不支持多个业务进程同时共用一个 NPU。这是 910 系列与 950/A3/A2新驱动固件之间最显著的部署差异框架侧做 per-device 进程切分时必须按 1 进程 1 卡规划。5.2 组网规模约束单 Server 场景要求实际参与集合通信的 AI 处理器数目只能为1/2/4/8且 0-3 卡和 4-7 卡各为一个组网使用 2 张卡或 4 张卡训练时不支持跨组网创建设备集群例如不能用卡 0、1、4、5 组 4 卡域Server 集群场景要求参与集合通信的 AI 处理器数目只能为1*n、2*n、4*n、8*nn 为参与训练的 Server 个数且 n 为 2 的指数倍情况下集群性能最好建议优先采用此种方式进行集群组网。这些约束与集合通信算法Ring/AllReduce 等对 rank 数与拓扑分组的假设直接相关组网不满足约束会导致初始化失败或算法不可选。六、Atlas 300I Duo 推理卡的约束6.1 不支持单卡多进程不支持单卡多进程的业务场景即不支持多个业务进程同时共用一个 NPU。6.2 仅支持单 Server 场景仅支持单 Server 场景每个集合通信操作支持的最大 NPU 数量详见各通信算子接口文档。6.3 通信域初始化时机要求通信域初始化需要在其他任何涉及 Device 内存申请的操作之前否则可能因 P2P 内存不足导致初始化失败。即业务启动流程中HcclCommInit*系列调用应尽早执行、先于业务 buffer 的aclrtMalloc等设备内存分配如果先分配了大量 Device 内存P2P 通信所需的内存资源可能申请不到初始化直接失败。七、源码视角展开模式解析与约束的落地实现上述约束大量围绕HCCL_OP_EXPANSION_MODE展开模式生效其解析逻辑集中在 alg_env_config.cc 的 ParseOpExpansion()从中可以印证文档约束的实现细节AI_CPU与AICPU_TS走同一分支均置aicpuUnfold true与文档中“AI_CPU 将废弃、功能与 AICPU_TS 完全一致”的说法一致对 910 设备会打印910 do not support AICPU unfold告警印证 910 系列不支持 AI CPU 展开HOST_TS仅对 910BA2 系列设备生效其他设备打印do not support HOST_TS告警与 A2 文档中 HOST_TS 仅列于该系列的取值表一致配置为AICPU_CacheDisable时置aicpuUnfold true且aicpuCacheEnable 0即“AI CPU 展开 关闭任务 cache”的组合语义无法识别的取值直接返回HCCL_E_PARA报错对应 950 文档中“若设置了不支持的环境变量系统报错”的行为A3/A2/300I Duo 则为回退默认值产品行为存在差异。展开模式的最终形态以 alg_param.h 中 OpExecuteConfig 枚举为准DEFAULT/HOSTCPU_TS/AICPU_TS/AIV/CCU_MS/CCU_SCHED 等日志中可通过ENGINE_STR_MAP映射回字符串排查实际生效模式。CCU 场景下ccu_fallback.cc 还会在子通信域配置中显式把回退域固定为 AI CPU 展开subCommConfig.hcclOpExpansionMode commConfigOpExpansionAicpu保证协商失败后的回退域行为确定。八、关键约束速查表约束项Ascend 950PR/DTAtlas A3 系列Atlas A2 系列Atlas 训练系列 (910)Atlas 300I Duo单卡多进程支持首通信域归属同组进程固件≥25.0.RC1 支持固件≥25.0.RC1 支持不支持不支持默认展开模式AICPU_TSAI_CPUHOST—不支持该环境变量HOST默认模式单卡并发上限≤6 进程≤6 进程≤8 进程——AIV 多进程建议串行建议串行建议串行——AI CPU 模式单卡并发图≤6≤6———组网规模—超节点内 Server/卡数建议一致集群 (1~8)*n单 Server 1/2/4/8两卡组网集群 1/2/4/8*n仅单 Server其他内核5.18 或装 havegedCCU 资源规格 120 Channel/68 Loop/2048KB Buffer——不支持跨组网0-3/4-7 卡分组通信域初始化须先于 Device 内存申请部署前建议先对照本文各节核对硬件型号与驱动固件版本再按“组网规模 → 进程模型 → 展开模式 → 并发图数量”的顺序逐层检查绝大多数死锁与性能劣化问题都源于上述某一层约束被突破。完整的展开模式取值、算子支持矩阵与数据类型约束可继续参考 HCCL_OP_EXPANSION_MODE 文档其余环境变量约束见 hccl_env 环境变量总览。【免费下载链接】hccl集合通信库Huawei Collective Communication Library简称HCCL是基于昇腾AI处理器的高性能集合通信库为计算集群提供高性能、高可靠的通信方案项目地址: https://gitcode.com/cann/hccl创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考