hccl_buffer_size

功能描述

此配置用于控制两个NPU之间共享数据的缓存区大小。单位为M,取值最小为1,最大无上限,默认值是200M。HCCL_BUFFSIZE环境变量只能配置全局HCCL通信域缓存区大小,相关内容请参考HCCL_BUFFSIZE。hccl_buffer_size配置可用于分别设置每个通信域的hccl_buffer_size大小。

每个通信域buffer size设置的计算方法:

配置示例

目前存在两个接口可以传入该配置参数,分别是init_process_group和new_group,示例如下:

1
2
3
options = torch_npu._C._distributed_c10d.ProcessGroupHCCL.Options()
options.hccl_config = {"hccl_buffer_size":200}
torch.distributed.init_process_group(backend='hccl', pg_options=options, world_size=world_size, rank=rank)
1
2
3
options = torch_npu._C._distributed_c10d.ProcessGroupHCCL.Options()
options.hccl_config = {"hccl_buffer_size":200}
torch.distributed.new_group(backend="hccl", pg_options=options)

使用场景

相较于HCCL_BUFFSIZE环境变量只能配置全局通信域,该配置允许配置单个通信域。当业务部署内存不足时,根据功能描述中的配置策略配置,小于配置策略会导致通信性能下降。