昇腾社区首页
中文
注册

通过pg_options配置HCCL通信域参数

简介

本特性可以针对不同的通信域配置不同的HCCL配置。通过pg_options添加hccl_config配置,将HCCL配置参数从Python层透过Ascend Extension for PyTorch传递到HCCL供使用。

目前支持的通信域参数配置如下:
  • hccl_buffer_size
  • group_name
  • qos_service_level、qos_traffic_class
  • hccl_op_expansion_mode

使用场景

在模型脚本中按通信域粒度配置HCCL参数。

使用指导

如果同时设置环境变量和pg_options,参数取值以代码中的pg_options方式优先。

支持配置HCCL通信域参数:

  • hccl_buffer_size:设置通信域的hccl_buffer_size大小,默认值为环境变量HCCL_BUFFSIZE的取值,若环境变量HCCL_BUFFSIZE未设置则该参数默认值为200。环境变量HCCL_BUFFSIZE的详情请参见《CANN 环境变量参考》中的“HCCL_BUFFSIZE”章节
  • group_name:设置HCCL通信域的通信组自定义名称,取值为长度不超过32的字符串。
  • qos_service_level、qos_traffic_class:设置RDMA网卡的service level和traffic class。
    • qos_service_level:该参数取值范围0~7。默认值为0xffffffff,此时HCCL会读取环境变量HCCL_RDMA_SL的取值。环境变量HCCL_RDMA_SL的详情请参见《CANN 环境变量参考》中的“HCCL_RDMA_SL”章节
    • qos_traffic_class:该参数取值范围0~255。默认值为0xffffffff,此时HCCL会读取环境变量HCCL_RDMA_TC的取值。环境变量HCCL_RDMA_TC的详情请参见《CANN 环境变量参考》中的“HCCL_RDMA_TC”章节
  • hccl_op_expansion_mode:设置通信算法的编排展开位置。
    • 0:默认值,代表通信算法的编排展开位置,和HCCL_OP_EXPANSION_MODE环境变量的取值保持一致
    • 1:代表通信算法的编排展开位置为Host侧CPU。
    • 2:代表通信算法的编排展开位置在Device侧的AI CPU计算单元。
    • 3:代表通信算法的编排展开位置在Device侧的AI Vector Core计算单元。

    环境变量HCCL_OP_EXPANSION_MODE的详情请参见《CANN 环境变量参考》中的“HCCL_OP_EXPANSION_MODE”章节

使用样例

配置hccl_buffer_size示例:

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)

配置group_name示例:

1
2
3
options = torch_npu._C._distributed_c10d.ProcessGroupHCCL.Options()
options.hccl_config = {"group_name": "group0"}
torch.distributed.init_process_group(backend="hccl", pg_options=options)

配置qos_service_level、qos_traffic_class示例:

1
2
3
options = torch_npu._C._distributed_c10d.ProcessGroupHCCL.Options()
options.hccl_config = {"qos_service_level":7, "qos_traffic_class":224}
torch.distributed.init_process_group(backend="hccl", pg_options=options)

配置hccl_op_expansion_mode示例:

1
2
3
options = torch_npu._C._distributed_c10d.ProcessGroupHCCL.Options()
options.hccl_config ={"hccl_op_expansion_mode":3}
torch.distributed.init_process_group(backend="hccl", pg_options=options)

约束说明