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

CANN/hccl HCCL集合通信算法简介

算法简介

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

针对同一个通信算子,随着网络拓扑、通信数据量、硬件资源等的不同,往往会采用不同的通信算法,从而最大化集群通信性能。HCCL提供了Mesh、Ring、Recursive Halving-Doubling(RHD)、Pairwise、Pipeline等拓扑算法用于Server内、Server间和超节点间的集合通信。

Server内通信算法

HCCL通信域Server内支持Mesh、Ring、Double-Ring和Star算法,具体使用的算法根据硬件拓扑自动选择,用户无须配置也不支持配置。

Server间/超节点间通信算法

HCCL通信域Server间/超节点间支持如下算法的自适应选择,自适应算法会根据产品形态、数据量和Server个数进行选择,用户默认无需配置。

  • Ring算法:基于环结构的通信算法,通信步数多(线性复杂度),时延相对较高,但通信关系简单,受网络拥塞影响较小。适合通信域内Server个数较少、通信数据量较小、网络存在明显拥塞、且Pipeline算法不适用的场景。
  • RHD(Recursive Halving-Doubling)算法:递归二分和倍增算法,通信步数少(对数复杂度),时延相对较低,但在非2次幂节点规模下会引入额外的通信量。适合通信域内Server个数是2的整数次幂且Pipeline算法不适用的场景,或Server个数不是2的整数次幂但通信数据量较小的场景。
  • NHR(Nonuniform Hierarchical Ring)算法:非均衡的层次环算法,通信步数少(对数复杂度),时延相对较低。适合通信域内Server个数较多且Pipeline算法不适用的场景。
  • NB(Nonuniform Bruck)算法:非均匀的数据块通信算法,通信步数少(对数复杂度),时延相对较低。适合通信域内Server个数较多且Pipeline算法不适用的场景。
  • Pipeline算法:流水线并行算法,可并发使用Server内与Server间的链路,或超节点内与超节点间的链路,适合通信数据量较大且通信域内每机包含多卡的场景。
  • Pairwise算法:逐对通信算法,仅用于AlltoAll、AlltoAllV与AlltoAllVC算子,通信步数较多(线性复杂度),时延相对较高,但可以避免网络中出现一打多现象(指一个rank通过同一个端口给多个rank发送数据),适合通信数据量较大、需要规避网络一打多现象的场景。
  • AHC(Asymmetric Hierarchical Concatenate)算法:层次化集合通信算法,仅用于ReduceScatter、AllGather、AllReduce算子,适用于通信域内NPU分布存在多个层次、同时支持多个层次间NPU对称或者非对称分布的场景,当通信域内层次间存在带宽收敛时相对收益会更好。

[!NOTE]说明

  • 开发者若想指定Server间或超节点间通信算法,可通过环境变量HCCL_ALGO进行设置。需要注意,若通过环境变量HCCL_ALGO指定了Server间或超节点间通信算法,通信算法的自适应选择功能不再生效,以用户指定的算法为准。
  • 每种算法支持的算子以及产品可参见环境变量HCCL_ALGO。

耗时评估

HCCL采用α–β模型(Hockney)进行性能评估,算法耗时计算用到的变量定义如下:

  • α:节点间的固定时延,单位为s,由通信硬件设备与底层软件栈决定。
  • β:每byte数据传输耗时,单位为s/byte,由通信链路能力决定。
  • n:节点间通信的数据大小,单位为byte,由通信算法决定。
  • γ:每byte数据归约计算耗时,单位为s/byte,由计算硬件设备能力决定。
  • p:通信域节点个数,影响通信步数,由通信算子所在通信域决定。

单步传输并归约计算n byte数据的耗时为: D = α + nβ + nγ。

集合通信算法通过结合网络拓扑,优化通信关系和通信步骤,减少通信次数以减少固定时延,减少实际通信数据量以减少传输耗时和计算耗时,从而达到优化集合通信性能的目的。

分级通信原理

HCCL通常按节点内/节点间分为两级拓扑、或按节点内/节点间/超节点间分为三级拓扑,分级执行集合通信,不同的层级间链路带宽不同。分级通信可以使通信任务编排与网络拓扑亲和,从而最大化利用链路能力。

