HcclCommConfig
功能说明
初始化具有特定配置的通信域时,此数据类型用于定义通信域配置信息,包含缓存区大小、确定性计算开关和通信域名称。
定义原型
1 2 3 4 5 6 7 8 9 10 11 12 13 |
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; uint32_t hcclDeterministic; char hcclCommName[COMM_NAME_MAX_LENGTH]; char hcclUdi[UDI_MAX_LENGTH]; uint32_t hcclOpExpansionMode; uint32_t hcclRdmaTrafficClass; uint32_t hcclRdmaServiceLevel; } HcclCommConfig; |
配置项 |
描述 |
配置优先级 |
---|---|---|
hcclBufferSize |
共享数据的缓存区大小,取值需大于等于1,单位为MByte。 |
配置项hcclBufferSize(通信域粒度配置)> 环境变量HCCL_BUFFSIZE(全局配置)> 默认值200。 |
hcclDeterministic |
确定性计算开关。
在不开启确定性计算的场景下,多次执行的结果可能不同。这个差异的来源,一般是因为在算子实现中存在异步的多线程执行,会导致浮点数累加的顺序变化。当开启确定性计算后,算子在相同的硬件和输入下,多次执行将产生相同的输出。 默认情况下,无需开启确定性计算或保序功能,但当发现模型执行多次结果不同或者精度调优时,可以开启确定性计算或保序功能辅助进行调试调优,但开启后,算子执行时间会变慢,导致性能下降。 |
配置项hcclDeterministic(通信域粒度配置)> 环境变量HCCL_DETERMINISTIC(全局配置)> 默认值0(关闭确定性计算)。 |
hcclCommName |
通信域名称,最大长度为128。 指定的通信域名称需确保与其他通信域中的名称不重复;不指定时由HCCL自动生成。 |
- |
hcclUdi |
用户自定义信息,最大长度为128,默认为空。 |
- |
hcclOpExpansionMode |
配置通信算法的编排展开位置。
需注意:
|
配置项hcclOpExpansionMode(通信域粒度配置)> 环境变量HCCL_OP_EXPANSION_MODE(全局配置)> 默认值0。 |
hcclRdmaTrafficClass |
配置RDMA网卡的traffic class,取值范围为[0,255],需要配置为4的整数倍。 在RoCE V2协议中,该值对应IP报文头中ToS(Type of Service)域段。共8个bit,其中,bit[0,1]固定为0,bit[2,7]为DSCP,因此,该值除以4即为DSCP的值。
须知:
0xFFFFFFFF被用作优先级判断标识,当配置为0xFFFFFFFF时,此通信域配置无效,会按照优先级取环境变量配置或默认值132。 |
配置项hcclRdmaTrafficClass(通信域粒度配置) > 环境变量HCCL_RDMA_TC(全局配置)> 默认值132。 |
hcclRdmaServiceLevel |
配置RDMA网卡的service level,取值需要和网卡配置的PFC优先级保持一致,若配置不一致可能导致性能劣化。 需要配置为无符号整数,取值范围[0,7]。
须知:
0xFFFFFFFF被用作优先级判断标识,当配置为0xFFFFFFFF时,此通信域配置无效,会按照优先级取环境变量配置或默认值4。 |
配置项hcclRdmaServiceLevel(通信域粒度配置)> 环境变量HCCL_RDMA_SL(全局配置)> 默认值4。 |