---
title: npu_allreduce
description: "| 产品 | 是否支持 |"
url: https://www.hiascend.com/document/detail/zh/TensorFlowCommercial/latest/migration/tfmigr1/tfmigr1_tfadapi_0060.html
sourcePath: /source/zh/TensorFlowCommercial/900/migration/tfmigr1/tfmigr1_tfadapi_0060.html
indexId: aebecf002407f6fbcf8e9cf43efd86b223ae1f3f32d794ed0771e386c429d2d779
---
# npu_allreduce

#### 产品支持情况

| 产品 | 是否支持 |
| --- | --- |
| Atlas 350 加速卡 | √ |
| Atlas A3 训练系列产品 / Atlas A3 推理系列产品 | √ |
| Atlas A2 训练系列产品 / Atlas A2 推理系列产品 | √ |
| Atlas 200I/500 A2 推理产品 | ☓ |
| Atlas 推理系列产品 | ☓ |
| Atlas 训练系列产品 | √ |


#### 功能说明

梯度计算完成后，对梯度进行allreduce和梯度更新。


#### 函数原型

```
def _npu_allreduce(values, reduction="mean", fusion=1, fusion_id=-1, group="hccl_world_group")
```


#### 参数说明

| 参数名 | 输入/输出 | 描述 |
| --- | --- | --- |
| values | 输入 | tensor的list或者tensor。 |
| reduction | 输入 | reduce的op类型，可以为“sum”或“mean”。 |
| fusion | 输入 | int类型，算子融合标识。 0：不融合，该allreduce算子不和其他allreduce算子融合。 1（默认值）：按照梯度切分策略进行融合。 2：按照相同fusion\_id进行融合。 |
| fusion\_id | 输入 | 算子融合索引标志，对相同fusion\_id的allreduce算子进行融合。 |
| group | 输入 | String类型，group名称，可以为用户自定义group或者"hccl\_world\_group"。 |


#### 返回值

返回list tensor或者tensor，和输入类型保持一致。


#### 调用示例

```
from npu_bridge.npu_init import *
grads = npu_allreduce(tf.gradients(a + b, [a, b], stop_gradients=[a, b]))
```
