reduce

函数原型

def reduce(tensor, reduction, root_rank, fusion=0, fusion_id=-1, group="hccl_world_group")

功能说明

提供group内的集合通信reduce功能,对所有节点的同名张量进行reduce操作,并将结果输出至root_rank。

参数说明

参数名

输入/输出

描述

tensor

输入

TensorFlow的tensor类型。

针对Atlas 训练系列产品,tensor支持的数据类型为int8, int32, float16, float32。

针对Atlas A2训练系列产品,tensor支持的数据类型为int8, int16, int32, float16, float32。

reduction

输入

String类型。

reduce的op类型,可以为”max”,”min”,”prod”和”sum”。

说明:

针对Atlas A2训练系列产品,当前版本“prod”操作不支持int16数据类型。

root_rank

输入

int类型。

作为root节点的rank_id,该id是group内的rank id。

fusion

输入

int类型。

reduce算子融合标识。

  • 0:不融合,该reduce算子不和其他reduce算子融合。
  • 2:按照相同fusion_id进行融合。

fusion_id

输入

reduce算子的融合id。

对相同fusion_id的reduce算子进行融合。

group

输入

String类型,最大长度为128字节,含结束符。

group名称,可以为用户自定义group或者"hccl_world_group"。

返回值

tensor:对输入tensor执行完reduce操作之后的结果tensor。

调用示例

from npu_bridge.npu_init import *
result = hccl_ops.reduce(tensor, "sum", 0)

约束说明