昇腾社区首页
中文
注册

集合通信算法

HCCL提供了Mesh、Ring、Recursive Halving-Doubling(RHD)、NHR(Nonuniform Hierarchical Ring)、NB(Nonuniform Bruck)、Pipeline和Pairwise几种拓扑算法用于Server内和Server间的集合通信。

Server内通信算法

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

如果Server内为Mesh拓扑,则选择Mesh算法;否则,选择Ring算法。

Server间通信算法

HCCL通信域Server间支持Ring、RHD、NHR、NB、Pipeline、Pairwise六种算法的自适应选择,自适应算法会根据产品形态、数据量和Server个数进行选择,用户默认无需配置,大致算法选择逻辑如下:
  • Ring算法:基于环结构的并行调度算法,适用于小规模节点数(例如<32机,且非2幂)和中大规模通信数据量(例如>=256M)的场景。
  • RHD算法:递归二分和倍增算法,支持如下两种场景:
    • 通信域节点个数为2的整数次幂,任意数据量。
    • 中小通信数据量(例如<256M),任意节点数。
  • NHR算法:非均衡的层次环算法,适用于中大规模节点数(例如>32机,且非2的整数次幂)和中大规模通信数据量(例如>=256M)的场景。
  • NB算法:非均匀的数据块通信算法,适用于中大规模节点数(例如>32机,且非2的整数次幂)和中大规模通信数据量(例如>=256M)的场景。
  • Pipeline算法:流水并行算法,适用于多机多卡且数据量较大(例如>=1M * RankSize)的场景。
  • Pairwise算法:比较算法,仅用于AllToAll、AlltoAllV与AlltoAllVC算子,适用于数据量较小(例如<=1M * RankSize)的场景。
  • 开发者若想指定集合通信Server间跨机通信算法,可通过环境变量HCCL_ALGO进行设置。

Server间通信算法支持度

表1 Server间通信算法支持度列表

算法类型

集合通信算子

数据类型

归约类型

网络运行模式

是否支持确定性计算

支持的产品型号

Ring

ReduceScatter、AllGather、AllReduce、Reduce、Scatter

int8、int16、int32、 int64、float16、float32、bfp16

sum、prod、max、min

单算子/图模式

Atlas 训练系列产品

Atlas A2 训练系列产品

RHD

ReduceScatter、AllGather、AllReduce、Broadcast、Reduce

int8、int16、int32、int64、float16、float32、bfp16

sum、prod、max、min

单算子/图模式

Atlas 训练系列产品

Atlas A2 训练系列产品

NHR

ReduceScatter、AllGather、AllReduce、Broadcast、Scatter

int8、int16、int32、int64、float16、float32、bfp16

sum、prod、max、min

单算子/图模式

Atlas 训练系列产品

Atlas A2 训练系列产品

NB

ReduceScatter、AllGather、AllReduce、Broadcast、Scatter

int8、int16、int32、int64、float16、float32、bfp16

sum、prod、max、min

单算子/图模式

Atlas 训练系列产品

Atlas A2 训练系列产品

Pipeline

AllReduce

int8、int16、int32、float16、float32、bfp16

sum、max、min

单算子模式

Atlas A2 训练系列产品

AllGather

int8、int16、int32、int64、float16、float32、bfp16

-

单算子模式

-

Atlas A2 训练系列产品

ReduceScatter

int8、int16、int32、float16、float32、bfp16

sum、max、min

单算子模式

Atlas A2 训练系列产品

AlltoAll

int8、int16、int32、int64、float16、float32、bfp16

-

单算子模式

-

Atlas A2 训练系列产品

AlltoAllV

int8、int16、int32、int64、float16、float32、bfp16

-

单算子模式

-

Atlas A2 训练系列产品

Pairwise

AlltoAll、AlltoAllV

int8、int16、int32、int64、float16、float32、bfp16

-

单算子模式/图模式

-

Atlas A2 训练系列产品