reduce
功能说明
集合通信算子Reduce的操作接口,将所有rank的数据相加(或其他归约操作)后,再把结果发送到root节点的指定位置上。
函数原型
def reduce(tensor, reduction, root_rank, fusion=0, fusion_id=-1, group="hccl_world_group")
参数说明
参数名 |
输入/输出 |
描述 |
---|---|---|
tensor |
输入 |
TensorFlow的tensor类型。 针对 针对 |
reduction |
输入 |
String类型。 reduce的op类型,可以为max、min、prod和sum。 说明:
针对Atlas A2 训练系列产品,当前版本“prod”操作不支持int16、bfp16数据类型。 |
root_rank |
输入 |
int类型。 作为root节点的rank_id,该id是group内的rank id。 |
fusion |
输入 |
int类型。 reduce算子融合标识,支持以下取值:
|
fusion_id |
输入 |
int类型。 reduce算子的融合id。 当“fusion”取值为“2”时,网络编译时会对相同fusion_id的reduce算子进行融合。 |
group |
输入 |
String类型,最大长度为128字节,含结束符。 group名称,可以为用户自定义group或者"hccl_world_group"。 |
返回值
tensor:对输入tensor执行完reduce操作之后的结果tensor。
约束说明
- 调用该接口的rank必须在当前接口入参group定义的范围内,不在此范围内的rank调用该接口会失败。
- 该接口要求输入tensor的数据量不超过8GB。
- reduce算子融合只支持reduction为sum类型的算子。
支持的型号
调用示例
1 2 3 | from npu_bridge.npu_init import * tensor = tf.random_uniform((1, 3), minval=1, maxval=10, dtype=tf.float32) result = hccl_ops.reduce(tensor, "sum", 0) |