集合通信算法
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间通信算法
- 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间通信算法支持度
算法类型 |
集合通信算子 |
数据类型 |
归约类型 |
网络运行模式 |
是否支持确定性计算 |
支持的产品型号 |
---|---|---|---|---|---|---|
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 训练系列产品 |