文件最后提交记录最后更新时间
9 个月前
9 个月前
README

通信域管理接口列表(Python语言)

HCCL提供了Python语言的通信域管理接口与梯度切分接口,用于实现图模式下的框架适配。当前仅用于TensorFlow网络在昇腾AI处理器执行分布式优化。

Python接口列表

接口

简介

通信域管理

create_group

创建集合通信用户自定义group。

destroy_group

销毁集合通信用户自定义group。

get_rank_size

获取group内的rank数量(即Device数量)。

get_local_rank_size

获取group内device所在服务器内的local rank数量。

get_rank_id

获取device在group中对应的rank序号。

get_local_rank_id

获取device在group中对应的local rank序号。

get_world_rank_from_group_rank

根据进程在group中的rank id,获取对应的world rank id。

get_group_rank_from_world_rank

从world rank id,获取该进程在group中的group rank id。

梯度切分

set_split_strategy_by_idx

基于梯度的索引id,在集合通信group内设置反向梯度切分策略,实现allreduce的融合,用于进行集合通信的性能调优。

set_split_strategy_by_size

基于梯度数据量百分比,在集合通信group内设置反向梯度切分策略,实现allreduce的融合,用于进行集合通信的性能调优。

以上接口可以配合TF Adapter提供的集合通信操作接口使用,实现集合通信功能。

相关概念

概念

介绍

group

指参与集合通信的进程组,包括:

  • hccl_world_group:默认的全局group,包含所有参与集合通信的rank,通过rank table文件创建。
  • 自定义group:hccl_world_group包含的进程组的子集,可以通过create_group接口将rank table中的rank定义成不同的group,并行执行集合通信算法。

rank

group中的每个通信实体称为一个rank,每个rank都会分配一个介于0~n-1(n为NPU的数量)的唯一标识。

rank size

  • rank size,指整个group的rank数量。
  • local rank size,指group内进程在其所在Server内的rank数量。

rank id

  • rank id,指进程在group中对应的rank标识序号。范围:0~(rank size-1)。对于用户自定义group,rank在本group内从0开始进行重排;对于hccl_world_group,rank id和world rank id相同。
  • world rank id,指进程在hccl_world_group中对应的rank标识序号,范围:0~(rank size-1)。
  • local rank id,指group内进程在其所在Server内的rank编号,范围:0~(local rank size-1)。