以Atlas A2 训练系列产品/Atlas A2 推理系列产品的单算子模式、节点内/节点间两级拓扑为例,各集合通信算子的具体分级通信过程如下表所示:

集合通信算子阶段一阶段二阶段三
ReduceScatterServer间ReduceScatterServer内ReduceScatter/
ReduceScatterVServer间ReduceScatterVServer内ReduceScatterV/
AllGatherServer内AllGatherServer间AllGather/
AllGatherVServer内AllGatherVServer间AllGatherV/
AllReduceServer内ReduceScatterServer间AllReduceServer内AllGather
ScatterServer间ScatterServer内Scatter/
BroadcastServer内ScatterServer间BroadcastServer内AllGather
ReduceServer内ReduceScatterServer间ReduceServer内Gather
HCCL未提供Gather算子,Gather操作与AllGather操作的区别是仅将结果发送到root节点的输出buffer。
AlltoAllServer内AlltoAllServer间AlltoAll/
AlltoAllVServer内AlltoAllVServer间AlltoAllV/
AlltoAllVCServer内AlltoAllVCServer间AlltoAllVC/

详细分级通信流程示例可参见分级通信原理。

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

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

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

相关文章:

  • 国内信号隔离器十大优选品牌,低漂移高可靠 - 仪表人叶工
  • 原神FPS解锁器:2025终极免费教程,轻松突破60帧限制!
  • 文章AIGC率过高怎么办,手动降AI攻略+3款热门工具实测对比 - 殷念写论文
  • 晋中手机号定向推广系统2026年完全指南:如何精准锁定本地高意向客户 - 优质企业观察收录
  • TCW2-282+巴伦国产替代
  • 2026年晋中手机号定向推广与企业精准获客深度破局指南 - 优质企业观察收录
  • 别被‘瞬态’骗了!深入拆解Fluent伪瞬态计算的底层逻辑与适用边界
  • CANN/ops-transformer融合推理注意力分数算子
  • 2026年重庆职称评审机构最新推荐:重庆锦博教育、重庆清晖教育,专注职称申报咨询,助力人才职业晋升 - 海棠依旧大
  • 从ResNet到FPN:拆解RetinaNet的骨干网络,为什么它比YOLOv3更准?
  • 东南亚名义雇主服务商研究与国内名义雇主排名分析 - 万领钧KnitPeople
  • 多模型集成AI智能体 OpenClaw 办公自动化部署方法
  • 西安印刷厂怎么选?松林森彩印vs传统工厂:交期、品质、价格全维度横评 - 企业名录优选推荐
  • 2026年商城小程序服务商排名:5月推荐榜单必看! - FaiscoJeff
  • Vim-ai插件:在Vim中集成AI编程助手,实现代码生成与重构
  • 2026年服装定制厂家口碑推荐榜:西服定制、夹克定制、西裤定制、衬衫定制、大衣定制、旗袍定制、进口面料服装定制、服装团队定制厂家选择指南 - 海棠依旧大
  • 晋中手机号定向推广系统测评:2026年本地实体门店引流的最优方案 - 优质企业观察收录
  • 浙江外国语学院韩国留学招生简章|3+2 国际本科,零语言可报,高性价比留学 - 奔跑123
  • CANN/tensorflow TF Adapter 1.x API参考
  • 等保二级防护标准建设方案
  • CANN/ops-nn硬Sigmoid算子
  • 2026年上海云呼叫中心系统推荐:附功能对比 - 品牌2025
  • Android图片流UI优化实战:手把手教你用Palette实现动态沉浸式状态栏与标题栏
  • HDMI 1.4技术解析:以太网与音频回传的创新设计
  • AI辅助开发框架:从问题类别到工业级系统的设计与管理
  • 2026年南京物流搬家标杆服务商参考:南京睿航物流,覆盖搬家、运输、货运全场景,以专业服务守护物品安全流转 - 海棠依旧大
  • 【计算机毕业设计】基于springboot的公交线路查询系统设计与实现+LW
  • 告别盲猜内存大小:手把手对比NVMe中PRP与SGL的配置与性能影响
  • 提升检测效率选什么?基恩士VL扫描仪深度解析 - 博客万
  • 避坑指南:在GD32F470上移植RT-Thread时,如何正确配置分散的SRAM和TCMSRAM(附代码)