文档首页 > > 模型开发> 网络模型移植训练指南> 接口参考> 集合通信接口参考>

接口简介

接口简介

分享
更新时间:2020/11/28 GMT+08:00

高阶接口NPUDistributedOptimizer可以让用户在不需要感知allreduce的情况下自动完成梯度聚合功能,实现数据并行训练方式。同时为了满足用户灵活的使用方式,集合通信提供了常用的rank管理、梯度切分功能、集合通信原型等接口。

表1 接口列表

分类

接口

简介

定义文件

rank管理

create_group

创建集合通信group。

{install_path_fwkacllib}/fwkacllib/python/site-packages/hccl/hccl/manage/api.py

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内设置反向梯度切分策略。

{install_path_fwkacllib}/fwkacllib/python/site-packages/hccl/hccl/split/api.py

set_split_strategy_by_size

基于梯度数据量百分比,在集合通信group内设置反向梯度切分策略。

集合通信原型

allreduce

提供group内的集合通信allreduce功能,对所有节点的同名张量进行约减。

{install_path_tfplugin}/tfplugin/python/site-packages/npu_bridge/hccl/hccl_ops.py

allgather

提供group内的集合通信allgather功能,将所有节点的输入Tensor合并起来。

broadcast

提供group内的集合通信broadcast功能,将root节点的数据广播到其他rank。

reduce_scatter

提供group内的集合通信reducescatter功能。

send

提供group内点对点通信发送数据的send功能。

receive

提供group内点对点通信发送数据的receive功能。

分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!非常感谢您的反馈,我们会继续努力做到更好!
反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区论坛频道来与我们联系探讨

智能客服提问云社区提问