昇腾社区首页
EN
注册

HcclConfigValue

功能说明

定义HcclConfig中可配置的参数的值。

定义原型

当前版本仅支持配置HcclConfig中“HCCL_DETERMINISTIC”参数的值。

1
2
3
union HcclConfigValue {
    int32_t value;
};

value的取值如下:

  • 0(默认值):关闭
  • 1:开启归约类通信算子的确定性计算,并关闭保序功能。
  • 2:开启严格确定性计算,即保序功能(在确定性的基础上保证归约顺序一致),配置为该参数时需满足以下条件:
    • 仅支持通信算子为AllReduce和ReduceScatter。
    • 仅支持Atlas A2 训练系列产品的单机和多机对称分布场景,不支持多机单卡和非对称分布的场景。
    • 开启保序时,不支持饱和模式,仅支持INF/NaN模式。
    • 相较于确定性计算,开启保序功能后会产生一定的性能下降,建议在推理场景下使用该功能。

在不开启确定性计算的场景下,多次执行的结果可能不同。这个差异的来源,一般是因为在算子实现中存在异步的多线程执行,会导致浮点数累加的顺序变化。当开启确定性计算后,算子在相同的硬件和输入下,多次执行将产生相同的输出。

默认情况下,无需开启确定性计算或保序功能,但当发现模型执行多次结果不同或者精度调优时,可以开启确定性计算或保序功能辅助进行调试调优,但开启后,算子执行时间会变慢,导致性能下降。