---
title: CumsumOperation
description: "| 硬件型号 | 是否支持 |"
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/API/ascendtb/ascendtb_01_0055.html
sourcePath: /source/zh/canncommercial/900/API/ascendtb/ascendtb_01_0055.html
indexId: fdb6fcff08c36e8b7971b8d3d85c82c1d144aba79d8e4476b4361329e7115c6e64
---
# CumsumOperation

#### 产品支持情况

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


#### 功能说明

返回给定axes上的累计和。

图1 CumsumOperation


输入：

- 数组：cumsum 的输入可以是多维数组。
- 指定轴：可以选择沿着哪个轴（维度）进行累积和操作。默认情况下，对于一维数组，累积和是从第一个元素开始向后计算（默认包含元素本身）；对于多维数组，需要指定沿哪个轴进行累积。

输出：

- 累积和的结果：输出的形状与输入相同，每个元素是该元素以及之前所有元素的和。

#### 计算公式

如果输入是大小为N的一维张量，那么输出也为大小为N的一维张量，其中元素的值为：


#### 定义

```
struct CumsumParam {
    SVector<int64_t> axes;
    bool exclusive = false;
    bool reverse =  false;
    uint8_t rsv[14] = {0};
};
```


#### 参数列表

| 成员名称 | 类型 | 默认值 | 描述 |
| --- | --- | --- | --- |
| axes | SVector<int64\_t> | \- | 指定axis轴（维度）上计算累加和，只能包含一个轴索引。 “axes”的值必须小于输入x的维度数。 |
| exclusive | bool | false | 在某一个轴上的累加结果从第几个元素开始，默认为false。 true：累加结果不包含元素本身（暂不支持）。 false：累加结果包含元素本身。 |
| reverse | bool | false | 正向累加或逆向累加，默认为false。 true：输出逆向累加。（暂不支持） false：输出正向累加。 |
| rsv[14] | uint8\_t | {0} | 预留参数。 |


#### 输入

| 参数 | 维度 | 数据类型 | 格式 | 描述 |
| --- | --- | --- | --- | --- |
| x | [dim\_0, dim\_1, ..., dim\_n] | float16/bf16 | ND | 输入tensor。 |


#### 输出

| 参数 | 维度 | 数据类型 | 格式 | 描述 |
| --- | --- | --- | --- | --- |
| y | [dim\_0, dim\_1, ..., dim\_n] | float16/bf16 | ND | 输出tensor。 |


#### 约束说明

- 参数axes数组大小必须为1。
- 参数reverse必须为false。
- 参数exclusive必须为false。
