当前位置: 首页 > news >正文

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_ALGO="level0:NA;level1:<algo>;level2:<algo>"
    • level0代表Server内通信算法,当前仅支持配置为NA。

    • level1代表Server间通信算法,支持如下取值:

      • ring:基于环结构的通信算法,通信步数多(线性复杂度),时延相对较高,但通信关系简单,受网络拥塞影响较小。适合通信域内Server个数较少、通信数据量较小、网络存在明显拥塞、且pipeline算法不适用的场景。

      • H-D_R:递归二分和倍增算法(Recursive Halving-Doubling:RHD),通信步数少(对数复杂度),时延相对较低,但在非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对称或者非对称分布(即卡数非对称)的场景,当通信域内层次间存在带宽收敛时相对收益会更好。

        注意:当level1(Server间通信算法)配置为“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-Doubling:RHD),通信步数少(对数复杂度),时延相对较低,但在非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_ALGO="<op0>=level0:NA;level1:<algo0>;level2:<algo1>/<op1>=level0: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_ALGO="level0:NA;level1:NHR"
  • 按算子配置算法类型

    # AllReduce算子使用Ring算法,AllGather算子使用RHD算法,其他算子根据产品形态、节点数以及数据量自动选择通信算法。 export HCCL_ALGO="allreduce=level0:NA;level1:ring/allgather=level0:NA;level1:H-D_R"

使用约束

  • 当前版本Server内通信算法仅支持配置为“NA”。
  • 针对Atlas A2 训练系列产品/Atlas A2 推理系列产品,在严格确定性计算的保序场景下,不建议配置HCCL_ALGO环境变量。
  • 若您调用HCCL C接口初始化具有特定配置的通信域时,通过“HcclCommConfig”的“hcclAlgo”参数指定了通信算法,则以通信域粒度的配置优先。

支持的型号

Ascend 950PR/Ascend 950DT

Atlas A3 训练系列产品/Atlas A3 推理系列产品

Atlas A2 训练系列产品/Atlas A2 推理系列产品

Atlas 训练系列产品

【免费下载链接】hccl集合通信库(Huawei Collective Communication Library,简称HCCL)是基于昇腾AI处理器的高性能集合通信库,为计算集群提供高性能、高可靠的通信方案项目地址: https://gitcode.com/cann/hccl

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

http://www.jsqmd.com/news/784765/

相关文章:

  • CANN/ge AddInput函数
  • mysql 里面concat 和 group_concat 举个例子说明用法
  • 南宁脱发白发养发馆推荐?黑奥秘AI智能检测+全周期管理,毛发健康更持久 - 美业信息观察
  • 探索Taotoken官方价折扣活动在模型实验阶段如何节省成本
  • OpenCore Legacy Patcher完整指南:让老旧Mac焕发新生,轻松运行最新macOS
  • CANN DeepSeek-V4训练优化
  • 面试官问‘不用库函数求平方根倒数’,我答了二分法,他却说有线性的解法?
  • 从IMU到自动驾驶:卡尔曼滤波参数(Q,R)怎么调?一个Python仿真实验说清楚
  • 亲测2026定稿版保姆级指南:手动改稿+工具实测 - 殷念写论文
  • 你的网站图标不显示?5分钟排查Favicon不生效的常见坑(附缓存清理技巧)
  • 2025年产品外观设计机构TOP实力排行与选择指南 - 品牌策略师
  • M.2 CAN FD适配器:工业通信的高性能解决方案
  • Pawvy:基于上下文锚点与队列机制的人机协作任务管理平台
  • Taotoken用量看板如何帮助项目管理者精细化控制AI成本
  • 基于深度学习的遥感建筑物分割识别 yolov11遥感图像分割 无人机车辆识别 无人机道路分割识别
  • 多示例学习:从弱标签数据到精准预测的机器学习范式
  • 记一次绿联的抽象行为(有漏洞说不受影响)
  • CANN社区CLA使用指南
  • 大视觉模型在医学影像领域的部署、应用与挑战
  • 2026年照片换背景底色在线制作免费工具大测评,我找到了最好用的方案
  • CANN/ops-nn erfinv算子API文档
  • AI与运筹学赋能:混合动力公交调度优化算法实战解析
  • CANN/cann-learning-hub:torch_npu IPC特性详解
  • 存储省 80%、速度快 60%!金仓块级永久增量备份重构 TB 级数据库备份效率
  • 图片换背景底色怎么制作?2026年最全工具对比和实战指南
  • Phi-3.5-Mini-Instruct真实案例:用自然语言描述生成完整Flask API服务代码
  • 可解释AI实战指南:从特征归因到样本评估的技术选型与应用
  • 保姆级教程:在RK3568开发板上点亮OV13850摄像头(附设备树配置与常见问题排查)
  • 自动化内容创作:从链接到小红书爆款素材的完整流水线实践
  • PTO-ISA库开发者规则