CANN/hccl通信算法配置指南

CANN/hccl通信算法配置指南 HCCL_ALGO【免费下载链接】hccl集合通信库Huawei Collective Communication Library简称HCCL是基于昇腾AI处理器的高性能集合通信库为计算集群提供高性能、高可靠的通信方案项目地址: https://gitcode.com/cann/hccl功能描述此环境变量用于配置集合通信Server间通信算法以及超节点间通信算法支持全局配置算法类型与按算子配置算法类型两种配置方式。[!NOTE]说明HCCL提供自适应算法选择功能默认会根据产品形态、数据量和Server个数选择合适的算法一般情况下用户无需手工指定。若通过此环境变量指定了Server间或超节点间通信算法则自适应算法选择功能不再生效。在某些通信算子中当使用特定类型的AI处理器且数据量较小时通信算法会由HCCL自适应选择不受此环境变量的控制。本节所列出的算法为HCCL支持配置的全量通信算法不同产品下支持的Server间通信算法与超节点间通信算法可参见Server间通信算法支持度列表与超节点间通信算法支持度列表。全局配置算法类型配置方式如下export HCCL_ALGOlevel0:NA;level1:algo;level2:algolevel0代表Server内通信算法当前仅支持配置为NA。level1代表Server间通信算法支持如下取值ring基于环结构的通信算法通信步数多线性复杂度时延相对较高但通信关系简单受网络拥塞影响较小。适合通信域内Server个数较少、通信数据量较小、网络存在明显拥塞、且pipeline算法不适用的场景。H-D_R递归二分和倍增算法Recursive Halving-DoublingRHD通信步数少对数复杂度时延相对较低但在非2的整数次幂节点规模下会引入额外的通信量。适合通信域内Server个数是2的整数次幂且pipeline算法不适用的场景或Server个数不是2的整数次幂但通信数据量较小的场景。NHR非均衡的层次环算法Nonuniform Hierarchical Ring通信步数少对数复杂度时延相对较低。适合通信域内Server个数较多且pipeline算法不适用的场景。当前版本Ascend 950PR/Ascend 950DT仅支持配置NHR算法。NHR_V1对应历史版本的NHR算法通信步数少根复杂度时延相对较低适合通信域内Server数为非2的整数次幂且pipeline算法不适用的场景。NHR_V1算法理论性能低于新版NHR算法该配置项未来会逐步停用建议开发者使用NHR算法。NB非均匀的数据块通信算法Nonuniform Bruck通信步数少对数复杂度时延相对较低。适合通信域内Server个数较多且pipeline算法不适用的场景。AHC层次化集合通信算法Asymmetric Hierarchical Concatenate适用于通信域内NPU分布存在多个层次、多个层次间NPU对称或者非对称分布即卡数非对称的场景当通信域内层次间存在带宽收敛时相对收益会更好。注意当level1Server间通信算法配置为“AHC”时level2超节点间通信算法将自动采用“AHC”算法无需另行配置即使level2设置了其他算法这些设置也不会生效。pipeline流水线并行算法可并发使用Server内与Server间的链路适合通信数据量较大且通信域内每机包含多卡的场景。pairwise逐对通信算法仅用于AlltoAll、AlltoAllV与AlltoAllVC算子通信步数较多线性复杂度时延相对较高且需要额外申请内存内存大小与数据量成正比但可以避免网络中出现一打多现象适合通信数据量较大、需要规避网络一打多的场景。不设置level1时针对Ascend 950PR/Ascend 950DT默认使用NHR算法。针对Atlas A3 训练系列产品/Atlas A3 推理系列产品内部会根据产品形态、节点数以及数据量自动选择算法。针对Atlas A2 训练系列产品/Atlas A2 推理系列产品内部会根据产品形态、节点数以及数据量自动选择算法。针对Atlas 训练系列产品当通信域内Server的个数为非2的整数次幂时默认使用ring算法其他场景默认使用H-D_R算法。level2代表超节点间通信算法支持如下取值ring基于环结构的通信算法通信步数多线性复杂度时延相对较高但通信关系简单受网络拥塞影响较小。适合通信域内超节点个数较少且不是2的整数次幂的场景。H-D_R递归二分和倍增算法Recursive Halving-DoublingRHD通信步数少对数复杂度时延相对较低但在非2的整数次幂节点规模下会引入额外的通信量。适合通信域内超节点个数是2的整数次幂的场景或超节点个数不是2的整数次幂但通信数据量较小的场景。NHR非均衡的层次环算法Nonuniform Hierarchical Ring通信步数少对数复杂度时延相对较低。适合通信域内超节点个数较多的场景。NB非均匀的数据块通信算法Nonuniform Bruck通信步数少对数复杂度时延相对较低。适合通信域内超节点个数较多的场景。pipeline流水线并行算法可并发使用超节点内与超节点间的链路适合通信数据量较大且通信域内每个超节点包含多卡的场景。超节点间每种通信算法支持的通信算子、数据类型、网络运行模式等说明可参见超节点间通信算法支持度列表。不设置level2时当通信域内超节点个数小于8且不是2的整数次幂时采用ring算法其他场景采用H-D_R算法。level2配置当前仅适用于如下场景仅支持Atlas A3 训练系列产品/Atlas A3 推理系列产品。仅支持通信算子展开模式为AI_CPU的场景通信算子展开模式可通过环境变量HCCL_OP_EXPANSION_MODE配置。按算子类型配置通信算法配置方式如下export HCCL_ALGOop0level0:NA;level1:algo0;level2:algo1/op1level0:NA;level1:algo3;level2:algo4其中op为通信算子的类型支持如下配置allgather对应通信算子AllGather和AllGatherV。reducescatter对应通信算子ReduceScatter和ReduceScatterV。allreduce对应通信算子AllReduce。broadcast对应通信算子Broadcast。reduce对应通信算子Reduce。scatter对应通信算子Scatter。alltoall对应通信算子AlltoAll、AlltoAllV和AlltoAllVC。algo为指定的通信算子采用的通信算法支持的配置同全局配置方法中的level1取值与level2取值请确保指定的通信算法为通信算子支持的算法类型每种算法支持的通信算子可参见Server间通信算法支持度列表与超节点间通信算法支持度列表未指定通信算法的通信算子会根据产品形态、节点数以及数据量自动选择通信算法。多个算子之间的配置使用“/”分隔。配置示例全局配置算法类型export HCCL_ALGOlevel0:NA;level1:NHR按算子配置算法类型# AllReduce算子使用Ring算法AllGather算子使用RHD算法其他算子根据产品形态、节点数以及数据量自动选择通信算法。 export HCCL_ALGOallreducelevel0:NA;level1:ring/allgatherlevel0:NA;level1:H-D_R使用约束当前版本Server内通信算法仅支持配置为“NA”。针对Atlas A2 训练系列产品/Atlas A2 推理系列产品在严格确定性计算的保序场景下不建议配置HCCL_ALGO环境变量。若您调用HCCL C接口初始化具有特定配置的通信域时通过“HcclCommConfig”的“hcclAlgo”参数指定了通信算法则以通信域粒度的配置优先。支持的型号Ascend 950PR/Ascend 950DTAtlas A3 训练系列产品/Atlas A3 推理系列产品Atlas A2 训练系列产品/Atlas A2 推理系列产品Atlas 训练系列产品【免费下载链接】hccl集合通信库Huawei Collective Communication Library简称HCCL是基于昇腾AI处理器的高性能集合通信库为计算集群提供高性能、高可靠的通信方案项目地址: https://gitcode.com/cann/hccl创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考