allreduce
函数原型
def allreduce(tensor, reduction, fusion=1, fusion_id=-1, group = "hccl_world_group")
功能说明
提供group内的集合通信allreduce功能,对所有节点的同名张量进行reduce操作。
参数说明
参数名 |
输入/输出 |
描述 |
---|---|---|
tensor |
输入 |
tensorflow的tensor类型。 针对Atlas 训练系列产品,tensor支持的数据类型为int8, int32, float16, float32。 |
reduction |
输入 |
String类型。 reduce的op类型,可以为”max”,”min”,”prod”和”sum”。 |
fusion |
输入 |
int类型。 allreduce算子融合标识。
|
fusion_id |
输入 |
allreduce算子的融合id。 对相同fusion_id的allreduce算子进行融合。 |
group |
输入 |
String类型,最大长度为128字节,含结束符。 group名称,可以为用户自定义group或者"hccl_world_group"。 |
返回值
tensor:对输入tensor执行完allreduce操作之后的结果tensor。
调用示例
from npu_bridge.npu_init import * result = hccl_ops.allreduce(tensor, "sum")
约束说明
- 调用该接口的rank必须在当前接口入参group定义的范围内,不在此范围内的rank调用该接口会失败。
- allreduce上游节点暂不支持variable算子。
- 该接口要求输入tensor的数据量不超过8GB。
- allreduce算子融合只支持reduction为sum类型的算子。