HCCL_ALGO
功能描述
- ring:基于环结构的并行调度算法,当通信域内Server个数为非2的整数次幂且数量较少时,配置为此算法可提升通信性能。
- H-D_R:递归二分和倍增算法(Recursive Halving-Doubling:RHD),当通信域内Server个数为2的整数次幂时,配置为此算法具有较好的亲和性,有助于通信性能提升。
- NHR:非均衡的层次环算法(Nonuniform Hierarchical Ring),当通信域内Server个数为非2的整数次幂且集群规模较大时,配置此算法可提升通信性能。
- NHR_V1:对应历史版本的NHR算法,支持通信域内Server个数为非2的整数次幂。NHR_V1算法理论性能低于新版NHR算法,该配置项未来会逐步下线,建议开发者使用NHR算法。
- NB:非均匀的数据块通信算法(Nonuniform Bruck),当通信域内Server个数为非2的整数次幂且集群规模较大时,配置此算法可提升通信性能。当通信域内Server数与通信数据量较大时相对收益会更好。
- pipeline:流水线并行算法,针对通信数据量较大的场景,该算法可以获得较大的性能提升。
- 针对Atlas 训练系列产品,当通信域内Server的个数为非2的整数次幂时,默认使用ring算法;其他场景默认使用H-D_R算法。
- 针对Atlas A2 训练系列产品,内部会根据产品形态、节点数以及数据量自动选择算法。
配置示例
export HCCL_ALGO="level0:NA;level1:NHR"
- “level0”代表Server内通信算法,当前版本仅支持配置为NA。
- “level1”代表Server间通信算法,支持配置为“ring”、“H-D_R”、“NHR”、“NHR_V1”、“NB”、pipeline。
是否必选
否
使用约束
当前版本Server内通信算法仅支持配置为“NA”。
Server间通信算法支持度
算法类型 |
集合通信算子 |
数据类型 |
归约类型 |
网络运行模式 |
是否支持确定性计算 |
支持的产品型号 |
其他场景处理方法 |
---|---|---|---|---|---|---|---|
ring |
ReduceScatter、AllGather、AllReduce、Reduce、Scatter |
int8、int16、int32、 int64、float16、float32、bfp16 |
sum、prod、max、min |
单算子/图模式 |
是 |
Atlas 训练系列产品 Atlas A2 训练系列产品 |
自动选择为H-D_R |
H-D_R |
ReduceScatter、AllGather、AllReduce、Broadcast、Reduce |
int8、int16、int32、int64、float16、float32、bfp16 |
sum、prod、max、min |
单算子/图模式 |
是 |
Atlas 训练系列产品 Atlas A2 训练系列产品 |
自动选择为ring算法 |
NHR |
ReduceScatter、AllGather、AllReduce、Broadcast、Scatter |
int8、int16、int32、int64、float16、float32、bfp16 |
sum、prod、max、min |
单算子/图模式 |
是 |
Atlas 训练系列产品 Atlas A2 训练系列产品 |
自动选择为H-D_R或者ring算法 |
NHR_V1 |
ReduceScatter、AllGather、AllReduce、Broadcast |
int8、int16、int32、int64、float16、float32、bfp16 |
sum、prod、max、min |
单算子/图模式 |
是 |
Atlas 训练系列产品 Atlas A2 训练系列产品 |
自动选择为H-D_R或者ring算法 |
NB |
ReduceScatter、AllGather、AllReduce、Broadcast、Scatter |
int8、int16、int32、int64、float16、float32、bfp16 |
sum、prod、max、min |
单算子/图模式 |
是 |
Atlas 训练系列产品 Atlas A2 训练系列产品 |
自动选择为H-D_R或者ring算法 |
pipeline |
AllReduce |
int8、int16、int32、float16、float32、bfp16 |
sum、max、min |
单算子模式 |
否 |
Atlas A2 训练系列产品 |
自动选择为H-D_R或者ring算法 |
AllGather |
int8、int16、int32、int64、float16、float32、bfp16 |
- |
单算子模式 |
- |
Atlas A2 训练系列产品 |
自动选择为H-D_R或者ring算法 |
|
ReduceScatter |
int8、int16、int32、float16、float32、bfp16 |
sum、max、min |
单算子模式 |
否 |
Atlas A2 训练系列产品 |
自动选择为H-D_R或者ring算法 |
|
AlltoAll |
int8、int16、int32、int64、float16、float32、bfp16 |
- |
单算子模式 |
- |
Atlas A2 训练系列产品 |
自动选择为pairwise算法 |
|
AlltoAllV |
int8、int16、int32、int64、float16、float32、bfp16 |
- |
单算子模式 |
- |
Atlas A2 训练系列产品 |
自动选择为pairwise算法 |
支持的型号
Atlas 训练系列产品
Atlas A2 训练系列产品