HcclConfigValue
功能说明
定义HcclConfig中可配置的参数的值。
定义原型
当前版本仅支持配置HcclConfig中“HCCL_DETERMINISTIC”参数的值。
1 2 3 | union HcclConfigValue { int32_t value; }; |
value的取值如下:
- 0(默认值):关闭
- 1:开启归约类通信算子的确定性计算,并关闭保序功能。
- 2:开启严格确定性计算,即保序功能(在确定性的基础上保证归约顺序一致),配置为该参数时需满足以下条件:
- 仅支持通信算子为AllReduce和ReduceScatter。
- 仅支持
Atlas A2 训练系列产品 的单机和多机对称分布场景,不支持多机单卡和非对称分布的场景。 - 开启保序时,不支持饱和模式,仅支持INF/NaN模式。
- 相较于确定性计算,开启保序功能后会产生一定的性能下降,建议在推理场景下使用该功能。
在不开启确定性计算的场景下,多次执行的结果可能不同。这个差异的来源,一般是因为在算子实现中存在异步的多线程执行,会导致浮点数累加的顺序变化。当开启确定性计算后,算子在相同的硬件和输入下,多次执行将产生相同的输出。
默认情况下,无需开启确定性计算或保序功能,但当发现模型执行多次结果不同或者精度调优时,可以开启确定性计算或保序功能辅助进行调试调优,但开启后,算子执行时间会变慢,导致性能下降。
父主题: 数据类型