HCCL_DETERMINISTIC
功能描述
此环境变量用于配置是否开启归约类通信算子的确定性计算或保序功能,其中归约类通信算子包括AllReduce、ReduceScatter、Reduce,归约保序是指严格的确定性计算,在确定性的基础上保证归约顺序一致。
开启归约算子的确定性计算或保序功能后,算子在相同的硬件和输入下,多次执行将产生相同的输出。
HCCL_DETERMINISTIC支持的取值如下:
- false:默认值,关闭确定性计算。
- true:开启归约类通信算子的确定性计算。
- 针对
Atlas A2 训练系列产品 ,支持通信算子AllReduce、ReduceScatter、Reduce。 - 针对
Atlas A3 训练系列产品 /Atlas A3 推理系列产品 ,若算法的编排展开位置为AI CPU,所有归约类算子都为确定性计算,且不受此环境变量影响;若算法的编排展开位置为Vector Core,仅通信算子AllReduce和ReduceScatter涉及非确定性计算,配置为“true”后支持切换为确定性计算。
- 针对
- strict:开启归约类通信算子的严格确定性计算,即保序功能(在确定性的基础上保证所有bit位的归约顺序均一致),配置为该参数时需满足以下条件:
- 仅支持
Atlas A2 训练系列产品 ,且仅支持单机和多机对称分布场景,不支持多机单卡和非对称分布的场景。 - 仅支持通信算子AllReduce和ReduceScatter。
- 开启保序时,不支持饱和模式,仅支持INF/NaN模式。
- 相较于确定性计算,开启保序功能后会产生一定的性能下降,建议在推理场景下使用该功能。
- 仅支持
一般情况下无需开启归约算子的确定性计算或保序功能,当模型多次执行结果不同或者精度调优时,可通过此环境变量开启确定性计算或保序功能进行辅助调试调优,但开启后,算子执行时间会变慢,导致性能下降。
配置示例
export HCCL_DETERMINISTIC=true
使用约束
无
支持的型号
父主题: 集合通信