下载
EN
注册

HcclCommConfig

功能

初始化具有特定配置的通信域时,此数据类型用于定义通信域配置信息,包含缓存区大小、确定性计算开关和通信域名称。

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

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

定义原型

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
const uint32_t HCCL_COMM_CONFIG_INFO_BYTES = 24;
const uint32_t COMM_NAME_MAX_LENGTH = 128;
const uint32_t UDI_MAX_LENGTH = 128; 
typedef struct HcclCommConfigDef {
    char reserved[HCCL_COMM_CONFIG_INFO_BYTES];    /* 保留字段,不可修改 */
    uint32_t hcclBufferSize;                       /* 共享数据的缓存区大小,取值需大于等于1,单位为MByte,默认值为200 */
    uint32_t hcclDeterministic;                    /* 确定性计算开关:0 关闭、1 开启,默认值为0 */
    char hcclCommName[COMM_NAME_MAX_LENGTH];       /* 通信域名称,最大长度为128,不指定时由HCCL自动生成 */
    char hcclUdi[UDI_MAX_LENGTH];                  /* 用户自定义信息,最大长度为128,默认为空。*/
} HcclCommConfig;