def allreduce(tensor, reduction, fusion=1, fusion_id=-1, group = "hccl_world_group")
集合通信算子AllReduce的操作接口,将group内所有节点的输入数据进行reduce操作后,再把结果发送到所有节点的输出buf,其中reduce操作类型由reduction参数指定。
参数名 |
输入/输出 |
描述 |
---|---|---|
tensor |
输入 |
TensorFlow的tensor类型。 针对Atlas 训练系列产品,tensor支持的数据类型为:int8、int32、int64、float16、float32。 针对Atlas 300I Duo 推理卡,支持的数据类型为:int8、int16、int32、float16、float32。 针对Atlas A2 训练系列产品,tensor支持的数据类型为:int8、int16、int32、int64、float16、float32、bfp16。 |
reduction |
输入 |
String类型。 reduce的op类型,可以为max、min、prod和sum。 说明:
针对Atlas 300I Duo 推理卡,当前版本“prod”、“max”、“min”操作不支持int16数据类型。 针对Atlas A2 训练系列产品,当前版本“prod”操作不支持int16、bfp16数据类型。 |
fusion |
输入 |
int类型。 allreduce算子融合标识。
|
fusion_id |
输入 |
allreduce算子的融合id。 对相同fusion_id的allreduce算子进行融合。 |
group |
输入 |
String类型,最大长度为128字节,含结束符。 group名称,可以为用户自定义group或者"hccl_world_group"。 |
tensor:对输入tensor执行完allreduce操作之后的结果tensor。
Atlas 训练系列产品
Atlas 300I Duo 推理卡
Atlas A2 训练系列产品
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.allreduce(tensor, "sum") |