已合并
添加社区任务目录 #3
添加社区任务目录 #3
已合并
fulltower创建于 4月16日
共 133 个文件变更+6360-0
Rofficial/cann-challenge-2025/README.md→01_official/cann-challenge-2025/README.md+0-0
文件重命名但无更改。
Rofficial/cann-challenge-2025/resources/requirements.txt→01_official/cann-challenge-2025/resources/requirements.txt+0-0
文件重命名但无更改。
Rofficial/cann-challenge-2025/submissions/team01_zhangsan_convolution-optimization/README.md→01_official/cann-challenge-2025/submissions/team01_zhangsan_convolution-optimization/README.md+0-0
文件重命名但无更改。
Rofficial/cann-challenge-2025/submissions/team01_zhangsan_convolution-optimization/code/optimized_conv.py→01_official/cann-challenge-2025/submissions/team01_zhangsan_convolution-optimization/code/optimized_conv.py+0-0
文件重命名但无更改。
Renterprise/regional/ai-optimization-contest-2025/README.md→02_enterprise/regional/ai-optimization-contest-2025/README.md+0-0
文件重命名但无更改。
Runiversity/nju/nju-ai-challenge-2025/README.md→03_university/nju/nju-ai-challenge-2025/README.md+0-0
文件重命名但无更改。
Runiversity/nju/nju-ai-challenge-2025/submissions/team01_zhangsan_nlp-application/README.md→03_university/nju/nju-ai-challenge-2025/submissions/team01_zhangsan_nlp-application/README.md+0-0
文件重命名但无更改。
Runiversity/nju/nju-ai-challenge-2025/submissions/team01_zhangsan_nlp-application/code/app.py→03_university/nju/nju-ai-challenge-2025/submissions/team01_zhangsan_nlp-application/code/app.py+0-0
文件重命名但无更改。
Runiversity/seu/seu-hpc-contest-2025/README.md→03_university/seu/seu-hpc-contest-2025/README.md+0-0
文件重命名但无更改。
@@ -0,0 +1,100 @@
1+# CANN 社区任务 2026
2+ 
3+## 任务介绍
4+CANN 社区任务 2026 是由 CANN 开源社区发起的年度算子开发任务,面向所有开源贡献者,旨在推动昇腾 AI 生态建设,鼓励开发者参与算子开发与贡献。
5+ 
6+## 参考链接
7+- **社区任务讨论**:https://gitcode.com/org/cann/discussions/22
8+- **目录结构参考**:https://gitcode.com/cann/ops-math/blob/master/docs/zh/install/dir_structure.md
9+ 
10+## 目录结构
11+```
12+01_community-task-2026/
13+├── README.md # 本文档
14+├── docs/ # 任务书目录
15+│ └── README.md # 任务列表说明
16+├── resources/ # 开发资源
17+└── tasklist/ # 任务列表
18+```
19+ 
20+### 算子任务目录结构
21+每个算子任务由贡献者创建,目录结构如下:
22+```
23+{算子任务编号}-{算子名称}/
24+└── {TeamName}/ # 团队提交目录(实际团队名)
25+ ├── docs/ # 文档目录
26+ │ ├── aclnn{OpName}.md # API接口文档
27+ │ └── design.md # 设计文档
28+ ├── examples/ # 示例代码
29+ ├── op_api/ # API实现
30+ ├── op_host/ # Host端实现
31+ ├── op_kernel/ # Kernel实现
32+ ├── tests/ # 测试用例
33+ ├── CMakeLists.txt # 构建配置
34+ └── README.md # 算子说明
35+```
36+ 
37+## 任务列表
38+参考 `docs/` 目录下的 README.md 文件,选择感兴趣的算子任务认领。
39+ 
40+## 参与方式
41+ 
42+### 1. 认领任务
43+在社区任务讨论区认领感兴趣的算子任务:https://gitcode.com/org/cann/discussions/22
44+ 
45+### 2. 创建提交目录
46+以您的团队名称`TeamName` 为名创建提交目录,目录结构参考[算子仓目录](https://gitcode.com/cann/ops-math/blob/master/docs/zh/install/dir_structure.md)的算子目录部分。
47+ 
48+### 3. 输出设计文档
49+参考[算子设计文档模板](https://gitcode.com/cann/cann-competitions/blob/master/resources/design_template.md),完成算子设计文档。
50+提交设计文档到对应算子目录的 `docs/` 下,文件名为 `design.md`,评审并合入。
51+ 
52+### 4. 开发算子
53+按照目录结构要求开发算子:
54+- `docs/`:API 文档
55+- `examples/`:调用样例
56+- `op_api/`:API 接口实现
57+- `op_host/`:Host 端实现
58+- `op_kernel/`:Kernel 实现
59+- `tests/`:测试用例
60+ 
61+### 4. 提交作品
62+完成开发后,提交 Pull Request 到任务书对应仓。
63+ 
64+## 提交规范
65+ 
66+### 目录结构要求
67+每个算子提交目录必须包含:
68+```
69+YourTeamName/
70+├── docs/
71+│ └── design.md # 设计文档(必选)
72+```
73+如任务完成,目录结构需包含:
74+```
75+YourTeamName/
76+├── docs/
77+│ ├── aclnn{OpName}.md # API接口文档(必选)
78+│ └── design.md # 设计文档(必选)
79+├── examples/ # 调用示例代码(必选)
80+├── op_api/ # API实现(可选)
81+├── op_host/ # Host端实现(必选)
82+├── op_kernel/ # Kernel实现(必选)
83+├── tests/ # 测试用例(可选)
84+├── CMakeLists.txt # 构建配置(必选)
85+└── README.md # 算子说明(必选)
86+```
87+ 
88+### 文档要求
89+- API 文档需包含函数原型、参数说明、返回值、约束限制、示例代码
90+- 设计文档需包含算子功能、设计思路、性能优化方案
91+ 
92+### 代码要求
93+- 遵循 Ascend C 编码规范
94+- 提供完整的测试用例
95+- 确保精度和性能达标
96+ 
97+## 联系方式
98+- **官方邮箱**:community@cann-community.com
99+- **技术支持**:support@cann-community.com
100+- **Issue 反馈**:https://gitcode.com/cann/cann-competitions/issues
@@ -0,0 +1,68 @@
1+# 社区任务书
2+ 
3+本目录包含 CANN 社区任务 2026 的所有任务书文档。
4+ 
5+## 任务分类
6+ 
7+### 2月份发放的任务
8+| 任务编号 | 算子名称 |
9+|----------|----------|
10+| 02-1 | ReduceStdWithMean |
11+| 02-1 | ReduceAll |
12+| 02-1 | ReduceAny |
13+| 02-1 | ReduceLogSumExp |
14+| 02-2 | SoftmaxGrad |
15+| 02-3 | Tile |
16+| 02-4 | AccumulateNv2 |
17+| 02-5 | NanToNum |
18+| 02-6 | Real |
19+| 02-7 | ReduceLogSum |
20+| 02-8 | ReduceMeanWithCount |
21+| 02-9 | ReduceNansum |
22+| 02-10 | ReduceSum |
23+| 02-11 | RsqrtGrad |
24+| 02-12 | TopKV2 |
25+| 02-13 | EluGrad |
26+| 02-14 | GeluGradV2 |
27+| 02-15 | PreluGradUpdate |
28+| 02-16 | ReluGradV2 |
29+| 02-17 | ReluV2 |
30+| 02-18 | Selu |
31+| 02-19 | Softplus |
32+| 02-20 | Softshrink |
33+| 02-21 | ThresholdGradV2D |
34+| 02-22 | IndexFillD |
35+| 02-23 | MseLossGrad |
36+| 02-24 | SoftMarginLossGrad |
37+| 02-25 | SoftMarginLoss |
38+| 02-26 | SyncBatchNormBackwardElemt |
39+| 02-27 | Quantize |
40+ 
41+### 3月份发放的任务
42+| 任务编号 | 算子名称 |
43+|----------|----------|
44+| 03-1 | Roll |
45+| 03-2 | SignBitsPack |
46+| 03-3 | MaskedScatter |
47+| 03-4 | SignBitsUnpack |
48+| 03-5 | Atan2 |
49+| 03-6 | Cross |
50+| 03-7 | DiagPart |
51+| 03-8 | SoftmaxCrossEntropyWithLogits |
52+| 03-9 | AdamApplyOneWithDecayAssign |
53+| 03-10 | AdamApplyOneWithDecay |
54+| 03-11 | ApplyAdamW |
55+| 03-12 | AscendAntiQuantV2 |
56+| 03-13 | BiasAdd |
57+| 03-14 | BnTrainingReduce |
58+| 03-15 | L2Loss |
59+| 03-16 | MaxPool3D |
60+| 03-17 | ScatterAdd |
61+| 03-18 | ScatterNd |
62+| 03-19 | AdamApplyOne |
63+| 03-20 | ApplyAdagradD |
64+| 03-21 | PreluGradReduce |
65+| 03-22 | ReduceStdV2Update |
66+ 
67+## 参考链接
68+社区任务发放页面:https://gitcode.com/org/cann/discussions/22
@@ -0,0 +1,148 @@
1+# 需求背景(required)
2+ 
3+## 需求来源
4+ 
5+## 背景介绍
6+ 
7+### Addcdiv算子实现优化
8+ 
9+基于Addcdiv算子历史TBE版本使用Ascend C编程语言进行优化。
10+ 
11+Addcdiv算子(TBE)实现路径和相关API路径
12+ 
13+Addcdiv算子实现路径为:/usr/local/Ascend/ascend-toolkit/latest/opp/built-in/op_impl/ai_core/tbe/impl
14+ 
15+Addcdiv算子实现中的API路径:/usr/local/Ascend/ascend-toolkit/latest/python/site-packages/tbe/dsl
16+ 
17+### Addcdiv算子TBE实现现状分析
18+ 
19+通过对Addcdiv算子TBE版本的功能分析,当前支持的能力如下:
20+ 
21+| 参数 | 参数含义 | 数据类型 | 支持数据类型 | 约束 | 形状 |
22+| --- | --- | --- | --- | --- | --- |
23+| input_data | 输入tensor | tensor | float16, float32, int32, bfloat16 | 无 | (N,…) |
24+| x1 | 输入tensor | tensor | float16, float32, int32, bfloat16 | 无 | (N,…) |
25+| x2 | 输入tensor | tensor | float16, float32, int32, bfloat16 | 无 | (N,…) |
26+| value | 输入tensor | tensor | float16, float32, int32, bfloat16 | 无 | (N,…) |
27+| output | 输出tensor | tensor | float16, float32, int32, bfloat16 | 无 | (N,…) |
28+ 
29+计算公式:output = input_data + value * x1 / x2
30+ 
31+### Addcdiv算子功能分析
32+ 
33+Addcdiv算子功能:output = input_data + value * x1 / x2
34+ 
35+输入:input_data、x1、x2、value
36+ 
37+输出:output
38+ 
39+支持数据类型:float16、float32、int32、bfloat16
40+ 
41+支持广播:支持
42+ 
43+# 需求分析(required)
44+ 
45+## 需求描述
46+ 
47+使用Ascend C编程语言实现Addcdiv算子,支持float16、float32、int32、bfloat16数据类型,支持广播功能。
48+ 
49+## 需求拆解
50+ 
51+1. 支持float16、float32、int32、bfloat16数据类型
52+1. 支持广播功能
53+1. 性能不低于TBE版本
54+ 
55+# 详细设计(required)
56+ 
57+## 算子分析
58+ 
59+### 数学公式
60+ 
61+output = input_data + value * x1 / x2
62+ 
63+### 支持数据类型
64+ 
65+float16、float32、int32、bfloat16
66+ 
67+### 支持形状
68+ 
69+支持广播
70+ 
71+## 算子实现
72+ 
73+### 实现方案
74+ 
75+#### 3.2.1 host侧设计:
76+ 
77+tiling策略:
78+ 
79+当不需要广播的情况下,算子计算过程不涉及数据的维度信息,故在host侧将数据视为一维向量,仅考虑数据个数,不考虑数据维度信息。
80+ 
81+在广播的情况下,在host侧获取input_data、x1、x2、value等输入的相应shape大小以及各自的维度dim信息,首先,通过函数实现输入的shape维度补全和统一,遍历所有输入对应的维度大小得到其中最大的维度数,维度缺失的输入在首部维度补1实现维度扩充。再根据对应的广播规则,遍历各输入对应的shape,纵向比较求得最大的维度数以此得到最终的广播形状,根据最终广播形状通过指定接口获得total_length。需要将host侧获取的输入形状,最终广播形状以及total_length变量传到kernel侧。
82+ 
83+任务均分:coreNum 根据输入长度和块大小动态调整,确保每个核心处理的数据块数均匀。
84+ 
85+批量搬运:tileBlockNum 和 tileDataNum 计算单次搬运的数据量,通过 finalSmallTileNum 和 finalBigTileNum 确定小核/大核的搬运次数,将多次搬运合并为批量操作,减少冗余开销。尾块的处理逻辑确保不完整块也能被合并到计算流程中,避免数据碎片。
86+ 
87+##### 1. 分核策略:
88+优先使用满核的原则。
89+ 
90+如果核间能均分,可视作无大小核区分,大核小核数据块一致;
91+ 
92+如果核间不能均分,需要将余出的数据块分配到前几个核上。
93+ 
94+输入数据大小计算:通过GetInputShape和GetDataTypeLength函数获取输入数据的大小和类型长度,计算出输入数据的总字节数。
95+ 
96+UB内存大小和核心数量获取:通过平台信息获取UB内存大小和核心数量,并根据这些信息调整核心数量。
97+ 
98+##### 2. 数据分块和内存优化策略:
99+充分使用UB空间的原则。
100+ 
101+需要考虑不同硬件的UB大小不同、是否开启double buffer、kernel侧API实现过程中是否需要临时数据的储存,综合考虑单核内切分的大小。
102+ 
103+UB内存大小获取:通过GetCoreMemSize函数获取UB内存的大小,用于后续的数据切分计算。
104+ 
105+Tile块计算:根据UB内存大小和预定义的BLOCK_SIZE及BUFFER_NUM,计算出每个Tile块的数据数量。
106+ 
107+数据切分:将输入数据按照计算出的Tile块大小进行切分,计算出每个core需要处理的数据块数量和最后一个block的剩余数据量。
108+ 
109+设置切分参数:将计算出的切分参数(如每个core的数据量、Tile块大小等)设置到AddcdivTilingData对象中。
110+ 
111+这些策略确保了数据在多个核心之间的均匀分布,并且在单个核心内进行了合理的切分,以提高并行处理的效率。
112+ 
113+##### 3. tilingkey规划策略:
114+ 
115+需要tilingkey的情况:需要感知host侧信息对kernel侧走不同分支。在host侧获取value输入的大小,如果value为单值tilingkey为0(只对input_data、x1、x2三个输入进行广播),否则tilingkey为1(所有输入均进行广播)。
116+数据检测:
117+ 
118+#### 3.2.2 kernel侧设计:
119+ 
120+进行Init和Process两个阶段,其中Process包括数据搬入(CopyIn)、计算(Compute)、搬出(CopyOut)三个阶段。
121+ 
122+1. 由于支持Ascend C开发的硬件中AscendC::Addcdiv支持float16、float32和int32数据的输入,可以直接将bfloat16的数据都转成float32进行计算,其余数据类型保持原类型计算。
123+2. 在kernel侧的copyin阶段完成广播数据的填充,首先获取host侧存储各个输入shape的一维数组以及按照广播规则获得的最终广播shape,通过特定的函数完成指定数组元素的地址映射。
124+3. 根据不同的tilingkey执行不同的核函数。
125+4. Ascend C的Addcdiv算子流程见下图。
126+ 
127+## 支持硬件
128+ 
129+| 支持的芯片版本 | 涉及勾选 |
130+| --- | --- |
131+| Atlas 800I/T A2 | √ |
132+ 
133+## 算子约束限制
134+ 
135+不支持广播。
136+ 
137+# 可维可测分析
138+ 
139+## 精度标准/性能标准
140+ 
141+| 验收标准 | 描述(不涉及说明原因) | 标准来源 |
142+| --- | --- | --- |
143+| 精度标准 | 不低于TBE版本 | |
144+| 性能标准 | 不低于TBE版本 | |
145+ 
146+## 兼容性分析
147+ 
148+新算子,不涉及兼容性分析
@@ -0,0 +1,43 @@
1+cmake_minimum_required(VERSION 3.16)
2+project(ReduceAll LANGUAGES CXX)
3+ 
4+set(CMAKE_CXX_STANDARD 17)
5+set(CMAKE_CXX_STANDARD_REQUIRED ON)
6+ 
7+# CANN 路径设置
8+if(NOT DEFINED ENV{ASCEND_HOME_DIR})
9+ message(FATAL_ERROR "Please set ASCEND_HOME_DIR environment variable")
10+endif()
11+set(ASCEND_HOME_DIR $ENV{ASCEND_HOME_DIR})
12+ 
13+# 包含目录
14+include_directories(${ASCEND_HOME_DIR}/ascend-toolkit/latest/include)
15+include_directories(${CMAKE_CURRENT_SOURCE_DIR}/op_kernel)
16+include_directories(${CMAKE_CURRENT_SOURCE_DIR}/op_host)
17+ 
18+# 源文件
19+set(OP_API_SOURCES
20+ op_api/aclnn_reduce_all.cpp
21+)
22+ 
23+set(OP_HOST_SOURCES
24+ op_host/reduce_all.cpp
25+)
26+ 
27+# 编译选项
28+add_compile_options(-O2 -Wall -Wextra)
29+ 
30+# 生成算子库
31+add_library(reduce_all SHARED
32+ ${OP_API_SOURCES}
33+ ${OP_HOST_SOURCES}
34+)
35+ 
36+target_link_libraries(reduce_all
37+ ${ASCEND_HOME_DIR}/ascend-toolkit/latest/lib/libascendcl.so
38+)
39+ 
40+# 安装
41+install(TARGETS reduce_all
42+ LIBRARY DESTINATION lib
43+)
@@ -0,0 +1,67 @@
1+# ReduceAll
2+ 
3+## 产品支持情况
4+ 
5+| 产品 | 是否支持 |
6+| ---- | :----:|
7+|Atlas A2 训练系列产品/Atlas A2 推理系列产品|√|
8+ 
9+## 功能说明
10+ 
11+- 算子功能:计算张量在指定维度上所有元素的逻辑与。
12+ 
13+- 计算公式:
14+ 
15+$$
16+y = ReduceAll(x, dim)
17+$$
18+ 
19+## 参数说明
20+ 
21+<table style="undefined;table-layout: fixed; width: 980px"><colgroup>
22+ <col style="width: 100px">
23+ <col style="width: 150px">
24+ <col style="width: 280px">
25+ <col style="width: 330px">
26+ <col style="width: 120px">
27+ </colgroup>
28+ <thead>
29+ <tr>
30+ <th>参数名</th>
31+ <th>输入/输出/属性</th>
32+ <th>描述</th>
33+ <th>数据类型</th>
34+ <th>数据格式</th>
35+ </tr></thead>
36+ <tbody>
37+ <tr>
38+ <td>x</td>
39+ <td>输入</td>
40+ <td>输入tensor。</td>
41+ <td>FLOAT、FLOAT16、BFLOAT16</td>
42+ <td>ND</td>
43+ </tr>
44+ <tr>
45+ <td>y</td>
46+ <td>输出</td>
47+ <td>输出tensor。</td>
48+ <td>FLOAT、FLOAT16、BFLOAT16</td>
49+ <td>ND</td>
50+ </tr>
51+ </tbody></table>
52+ 
53+## 约束说明
54+ 
55+无
56+ 
57+## 调用说明
58+ 
59+| 调用方式 | 调用样例 | 说明 |
60+|--------------|------------------------------------------------------------------------|--------------------------------------------------------------|
61+| aclnn调用 | [test_aclnn_reduce_all.cpp](./examples/test_aclnn_reduce_all.cpp) | 通过[test_aclnn_reduce_all](./docs/aclnnReduceAll.md)接口方式调用ReduceAll算子。 |
62+ 
63+## 贡献说明
64+ 
65+| 贡献者 | 贡献方 | 贡献算子 | 贡献时间 | 贡献内容 |
66+| ---- | ---- | ---- | ---- | ---- |
67+| TeamName | 待填写 | ReduceAll | 待填写 | ReduceAll算子适配开源仓 |
@@ -0,0 +1,43 @@
1+cmake_minimum_required(VERSION 3.16)
2+project(ReduceAll LANGUAGES CXX)
3+ 
4+set(CMAKE_CXX_STANDARD 17)
5+set(CMAKE_CXX_STANDARD_REQUIRED ON)
6+ 
7+# CANN 路径设置
8+if(NOT DEFINED ENV{ASCEND_HOME_DIR})
9+ message(FATAL_ERROR "Please set ASCEND_HOME_DIR environment variable")
10+endif()
11+set(ASCEND_HOME_DIR $ENV{ASCEND_HOME_DIR})
12+ 
13+# 包含目录
14+include_directories(${ASCEND_HOME_DIR}/ascend-toolkit/latest/include)
15+include_directories(${CMAKE_CURRENT_SOURCE_DIR}/op_kernel)
16+include_directories(${CMAKE_CURRENT_SOURCE_DIR}/op_host)
17+ 
18+# 源文件
19+set(OP_API_SOURCES
20+ op_api/aclnn_reduce_all.cpp
21+)
22+ 
23+set(OP_HOST_SOURCES
24+ op_host/reduce_all.cpp
25+)
26+ 
27+# 编译选项
28+add_compile_options(-O2 -Wall -Wextra)
29+ 
30+# 生成算子库
31+add_library(reduce_all SHARED
32+ ${OP_API_SOURCES}
33+ ${OP_HOST_SOURCES}
34+)
35+ 
36+target_link_libraries(reduce_all
37+ ${ASCEND_HOME_DIR}/ascend-toolkit/latest/lib/libascendcl.so
38+)
39+ 
40+# 安装
41+install(TARGETS reduce_all
42+ LIBRARY DESTINATION lib
43+)
@@ -0,0 +1,67 @@
1+# ReduceAll
2+ 
3+## 产品支持情况
4+ 
5+| 产品 | 是否支持 |
6+| ---- | :----:|
7+|Atlas A2 训练系列产品/Atlas A2 推理系列产品|√|
8+ 
9+## 功能说明
10+ 
11+- 算子功能:计算张量在指定维度上所有元素的逻辑与。
12+ 
13+- 计算公式:
14+ 
15+$$
16+y = ReduceAll(x, dim)
17+$$
18+ 
19+## 参数说明
20+ 
21+<table style="undefined;table-layout: fixed; width: 980px"><colgroup>
22+ <col style="width: 100px">
23+ <col style="width: 150px">
24+ <col style="width: 280px">
25+ <col style="width: 330px">
26+ <col style="width: 120px">
27+ </colgroup>
28+ <thead>
29+ <tr>
30+ <th>参数名</th>
31+ <th>输入/输出/属性</th>
32+ <th>描述</th>
33+ <th>数据类型</th>
34+ <th>数据格式</th>
35+ </tr></thead>
36+ <tbody>
37+ <tr>
38+ <td>x</td>
39+ <td>输入</td>
40+ <td>输入tensor。</td>
41+ <td>FLOAT、FLOAT16、BFLOAT16</td>
42+ <td>ND</td>
43+ </tr>
44+ <tr>
45+ <td>y</td>
46+ <td>输出</td>
47+ <td>输出tensor。</td>
48+ <td>FLOAT、FLOAT16、BFLOAT16</td>
49+ <td>ND</td>
50+ </tr>
51+ </tbody></table>
52+ 
53+## 约束说明
54+ 
55+无
56+ 
57+## 调用说明
58+ 
59+| 调用方式 | 调用样例 | 说明 |
60+|--------------|------------------------------------------------------------------------|--------------------------------------------------------------|
61+| aclnn调用 | [test_aclnn_reduce_all.cpp](./examples/test_aclnn_reduce_all.cpp) | 通过[test_aclnn_reduce_all](./docs/aclnnReduceAll.md)接口方式调用ReduceAll算子。 |
62+ 
63+## 贡献说明
64+ 
65+| 贡献者 | 贡献方 | 贡献算子 | 贡献时间 | 贡献内容 |
66+| ---- | ---- | ---- | ---- | ---- |
67+| TeamName | 待填写 | ReduceAll | 待填写 | ReduceAll算子适配开源仓 |
@@ -0,0 +1,43 @@
1+cmake_minimum_required(VERSION 3.16)
2+project(ReduceAny LANGUAGES CXX)
3+ 
4+set(CMAKE_CXX_STANDARD 17)
5+set(CMAKE_CXX_STANDARD_REQUIRED ON)
6+ 
7+# CANN 路径设置
8+if(NOT DEFINED ENV{ASCEND_HOME_DIR})
9+ message(FATAL_ERROR "Please set ASCEND_HOME_DIR environment variable")
10+endif()
11+set(ASCEND_HOME_DIR $ENV{ASCEND_HOME_DIR})
12+ 
13+# 包含目录
14+include_directories(${ASCEND_HOME_DIR}/ascend-toolkit/latest/include)
15+include_directories(${CMAKE_CURRENT_SOURCE_DIR}/op_kernel)
16+include_directories(${CMAKE_CURRENT_SOURCE_DIR}/op_host)
17+ 
18+# 源文件
19+set(OP_API_SOURCES
20+ op_api/aclnn_reduce_any.cpp
21+)
22+ 
23+set(OP_HOST_SOURCES
24+ op_host/reduce_any.cpp
25+)
26+ 
27+# 编译选项
28+add_compile_options(-O2 -Wall -Wextra)
29+ 
30+# 生成算子库
31+add_library(reduce_any SHARED
32+ ${OP_API_SOURCES}
33+ ${OP_HOST_SOURCES}
34+)
35+ 
36+target_link_libraries(reduce_any
37+ ${ASCEND_HOME_DIR}/ascend-toolkit/latest/lib/libascendcl.so
38+)
39+ 
40+# 安装
41+install(TARGETS reduce_any
42+ LIBRARY DESTINATION lib
43+)
@@ -0,0 +1,67 @@
1+# ReduceAny
2+ 
3+## 产品支持情况
4+ 
5+| 产品 | 是否支持 |
6+| ---- | :----:|
7+|Atlas A2 训练系列产品/Atlas A2 推理系列产品|√|
8+ 
9+## 功能说明
10+ 
11+- 算子功能:计算张量在指定维度上所有元素的逻辑或。
12+ 
13+- 计算公式:
14+ 
15+$$
16+y = ReduceAny(x, dim)
17+$$
18+ 
19+## 参数说明
20+ 
21+<table style="undefined;table-layout: fixed; width: 980px"><colgroup>
22+ <col style="width: 100px">
23+ <col style="width: 150px">
24+ <col style="width: 280px">
25+ <col style="width: 330px">
26+ <col style="width: 120px">
27+ </colgroup>
28+ <thead>
29+ <tr>
30+ <th>参数名</th>
31+ <th>输入/输出/属性</th>
32+ <th>描述</th>
33+ <th>数据类型</th>
34+ <th>数据格式</th>
35+ </tr></thead>
36+ <tbody>
37+ <tr>
38+ <td>x</td>
39+ <td>输入</td>
40+ <td>输入tensor。</td>
41+ <td>FLOAT、FLOAT16、BFLOAT16</td>
42+ <td>ND</td>
43+ </tr>
44+ <tr>
45+ <td>y</td>
46+ <td>输出</td>
47+ <td>输出tensor。</td>
48+ <td>FLOAT、FLOAT16、BFLOAT16</td>
49+ <td>ND</td>
50+ </tr>
51+ </tbody></table>
52+ 
53+## 约束说明
54+ 
55+无
56+ 
57+## 调用说明
58+ 
59+| 调用方式 | 调用样例 | 说明 |
60+|--------------|------------------------------------------------------------------------|--------------------------------------------------------------|
61+| aclnn调用 | [test_aclnn_reduce_any.cpp](./examples/test_aclnn_reduce_any.cpp) | 通过[test_aclnn_reduce_any](./docs/aclnnReduceAny.md)接口方式调用ReduceAny算子。 |
62+ 
63+## 贡献说明
64+ 
65+| 贡献者 | 贡献方 | 贡献算子 | 贡献时间 | 贡献内容 |
66+| ---- | ---- | ---- | ---- | ---- |
67+| TeamName | 待填写 | ReduceAny | 待填写 | ReduceAny算子适配开源仓 |
@@ -0,0 +1,43 @@
1+cmake_minimum_required(VERSION 3.16)
2+project(ReduceLogSumExp LANGUAGES CXX)
3+ 
4+set(CMAKE_CXX_STANDARD 17)
5+set(CMAKE_CXX_STANDARD_REQUIRED ON)
6+ 
7+# CANN 路径设置
8+if(NOT DEFINED ENV{ASCEND_HOME_DIR})
9+ message(FATAL_ERROR "Please set ASCEND_HOME_DIR environment variable")
10+endif()
11+set(ASCEND_HOME_DIR $ENV{ASCEND_HOME_DIR})
12+ 
13+# 包含目录
14+include_directories(${ASCEND_HOME_DIR}/ascend-toolkit/latest/include)
15+include_directories(${CMAKE_CURRENT_SOURCE_DIR}/op_kernel)
16+include_directories(${CMAKE_CURRENT_SOURCE_DIR}/op_host)
17+ 
18+# 源文件
19+set(OP_API_SOURCES
20+ op_api/aclnn_reduce_log_sum_exp.cpp
21+)
22+ 
23+set(OP_HOST_SOURCES
24+ op_host/reduce_log_sum_exp.cpp
25+)
26+ 
27+# 编译选项
28+add_compile_options(-O2 -Wall -Wextra)
29+ 
30+# 生成算子库
31+add_library(reduce_log_sum_exp SHARED
32+ ${OP_API_SOURCES}
33+ ${OP_HOST_SOURCES}
34+)
35+ 
36+target_link_libraries(reduce_log_sum_exp
37+ ${ASCEND_HOME_DIR}/ascend-toolkit/latest/lib/libascendcl.so
38+)
39+ 
40+# 安装
41+install(TARGETS reduce_log_sum_exp
42+ LIBRARY DESTINATION lib
43+)
@@ -0,0 +1,67 @@
1+# ReduceLogSumExp
2+ 
3+## 产品支持情况
4+ 
5+| 产品 | 是否支持 |
6+| ---- | :----:|
7+|Atlas A2 训练系列产品/Atlas A2 推理系列产品|√|
8+ 
9+## 功能说明
10+ 
11+- 算子功能:计算张量在指定维度上的log(sum(exp(x)))。
12+ 
13+- 计算公式:
14+ 
15+$$
16+y = log(sum(exp(x)))
17+$$
18+ 
19+## 参数说明
20+ 
21+<table style="undefined;table-layout: fixed; width: 980px"><colgroup>
22+ <col style="width: 100px">
23+ <col style="width: 150px">
24+ <col style="width: 280px">
25+ <col style="width: 330px">
26+ <col style="width: 120px">
27+ </colgroup>
28+ <thead>
29+ <tr>
30+ <th>参数名</th>
31+ <th>输入/输出/属性</th>
32+ <th>描述</th>
33+ <th>数据类型</th>
34+ <th>数据格式</th>
35+ </tr></thead>
36+ <tbody>
37+ <tr>
38+ <td>x</td>
39+ <td>输入</td>
40+ <td>输入tensor。</td>
41+ <td>FLOAT、FLOAT16、BFLOAT16</td>
42+ <td>ND</td>
43+ </tr>
44+ <tr>
45+ <td>y</td>
46+ <td>输出</td>
47+ <td>输出tensor。</td>
48+ <td>FLOAT、FLOAT16、BFLOAT16</td>
49+ <td>ND</td>
50+ </tr>
51+ </tbody></table>
52+ 
53+## 约束说明
54+ 
55+无
56+ 
57+## 调用说明
58+ 
59+| 调用方式 | 调用样例 | 说明 |
60+|--------------|------------------------------------------------------------------------|--------------------------------------------------------------|
61+| aclnn调用 | [test_aclnn_reduce_log_sum_exp.cpp](./examples/test_aclnn_reduce_log_sum_exp.cpp) | 通过[test_aclnn_reduce_log_sum_exp](./docs/aclnnReduceLogSumExp.md)接口方式调用ReduceLogSumExp算子。 |
62+ 
63+## 贡献说明
64+ 
65+| 贡献者 | 贡献方 | 贡献算子 | 贡献时间 | 贡献内容 |
66+| ---- | ---- | ---- | ---- | ---- |
67+| TeamName | 待填写 | ReduceLogSumExp | 待填写 | ReduceLogSumExp算子适配开源仓 |
@@ -0,0 +1,43 @@
1+cmake_minimum_required(VERSION 3.16)
2+project(ReduceStdWithMean LANGUAGES CXX)
3+ 
4+set(CMAKE_CXX_STANDARD 17)
5+set(CMAKE_CXX_STANDARD_REQUIRED ON)
6+ 
7+# CANN 路径设置
8+if(NOT DEFINED ENV{ASCEND_HOME_DIR})
9+ message(FATAL_ERROR "Please set ASCEND_HOME_DIR environment variable")
10+endif()
11+set(ASCEND_HOME_DIR $ENV{ASCEND_HOME_DIR})
12+ 
13+# 包含目录
14+include_directories(${ASCEND_HOME_DIR}/ascend-toolkit/latest/include)
15+include_directories(${CMAKE_CURRENT_SOURCE_DIR}/op_kernel)
16+include_directories(${CMAKE_CURRENT_SOURCE_DIR}/op_host)
17+ 
18+# 源文件
19+set(OP_API_SOURCES
20+ op_api/aclnn_reduce_std_with_mean.cpp
21+)
22+ 
23+set(OP_HOST_SOURCES
24+ op_host/reduce_std_with_mean.cpp
25+)
26+ 
27+# 编译选项
28+add_compile_options(-O2 -Wall -Wextra)
29+ 
30+# 生成算子库
31+add_library(reduce_std_with_mean SHARED
32+ ${OP_API_SOURCES}
33+ ${OP_HOST_SOURCES}
34+)
35+ 
36+target_link_libraries(reduce_std_with_mean
37+ ${ASCEND_HOME_DIR}/ascend-toolkit/latest/lib/libascendcl.so
38+)
39+ 
40+# 安装
41+install(TARGETS reduce_std_with_mean
42+ LIBRARY DESTINATION lib
43+)
@@ -0,0 +1,67 @@
1+# ReduceStdWithMean
2+ 
3+## 产品支持情况
4+ 
5+| 产品 | 是否支持 |
6+| ---- | :----:|
7+|Atlas A2 训练系列产品/Atlas A2 推理系列产品|√|
8+ 
9+## 功能说明
10+ 
11+- 算子功能:计算张量在指定维度上的标准差和均值。
12+ 
13+- 计算公式:
14+ 
15+$$
16+std, mean = ReduceStdWithMean(x, dim)
17+$$
18+ 
19+## 参数说明
20+ 
21+<table style="undefined;table-layout: fixed; width: 980px"><colgroup>
22+ <col style="width: 100px">
23+ <col style="width: 150px">
24+ <col style="width: 280px">
25+ <col style="width: 330px">
26+ <col style="width: 120px">
27+ </colgroup>
28+ <thead>
29+ <tr>
30+ <th>参数名</th>
31+ <th>输入/输出/属性</th>
32+ <th>描述</th>
33+ <th>数据类型</th>
34+ <th>数据格式</th>
35+ </tr></thead>
36+ <tbody>
37+ <tr>
38+ <td>x</td>
39+ <td>输入</td>
40+ <td>输入tensor。</td>
41+ <td>FLOAT、FLOAT16、BFLOAT16</td>
42+ <td>ND</td>
43+ </tr>
44+ <tr>
45+ <td>y</td>
46+ <td>输出</td>
47+ <td>输出tensor。</td>
48+ <td>FLOAT、FLOAT16、BFLOAT16</td>
49+ <td>ND</td>
50+ </tr>
51+ </tbody></table>
52+ 
53+## 约束说明
54+ 
55+无
56+ 
57+## 调用说明
58+ 
59+| 调用方式 | 调用样例 | 说明 |
60+|--------------|------------------------------------------------------------------------|--------------------------------------------------------------|
61+| aclnn调用 | [test_aclnn_reduce_std_with_mean.cpp](./examples/test_aclnn_reduce_std_with_mean.cpp) | 通过[test_aclnn_reduce_std_with_mean](./docs/aclnnReduceStdWithMean.md)接口方式调用ReduceStdWithMean算子。 |
62+ 
63+## 贡献说明
64+ 
65+| 贡献者 | 贡献方 | 贡献算子 | 贡献时间 | 贡献内容 |
66+| ---- | ---- | ---- | ---- | ---- |
67+| TeamName | 待填写 | ReduceStdWithMean | 待填写 | ReduceStdWithMean算子适配开源仓 |
@@ -0,0 +1,82 @@
1+# aclnnReduceStdWithMean API 文档
2+ 
3+## 功能描述
4+计算输入张量在指定维度上的标准差和均值。
5+ 
6+## 函数原型
7+```cpp
8+aclnnStatus aclnnReduceStdWithMean(
9+ aclTensor* self,
10+ int64_t dim,
11+ bool unbiased,
12+ bool keepdim,
13+ aclTensor* std_out,
14+ aclTensor* mean_out,
15+ uint64_t* workspaceSize,
16+ aclOpExecutor** executor);
17+```
18+ 
19+## 参数说明
20+ 
21+| 参数名 | 类型 | 说明 |
22+|--------|------|------|
23+| self | aclTensor* | 输入张量 |
24+| dim | int64_t | 计算标准差的维度 |
25+| unbiased | bool | 是否使用无偏估计 |
26+| keepdim | bool | 是否保留缩减维度 |
27+| std_out | aclTensor* | 输出标准差张量 |
28+| mean_out | aclTensor* | 输出均值张量 |
29+| workspaceSize | uint64_t* | 工作空间大小 |
30+| executor | aclOpExecutor** | 算子执行器 |
31+ 
32+## 返回值
33+- `ACLNN_SUCCESS`:执行成功
34+- 其他错误码:执行失败
35+ 
36+## 支持的数据类型
37+- ACL_FLOAT
38+- ACL_FLOAT16
39+- ACL_DOUBLE
40+ 
41+## 约束条件
42+1. 输入张量维度必须大于0
43+2. dim 必须在有效范围内 [-rank, rank-1]
44+3. 输出张量形状必须与计算结果形状匹配
45+ 
46+## 示例代码
47+```cpp
48+#include "acl/acl.h"
49+#include "aclnnop/aclnn_reduce_std_with_mean.h"
50+ 
51+// 创建输入张量
52+std::vector<int64_t> selfShape = {3, 4};
53+aclTensor* self = nullptr;
54+// ... 创建张量代码
55+ 
56+// 创建输出张量
57+std::vector<int64_t> outShape = {3}; // keepdim=false
58+aclTensor* stdOut = nullptr;
59+aclTensor* meanOut = nullptr;
60+// ... 创建张量代码
61+ 
62+// 计算工作空间大小
63+uint64_t workspaceSize = 0;
64+aclOpExecutor* executor = nullptr;
65+aclnnStatus ret = aclnnReduceStdWithMeanGetWorkspaceSize(
66+ self, 1, true, false, stdOut, meanOut, &workspaceSize, &executor);
67+ 
68+// 执行算子
69+void* workspace = nullptr;
70+if (workspaceSize > 0) {
71+ workspace = aclrtMalloc(workspaceSize, ACL_MEM_MALLOC_HUGE_FIRST);
72+}
73+ret = aclnnReduceStdWithMean(workspace, workspaceSize, executor, stream);
74+```
75+ 
76+## 性能说明
77+- 算子针对昇腾 AI Core 进行了优化
78+- 支持多核并行计算
79+- 内存访问模式优化
80+ 
81+## 版本支持
82+- CANN 8.0 及以上版本
@@ -0,0 +1,117 @@
1+# ReduceStdWithMean 算子设计文档
2+ 
3+## 1. 算子功能
4+ReduceStdWithMean 算子用于计算输入张量在指定维度上的标准差和均值,返回两个输出张量。
5+ 
6+### 数学公式
7+给定输入张量 $x$,在维度 $d$ 上计算:
8+ 
9+**均值**:
10+$$\mu = \frac{1}{N} \sum_{i=1}^{N} x_i$$
11+ 
12+**标准差**:
13+$$\sigma = \sqrt{\frac{1}{N} \sum_{i=1}^{N} (x_i - \mu)^2}$$
14+ 
15+当 `unbiased=true` 时,使用无偏估计:
16+$$\sigma = \sqrt{\frac{1}{N-1} \sum_{i=1}^{N} (x_i - \mu)^2}$$
17+ 
18+## 2. 算子设计
19+ 
20+### 2.1 整体架构
21+```
22+┌─────────────────────────────────────────────────────────┐
23+│ Host 端 │
24+│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
25+│ │ 参数校验 │ -> │ 形状推导 │ -> │ Tiling策略 │ │
26+│ └─────────────┘ └─────────────┘ └─────────────┘ │
27+└─────────────────────────────────────────────────────────┘
28+ │
29+ ▼
30+┌─────────────────────────────────────────────────────────┐
31+│ Device 端 (AI Core) │
32+│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
33+│ │ 数据搬运 │ -> │ 并行计算 │ -> │ 结果写回 │ │
34+│ └─────────────┘ └─────────────┘ └─────────────┘ │
35+└─────────────────────────────────────────────────────────┘
36+```
37+ 
38+### 2.2 Tiling 策略
39+根据输入张量的形状和数据量,选择不同的 Tiling 策略:
40+ 
41+| 场景 | Tiling 策略 | 说明 |
42+|------|-------------|------|
43+| 小数据量 | 单核处理 | 数据量小于 UB 容量 |
44+| 中等数据量 | 多核均分 | 按维度均分到各核 |
45+| 大数据量 | 流水处理 | 分批次处理数据 |
46+ 
47+### 2.3 内存管理
48+- **Unified Buffer (UB)**:存储中间计算结果
49+- **Global Memory**:存储输入输出张量
50+- **临时内存**:存储部分和结果
51+ 
52+## 3. 算子实现
53+ 
54+### 3.1 Host 端实现
55+```cpp
56+// 参数校验
57+int CheckParams(const aclTensor* self, int64_t dim,
58+ const aclTensor* stdOut, const aclTensor* meanOut);
59+ 
60+// 形状推导
61+void InferShape(const std::vector<int64_t>& inShape,
62+ int64_t dim, bool keepdim,
63+ std::vector<int64_t>& outShape);
64+ 
65+// Tiling 策略选择
66+TilingData SelectTilingStrategy(const aclTensor* self, int64_t dim);
67+```
68+ 
69+### 3.2 Kernel 端实现
70+```cpp
71+// 核函数
72+__global__ void ReduceStdWithMeanKernel(
73+ GM_ADDR x, GM_ADDR std_out, GM_ADDR mean_out,
74+ TilingData tiling);
75+ 
76+// 计算逻辑
77+void ComputeReduceStdWithMean(
78+ LocalTensor<float>& xLocal,
79+ LocalTensor<float>& stdLocal,
80+ LocalTensor<float>& meanLocal,
81+ const TilingData& tiling);
82+```
83+ 
84+## 4. 性能优化
85+ 
86+### 4.1 向量化计算
87+- 使用 Ascend C 内置向量指令
88+- 充分利用 AI Core 计算能力
89+ 
90+### 4.2 内存优化
91+- 减少内存搬运次数
92+- 优化数据布局
93+- 复用 UB 空间
94+ 
95+### 4.3 并行优化
96+- 多核并行计算
97+- 计算与搬运流水
98+ 
99+## 5. 测试方案
100+ 
101+### 5.1 功能测试
102+- 不同维度测试
103+- 不同数据类型测试
104+- 边界条件测试
105+ 
106+### 5.2 精度测试
107+- 与 CPU 参考实现对比
108+- 相对误差 < 1e-5
109+ 
110+### 5.3 性能测试
111+- 不同数据规模性能
112+- 与基准实现对比
113+ 
114+## 6. 约束与限制
115+- 最大支持 8 维张量
116+- 单次计算数据量不超过 2GB
117+- 仅支持连续内存张量
@@ -0,0 +1,43 @@
1+cmake_minimum_required(VERSION 3.16)
2+project(ReduceSum LANGUAGES CXX)
3+ 
4+set(CMAKE_CXX_STANDARD 17)
5+set(CMAKE_CXX_STANDARD_REQUIRED ON)
6+ 
7+# CANN 路径设置
8+if(NOT DEFINED ENV{ASCEND_HOME_DIR})
9+ message(FATAL_ERROR "Please set ASCEND_HOME_DIR environment variable")
10+endif()
11+set(ASCEND_HOME_DIR $ENV{ASCEND_HOME_DIR})
12+ 
13+# 包含目录
14+include_directories(${ASCEND_HOME_DIR}/ascend-toolkit/latest/include)
15+include_directories(${CMAKE_CURRENT_SOURCE_DIR}/op_kernel)
16+include_directories(${CMAKE_CURRENT_SOURCE_DIR}/op_host)
17+ 
18+# 源文件
19+set(OP_API_SOURCES
20+ op_api/aclnn_reduce_sum.cpp
21+)
22+ 
23+set(OP_HOST_SOURCES
24+ op_host/reduce_sum.cpp
25+)
26+ 
27+# 编译选项
28+add_compile_options(-O2 -Wall -Wextra)
29+ 
30+# 生成算子库
31+add_library(reduce_sum SHARED
32+ ${OP_API_SOURCES}
33+ ${OP_HOST_SOURCES}
34+)
35+ 
36+target_link_libraries(reduce_sum
37+ ${ASCEND_HOME_DIR}/ascend-toolkit/latest/lib/libascendcl.so
38+)
39+ 
40+# 安装
41+install(TARGETS reduce_sum
42+ LIBRARY DESTINATION lib
43+)
@@ -0,0 +1,67 @@
1+# ReduceSum
2+ 
3+## 产品支持情况
4+ 
5+| 产品 | 是否支持 |
6+| ---- | :----:|
7+|Atlas A2 训练系列产品/Atlas A2 推理系列产品|√|
8+ 
9+## 功能说明
10+ 
11+- 算子功能:张量求和归约操作。
12+ 
13+- 计算公式:
14+ 
15+$$
16+y = ReduceSum(x, dim)
17+$$
18+ 
19+## 参数说明
20+ 
21+<table style="undefined;table-layout: fixed; width: 980px"><colgroup>
22+ <col style="width: 100px">
23+ <col style="width: 150px">
24+ <col style="width: 280px">
25+ <col style="width: 330px">
26+ <col style="width: 120px">
27+ </colgroup>
28+ <thead>
29+ <tr>
30+ <th>参数名</th>
31+ <th>输入/输出/属性</th>
32+ <th>描述</th>
33+ <th>数据类型</th>
34+ <th>数据格式</th>
35+ </tr></thead>
36+ <tbody>
37+ <tr>
38+ <td>x</td>
39+ <td>输入</td>
40+ <td>输入tensor。</td>
41+ <td>FLOAT、FLOAT16、BFLOAT16</td>
42+ <td>ND</td>
43+ </tr>
44+ <tr>
45+ <td>y</td>
46+ <td>输出</td>
47+ <td>输出tensor。</td>
48+ <td>FLOAT、FLOAT16、BFLOAT16</td>
49+ <td>ND</td>
50+ </tr>
51+ </tbody></table>
52+ 
53+## 约束说明
54+ 
55+无
56+ 
57+## 调用说明
58+ 
59+| 调用方式 | 调用样例 | 说明 |
60+|--------------|------------------------------------------------------------------------|--------------------------------------------------------------|
61+| aclnn调用 | [test_aclnn_reduce_sum.cpp](./examples/test_aclnn_reduce_sum.cpp) | 通过[test_aclnn_reduce_sum](./docs/aclnnReduceSum.md)接口方式调用ReduceSum算子。 |
62+ 
63+## 贡献说明
64+ 
65+| 贡献者 | 贡献方 | 贡献算子 | 贡献时间 | 贡献内容 |
66+| ---- | ---- | ---- | ---- | ---- |
67+| TeamName | 待填写 | ReduceSum | 待填写 | ReduceSum算子适配开源仓 |
@@ -0,0 +1,43 @@
1+cmake_minimum_required(VERSION 3.16)
2+project(RsqrtGrad LANGUAGES CXX)
3+ 
4+set(CMAKE_CXX_STANDARD 17)
5+set(CMAKE_CXX_STANDARD_REQUIRED ON)
6+ 
7+# CANN 路径设置
8+if(NOT DEFINED ENV{ASCEND_HOME_DIR})
9+ message(FATAL_ERROR "Please set ASCEND_HOME_DIR environment variable")
10+endif()
11+set(ASCEND_HOME_DIR $ENV{ASCEND_HOME_DIR})
12+ 
13+# 包含目录
14+include_directories(${ASCEND_HOME_DIR}/ascend-toolkit/latest/include)
15+include_directories(${CMAKE_CURRENT_SOURCE_DIR}/op_kernel)
16+include_directories(${CMAKE_CURRENT_SOURCE_DIR}/op_host)
17+ 
18+# 源文件
19+set(OP_API_SOURCES
20+ op_api/aclnn_rsqrt_grad.cpp
21+)
22+ 
23+set(OP_HOST_SOURCES
24+ op_host/rsqrt_grad.cpp
25+)
26+ 
27+# 编译选项
28+add_compile_options(-O2 -Wall -Wextra)
29+ 
30+# 生成算子库
31+add_library(rsqrt_grad SHARED
32+ ${OP_API_SOURCES}
33+ ${OP_HOST_SOURCES}
34+)
35+ 
36+target_link_libraries(rsqrt_grad
37+ ${ASCEND_HOME_DIR}/ascend-toolkit/latest/lib/libascendcl.so
38+)
39+ 
40+# 安装
41+install(TARGETS rsqrt_grad
42+ LIBRARY DESTINATION lib
43+)
@@ -0,0 +1,67 @@
1+# RsqrtGrad
2+ 
3+## 产品支持情况
4+ 
5+| 产品 | 是否支持 |
6+| ---- | :----:|
7+|Atlas A2 训练系列产品/Atlas A2 推理系列产品|√|
8+ 
9+## 功能说明
10+ 
11+- 算子功能:Rsqrt函数的梯度计算。
12+ 
13+- 计算公式:
14+ 
15+$$
16+grad = RsqrtGrad(y, grad_output)
17+$$
18+ 
19+## 参数说明
20+ 
21+<table style="undefined;table-layout: fixed; width: 980px"><colgroup>
22+ <col style="width: 100px">
23+ <col style="width: 150px">
24+ <col style="width: 280px">
25+ <col style="width: 330px">
26+ <col style="width: 120px">
27+ </colgroup>
28+ <thead>
29+ <tr>
30+ <th>参数名</th>
31+ <th>输入/输出/属性</th>
32+ <th>描述</th>
33+ <th>数据类型</th>
34+ <th>数据格式</th>
35+ </tr></thead>
36+ <tbody>
37+ <tr>
38+ <td>x</td>
39+ <td>输入</td>
40+ <td>输入tensor。</td>
41+ <td>FLOAT、FLOAT16、BFLOAT16</td>
42+ <td>ND</td>
43+ </tr>
44+ <tr>
45+ <td>y</td>
46+ <td>输出</td>
47+ <td>输出tensor。</td>
48+ <td>FLOAT、FLOAT16、BFLOAT16</td>
49+ <td>ND</td>
50+ </tr>
51+ </tbody></table>
52+ 
53+## 约束说明
54+ 
55+无
56+ 
57+## 调用说明
58+ 
59+| 调用方式 | 调用样例 | 说明 |
60+|--------------|------------------------------------------------------------------------|--------------------------------------------------------------|
61+| aclnn调用 | [test_aclnn_rsqrt_grad.cpp](./examples/test_aclnn_rsqrt_grad.cpp) | 通过[test_aclnn_rsqrt_grad](./docs/aclnnRsqrtGrad.md)接口方式调用RsqrtGrad算子。 |
62+ 
63+## 贡献说明
64+ 
65+| 贡献者 | 贡献方 | 贡献算子 | 贡献时间 | 贡献内容 |
66+| ---- | ---- | ---- | ---- | ---- |
67+| TeamName | 待填写 | RsqrtGrad | 待填写 | RsqrtGrad算子适配开源仓 |
@@ -0,0 +1,43 @@
1+cmake_minimum_required(VERSION 3.16)
2+project(TopKV2 LANGUAGES CXX)
3+ 
4+set(CMAKE_CXX_STANDARD 17)
5+set(CMAKE_CXX_STANDARD_REQUIRED ON)
6+ 
7+# CANN 路径设置
8+if(NOT DEFINED ENV{ASCEND_HOME_DIR})
9+ message(FATAL_ERROR "Please set ASCEND_HOME_DIR environment variable")
10+endif()
11+set(ASCEND_HOME_DIR $ENV{ASCEND_HOME_DIR})
12+ 
13+# 包含目录
14+include_directories(${ASCEND_HOME_DIR}/ascend-toolkit/latest/include)
15+include_directories(${CMAKE_CURRENT_SOURCE_DIR}/op_kernel)
16+include_directories(${CMAKE_CURRENT_SOURCE_DIR}/op_host)
17+ 
18+# 源文件
19+set(OP_API_SOURCES
20+ op_api/aclnn_top_k_v2.cpp
21+)
22+ 
23+set(OP_HOST_SOURCES
24+ op_host/top_k_v2.cpp
25+)
26+ 
27+# 编译选项
28+add_compile_options(-O2 -Wall -Wextra)
29+ 
30+# 生成算子库
31+add_library(top_k_v2 SHARED
32+ ${OP_API_SOURCES}
33+ ${OP_HOST_SOURCES}
34+)
35+ 
36+target_link_libraries(top_k_v2
37+ ${ASCEND_HOME_DIR}/ascend-toolkit/latest/lib/libascendcl.so
38+)
39+ 
40+# 安装
41+install(TARGETS top_k_v2
42+ LIBRARY DESTINATION lib
43+)
@@ -0,0 +1,67 @@
1+# TopKV2
2+ 
3+## 产品支持情况
4+ 
5+| 产品 | 是否支持 |
6+| ---- | :----:|
7+|Atlas A2 训练系列产品/Atlas A2 推理系列产品|√|
8+ 
9+## 功能说明
10+ 
11+- 算子功能:获取张量前K个最大值及其索引。
12+ 
13+- 计算公式:
14+ 
15+$$
16+values, indices = TopKV2(x, k, dim)
17+$$
18+ 
19+## 参数说明
20+ 
21+<table style="undefined;table-layout: fixed; width: 980px"><colgroup>
22+ <col style="width: 100px">
23+ <col style="width: 150px">
24+ <col style="width: 280px">
25+ <col style="width: 330px">
26+ <col style="width: 120px">
27+ </colgroup>
28+ <thead>
29+ <tr>
30+ <th>参数名</th>
31+ <th>输入/输出/属性</th>
32+ <th>描述</th>
33+ <th>数据类型</th>
34+ <th>数据格式</th>
35+ </tr></thead>
36+ <tbody>
37+ <tr>
38+ <td>x</td>
39+ <td>输入</td>
40+ <td>输入tensor。</td>
41+ <td>FLOAT、FLOAT16、BFLOAT16</td>
42+ <td>ND</td>
43+ </tr>
44+ <tr>
45+ <td>y</td>
46+ <td>输出</td>
47+ <td>输出tensor。</td>
48+ <td>FLOAT、FLOAT16、BFLOAT16</td>
49+ <td>ND</td>
50+ </tr>
51+ </tbody></table>
52+ 
53+## 约束说明
54+ 
55+无
56+ 
57+## 调用说明
58+ 
59+| 调用方式 | 调用样例 | 说明 |
60+|--------------|------------------------------------------------------------------------|--------------------------------------------------------------|
61+| aclnn调用 | [test_aclnn_top_k_v2.cpp](./examples/test_aclnn_top_k_v2.cpp) | 通过[test_aclnn_top_k_v2](./docs/aclnnTopKV2.md)接口方式调用TopKV2算子。 |
62+ 
63+## 贡献说明
64+ 
65+| 贡献者 | 贡献方 | 贡献算子 | 贡献时间 | 贡献内容 |
66+| ---- | ---- | ---- | ---- | ---- |
67+| TeamName | 待填写 | TopKV2 | 待填写 | TopKV2算子适配开源仓 |
@@ -0,0 +1,43 @@
1+cmake_minimum_required(VERSION 3.16)
2+project(EluGrad LANGUAGES CXX)
3+ 
4+set(CMAKE_CXX_STANDARD 17)
5+set(CMAKE_CXX_STANDARD_REQUIRED ON)
6+ 
7+# CANN 路径设置
8+if(NOT DEFINED ENV{ASCEND_HOME_DIR})
9+ message(FATAL_ERROR "Please set ASCEND_HOME_DIR environment variable")
10+endif()
11+set(ASCEND_HOME_DIR $ENV{ASCEND_HOME_DIR})
12+ 
13+# 包含目录
14+include_directories(${ASCEND_HOME_DIR}/ascend-toolkit/latest/include)
15+include_directories(${CMAKE_CURRENT_SOURCE_DIR}/op_kernel)
16+include_directories(${CMAKE_CURRENT_SOURCE_DIR}/op_host)
17+ 
18+# 源文件
19+set(OP_API_SOURCES
20+ op_api/aclnn_elu_grad.cpp
21+)
22+ 
23+set(OP_HOST_SOURCES
24+ op_host/elu_grad.cpp
25+)
26+ 
27+# 编译选项
28+add_compile_options(-O2 -Wall -Wextra)
29+ 
30+# 生成算子库
31+add_library(elu_grad SHARED
32+ ${OP_API_SOURCES}
33+ ${OP_HOST_SOURCES}
34+)
35+ 
36+target_link_libraries(elu_grad
37+ ${ASCEND_HOME_DIR}/ascend-toolkit/latest/lib/libascendcl.so
38+)
39+ 
40+# 安装
41+install(TARGETS elu_grad
42+ LIBRARY DESTINATION lib
43+)
@@ -0,0 +1,67 @@
1+# EluGrad
2+ 
3+## 产品支持情况
4+ 
5+| 产品 | 是否支持 |
6+| ---- | :----:|
7+|Atlas A2 训练系列产品/Atlas A2 推理系列产品|√|
8+ 
9+## 功能说明
10+ 
11+- 算子功能:ELU激活函数的梯度计算。
12+ 
13+- 计算公式:
14+ 
15+$$
16+grad = EluGrad(y, grad_output, alpha)
17+$$
18+ 
19+## 参数说明
20+ 
21+<table style="undefined;table-layout: fixed; width: 980px"><colgroup>
22+ <col style="width: 100px">
23+ <col style="width: 150px">
24+ <col style="width: 280px">
25+ <col style="width: 330px">
26+ <col style="width: 120px">
27+ </colgroup>
28+ <thead>
29+ <tr>
30+ <th>参数名</th>
31+ <th>输入/输出/属性</th>
32+ <th>描述</th>
33+ <th>数据类型</th>
34+ <th>数据格式</th>
35+ </tr></thead>
36+ <tbody>
37+ <tr>
38+ <td>x</td>
39+ <td>输入</td>
40+ <td>输入tensor。</td>
41+ <td>FLOAT、FLOAT16、BFLOAT16</td>
42+ <td>ND</td>
43+ </tr>
44+ <tr>
45+ <td>y</td>
46+ <td>输出</td>
47+ <td>输出tensor。</td>
48+ <td>FLOAT、FLOAT16、BFLOAT16</td>
49+ <td>ND</td>
50+ </tr>
51+ </tbody></table>
52+ 
53+## 约束说明
54+ 
55+无
56+ 
57+## 调用说明
58+ 
59+| 调用方式 | 调用样例 | 说明 |
60+|--------------|------------------------------------------------------------------------|--------------------------------------------------------------|
61+| aclnn调用 | [test_aclnn_elu_grad.cpp](./examples/test_aclnn_elu_grad.cpp) | 通过[test_aclnn_elu_grad](./docs/aclnnEluGrad.md)接口方式调用EluGrad算子。 |
62+ 
63+## 贡献说明
64+ 
65+| 贡献者 | 贡献方 | 贡献算子 | 贡献时间 | 贡献内容 |
66+| ---- | ---- | ---- | ---- | ---- |
67+| TeamName | 待填写 | EluGrad | 待填写 | EluGrad算子适配开源仓 |
@@ -0,0 +1,43 @@
1+cmake_minimum_required(VERSION 3.16)
2+project(GeluGradV2 LANGUAGES CXX)
3+ 
4+set(CMAKE_CXX_STANDARD 17)
5+set(CMAKE_CXX_STANDARD_REQUIRED ON)
6+ 
7+# CANN 路径设置
8+if(NOT DEFINED ENV{ASCEND_HOME_DIR})
9+ message(FATAL_ERROR "Please set ASCEND_HOME_DIR environment variable")
10+endif()
11+set(ASCEND_HOME_DIR $ENV{ASCEND_HOME_DIR})
12+ 
13+# 包含目录
14+include_directories(${ASCEND_HOME_DIR}/ascend-toolkit/latest/include)
15+include_directories(${CMAKE_CURRENT_SOURCE_DIR}/op_kernel)
16+include_directories(${CMAKE_CURRENT_SOURCE_DIR}/op_host)
17+ 
18+# 源文件
19+set(OP_API_SOURCES
20+ op_api/aclnn_gelu_grad_v2.cpp
21+)
22+ 
23+set(OP_HOST_SOURCES
24+ op_host/gelu_grad_v2.cpp
25+)
26+ 
27+# 编译选项
28+add_compile_options(-O2 -Wall -Wextra)
29+ 
30+# 生成算子库
31+add_library(gelu_grad_v2 SHARED
32+ ${OP_API_SOURCES}
33+ ${OP_HOST_SOURCES}
34+)
35+ 
36+target_link_libraries(gelu_grad_v2
37+ ${ASCEND_HOME_DIR}/ascend-toolkit/latest/lib/libascendcl.so
38+)
39+ 
40+# 安装
41+install(TARGETS gelu_grad_v2
42+ LIBRARY DESTINATION lib
43+)
@@ -0,0 +1,67 @@
1+# GeluGradV2
2+ 
3+## 产品支持情况
4+ 
5+| 产品 | 是否支持 |
6+| ---- | :----:|
7+|Atlas A2 训练系列产品/Atlas A2 推理系列产品|√|
8+ 
9+## 功能说明
10+ 
11+- 算子功能:GELU激活函数的梯度计算V2版本。
12+ 
13+- 计算公式:
14+ 
15+$$
16+grad = GeluGradV2(x, grad_output)
17+$$
18+ 
19+## 参数说明
20+ 
21+<table style="undefined;table-layout: fixed; width: 980px"><colgroup>
22+ <col style="width: 100px">
23+ <col style="width: 150px">
24+ <col style="width: 280px">
25+ <col style="width: 330px">
26+ <col style="width: 120px">
27+ </colgroup>
28+ <thead>
29+ <tr>
30+ <th>参数名</th>
31+ <th>输入/输出/属性</th>
32+ <th>描述</th>
33+ <th>数据类型</th>
34+ <th>数据格式</th>
35+ </tr></thead>
36+ <tbody>
37+ <tr>
38+ <td>x</td>
39+ <td>输入</td>
40+ <td>输入tensor。</td>
41+ <td>FLOAT、FLOAT16、BFLOAT16</td>
42+ <td>ND</td>
43+ </tr>
44+ <tr>
45+ <td>y</td>
46+ <td>输出</td>
47+ <td>输出tensor。</td>
48+ <td>FLOAT、FLOAT16、BFLOAT16</td>
49+ <td>ND</td>
50+ </tr>
51+ </tbody></table>
52+ 
53+## 约束说明
54+ 
55+无
56+ 
57+## 调用说明
58+ 
59+| 调用方式 | 调用样例 | 说明 |
60+|--------------|------------------------------------------------------------------------|--------------------------------------------------------------|
61+| aclnn调用 | [test_aclnn_gelu_grad_v2.cpp](./examples/test_aclnn_gelu_grad_v2.cpp) | 通过[test_aclnn_gelu_grad_v2](./docs/aclnnGeluGradV2.md)接口方式调用GeluGradV2算子。 |
62+ 
63+## 贡献说明
64+ 
65+| 贡献者 | 贡献方 | 贡献算子 | 贡献时间 | 贡献内容 |
66+| ---- | ---- | ---- | ---- | ---- |
67+| TeamName | 待填写 | GeluGradV2 | 待填写 | GeluGradV2算子适配开源仓 |
@@ -0,0 +1,43 @@
1+cmake_minimum_required(VERSION 3.16)
2+project(PreluGradUpdate LANGUAGES CXX)
3+ 
4+set(CMAKE_CXX_STANDARD 17)
5+set(CMAKE_CXX_STANDARD_REQUIRED ON)
6+ 
7+# CANN 路径设置
8+if(NOT DEFINED ENV{ASCEND_HOME_DIR})
9+ message(FATAL_ERROR "Please set ASCEND_HOME_DIR environment variable")
10+endif()
11+set(ASCEND_HOME_DIR $ENV{ASCEND_HOME_DIR})
12+ 
13+# 包含目录
14+include_directories(${ASCEND_HOME_DIR}/ascend-toolkit/latest/include)
15+include_directories(${CMAKE_CURRENT_SOURCE_DIR}/op_kernel)
16+include_directories(${CMAKE_CURRENT_SOURCE_DIR}/op_host)
17+ 
18+# 源文件
19+set(OP_API_SOURCES
20+ op_api/aclnn_prelu_grad_update.cpp
21+)
22+ 
23+set(OP_HOST_SOURCES
24+ op_host/prelu_grad_update.cpp
25+)
26+ 
27+# 编译选项
28+add_compile_options(-O2 -Wall -Wextra)
29+ 
30+# 生成算子库
31+add_library(prelu_grad_update SHARED
32+ ${OP_API_SOURCES}
33+ ${OP_HOST_SOURCES}
34+)
35+ 
36+target_link_libraries(prelu_grad_update
37+ ${ASCEND_HOME_DIR}/ascend-toolkit/latest/lib/libascendcl.so
38+)
39+ 
40+# 安装
41+install(TARGETS prelu_grad_update
42+ LIBRARY DESTINATION lib
43+)
@@ -0,0 +1,67 @@
1+# PreluGradUpdate
2+ 
3+## 产品支持情况
4+ 
5+| 产品 | 是否支持 |
6+| ---- | :----:|
7+|Atlas A2 训练系列产品/Atlas A2 推理系列产品|√|
8+ 
9+## 功能说明
10+ 
11+- 算子功能:PReLU梯度更新操作。
12+ 
13+- 计算公式:
14+ 
15+$$
16+weight_grad = PreluGradUpdate(grad_output, input)
17+$$
18+ 
19+## 参数说明
20+ 
21+<table style="undefined;table-layout: fixed; width: 980px"><colgroup>
22+ <col style="width: 100px">
23+ <col style="width: 150px">
24+ <col style="width: 280px">
25+ <col style="width: 330px">
26+ <col style="width: 120px">
27+ </colgroup>
28+ <thead>
29+ <tr>
30+ <th>参数名</th>
31+ <th>输入/输出/属性</th>
32+ <th>描述</th>
33+ <th>数据类型</th>
34+ <th>数据格式</th>
35+ </tr></thead>
36+ <tbody>
37+ <tr>
38+ <td>x</td>
39+ <td>输入</td>
40+ <td>输入tensor。</td>
41+ <td>FLOAT、FLOAT16、BFLOAT16</td>
42+ <td>ND</td>
43+ </tr>
44+ <tr>
45+ <td>y</td>
46+ <td>输出</td>
47+ <td>输出tensor。</td>
48+ <td>FLOAT、FLOAT16、BFLOAT16</td>
49+ <td>ND</td>
50+ </tr>
51+ </tbody></table>
52+ 
53+## 约束说明
54+ 
55+无
56+ 
57+## 调用说明
58+ 
59+| 调用方式 | 调用样例 | 说明 |
60+|--------------|------------------------------------------------------------------------|--------------------------------------------------------------|
61+| aclnn调用 | [test_aclnn_prelu_grad_update.cpp](./examples/test_aclnn_prelu_grad_update.cpp) | 通过[test_aclnn_prelu_grad_update](./docs/aclnnPreluGradUpdate.md)接口方式调用PreluGradUpdate算子。 |
62+ 
63+## 贡献说明
64+ 
65+| 贡献者 | 贡献方 | 贡献算子 | 贡献时间 | 贡献内容 |
66+| ---- | ---- | ---- | ---- | ---- |
67+| TeamName | 待填写 | PreluGradUpdate | 待填写 | PreluGradUpdate算子适配开源仓 |
@@ -0,0 +1,43 @@
1+cmake_minimum_required(VERSION 3.16)
2+project(ReluGradV2 LANGUAGES CXX)
3+ 
4+set(CMAKE_CXX_STANDARD 17)
5+set(CMAKE_CXX_STANDARD_REQUIRED ON)
6+ 
7+# CANN 路径设置
8+if(NOT DEFINED ENV{ASCEND_HOME_DIR})
9+ message(FATAL_ERROR "Please set ASCEND_HOME_DIR environment variable")
10+endif()
11+set(ASCEND_HOME_DIR $ENV{ASCEND_HOME_DIR})
12+ 
13+# 包含目录
14+include_directories(${ASCEND_HOME_DIR}/ascend-toolkit/latest/include)
15+include_directories(${CMAKE_CURRENT_SOURCE_DIR}/op_kernel)
16+include_directories(${CMAKE_CURRENT_SOURCE_DIR}/op_host)
17+ 
18+# 源文件
19+set(OP_API_SOURCES
20+ op_api/aclnn_relu_grad_v2.cpp
21+)
22+ 
23+set(OP_HOST_SOURCES
24+ op_host/relu_grad_v2.cpp
25+)
26+ 
27+# 编译选项
28+add_compile_options(-O2 -Wall -Wextra)
29+ 
30+# 生成算子库
31+add_library(relu_grad_v2 SHARED
32+ ${OP_API_SOURCES}
33+ ${OP_HOST_SOURCES}
34+)
35+ 
36+target_link_libraries(relu_grad_v2
37+ ${ASCEND_HOME_DIR}/ascend-toolkit/latest/lib/libascendcl.so
38+)
39+ 
40+# 安装
41+install(TARGETS relu_grad_v2
42+ LIBRARY DESTINATION lib
43+)
@@ -0,0 +1,67 @@
1+# ReluGradV2
2+ 
3+## 产品支持情况
4+ 
5+| 产品 | 是否支持 |
6+| ---- | :----:|
7+|Atlas A2 训练系列产品/Atlas A2 推理系列产品|√|
8+ 
9+## 功能说明
10+ 
11+- 算子功能:ReLU激活函数的梯度计算V2版本。
12+ 
13+- 计算公式:
14+ 
15+$$
16+grad = ReluGradV2(grad_output, mask)
17+$$
18+ 
19+## 参数说明
20+ 
21+<table style="undefined;table-layout: fixed; width: 980px"><colgroup>
22+ <col style="width: 100px">
23+ <col style="width: 150px">
24+ <col style="width: 280px">
25+ <col style="width: 330px">
26+ <col style="width: 120px">
27+ </colgroup>
28+ <thead>
29+ <tr>
30+ <th>参数名</th>
31+ <th>输入/输出/属性</th>
32+ <th>描述</th>
33+ <th>数据类型</th>
34+ <th>数据格式</th>
35+ </tr></thead>
36+ <tbody>
37+ <tr>
38+ <td>x</td>
39+ <td>输入</td>
40+ <td>输入tensor。</td>
41+ <td>FLOAT、FLOAT16、BFLOAT16</td>
42+ <td>ND</td>
43+ </tr>
44+ <tr>
45+ <td>y</td>
46+ <td>输出</td>
47+ <td>输出tensor。</td>
48+ <td>FLOAT、FLOAT16、BFLOAT16</td>
49+ <td>ND</td>
50+ </tr>
51+ </tbody></table>
52+ 
53+## 约束说明
54+ 
55+无
56+ 
57+## 调用说明
58+ 
59+| 调用方式 | 调用样例 | 说明 |
60+|--------------|------------------------------------------------------------------------|--------------------------------------------------------------|
61+| aclnn调用 | [test_aclnn_relu_grad_v2.cpp](./examples/test_aclnn_relu_grad_v2.cpp) | 通过[test_aclnn_relu_grad_v2](./docs/aclnnReluGradV2.md)接口方式调用ReluGradV2算子。 |
62+ 
63+## 贡献说明
64+ 
65+| 贡献者 | 贡献方 | 贡献算子 | 贡献时间 | 贡献内容 |
66+| ---- | ---- | ---- | ---- | ---- |
67+| TeamName | 待填写 | ReluGradV2 | 待填写 | ReluGradV2算子适配开源仓 |
@@ -0,0 +1,43 @@
1+cmake_minimum_required(VERSION 3.16)
2+project(ReluV2 LANGUAGES CXX)
3+ 
4+set(CMAKE_CXX_STANDARD 17)
5+set(CMAKE_CXX_STANDARD_REQUIRED ON)
6+ 
7+# CANN 路径设置
8+if(NOT DEFINED ENV{ASCEND_HOME_DIR})
9+ message(FATAL_ERROR "Please set ASCEND_HOME_DIR environment variable")
10+endif()
11+set(ASCEND_HOME_DIR $ENV{ASCEND_HOME_DIR})
12+ 
13+# 包含目录
14+include_directories(${ASCEND_HOME_DIR}/ascend-toolkit/latest/include)
15+include_directories(${CMAKE_CURRENT_SOURCE_DIR}/op_kernel)
16+include_directories(${CMAKE_CURRENT_SOURCE_DIR}/op_host)
17+ 
18+# 源文件
19+set(OP_API_SOURCES
20+ op_api/aclnn_relu_v2.cpp
21+)
22+ 
23+set(OP_HOST_SOURCES
24+ op_host/relu_v2.cpp
25+)
26+ 
27+# 编译选项
28+add_compile_options(-O2 -Wall -Wextra)
29+ 
30+# 生成算子库
31+add_library(relu_v2 SHARED
32+ ${OP_API_SOURCES}
33+ ${OP_HOST_SOURCES}
34+)
35+ 
36+target_link_libraries(relu_v2
37+ ${ASCEND_HOME_DIR}/ascend-toolkit/latest/lib/libascendcl.so
38+)
39+ 
40+# 安装
41+install(TARGETS relu_v2
42+ LIBRARY DESTINATION lib
43+)
@@ -0,0 +1,67 @@
1+# ReluV2
2+ 
3+## 产品支持情况
4+ 
5+| 产品 | 是否支持 |
6+| ---- | :----:|
7+|Atlas A2 训练系列产品/Atlas A2 推理系列产品|√|
8+ 
9+## 功能说明
10+ 
11+- 算子功能:ReLU激活函数V2版本。
12+ 
13+- 计算公式:
14+ 
15+$$
16+y, mask = ReluV2(x)
17+$$
18+ 
19+## 参数说明
20+ 
21+<table style="undefined;table-layout: fixed; width: 980px"><colgroup>
22+ <col style="width: 100px">
23+ <col style="width: 150px">
24+ <col style="width: 280px">
25+ <col style="width: 330px">
26+ <col style="width: 120px">
27+ </colgroup>
28+ <thead>
29+ <tr>
30+ <th>参数名</th>
31+ <th>输入/输出/属性</th>
32+ <th>描述</th>
33+ <th>数据类型</th>
34+ <th>数据格式</th>
35+ </tr></thead>
36+ <tbody>
37+ <tr>
38+ <td>x</td>
39+ <td>输入</td>
40+ <td>输入tensor。</td>
41+ <td>FLOAT、FLOAT16、BFLOAT16</td>
42+ <td>ND</td>
43+ </tr>
44+ <tr>
45+ <td>y</td>
46+ <td>输出</td>
47+ <td>输出tensor。</td>
48+ <td>FLOAT、FLOAT16、BFLOAT16</td>
49+ <td>ND</td>
50+ </tr>
51+ </tbody></table>
52+ 
53+## 约束说明
54+ 
55+无
56+ 
57+## 调用说明
58+ 
59+| 调用方式 | 调用样例 | 说明 |
60+|--------------|------------------------------------------------------------------------|--------------------------------------------------------------|
61+| aclnn调用 | [test_aclnn_relu_v2.cpp](./examples/test_aclnn_relu_v2.cpp) | 通过[test_aclnn_relu_v2](./docs/aclnnReluV2.md)接口方式调用ReluV2算子。 |
62+ 
63+## 贡献说明
64+ 
65+| 贡献者 | 贡献方 | 贡献算子 | 贡献时间 | 贡献内容 |
66+| ---- | ---- | ---- | ---- | ---- |
67+| TeamName | 待填写 | ReluV2 | 待填写 | ReluV2算子适配开源仓 |
@@ -0,0 +1,43 @@
1+cmake_minimum_required(VERSION 3.16)
2+project(Selu LANGUAGES CXX)
3+ 
4+set(CMAKE_CXX_STANDARD 17)
5+set(CMAKE_CXX_STANDARD_REQUIRED ON)
6+ 
7+# CANN 路径设置
8+if(NOT DEFINED ENV{ASCEND_HOME_DIR})
9+ message(FATAL_ERROR "Please set ASCEND_HOME_DIR environment variable")
10+endif()
11+set(ASCEND_HOME_DIR $ENV{ASCEND_HOME_DIR})
12+ 
13+# 包含目录
14+include_directories(${ASCEND_HOME_DIR}/ascend-toolkit/latest/include)
15+include_directories(${CMAKE_CURRENT_SOURCE_DIR}/op_kernel)
16+include_directories(${CMAKE_CURRENT_SOURCE_DIR}/op_host)
17+ 
18+# 源文件
19+set(OP_API_SOURCES
20+ op_api/aclnn_selu.cpp
21+)
22+ 
23+set(OP_HOST_SOURCES
24+ op_host/selu.cpp
25+)
26+ 
27+# 编译选项
28+add_compile_options(-O2 -Wall -Wextra)
29+ 
30+# 生成算子库
31+add_library(selu SHARED
32+ ${OP_API_SOURCES}
33+ ${OP_HOST_SOURCES}
34+)
35+ 
36+target_link_libraries(selu
37+ ${ASCEND_HOME_DIR}/ascend-toolkit/latest/lib/libascendcl.so
38+)
39+ 
40+# 安装
41+install(TARGETS selu
42+ LIBRARY DESTINATION lib
43+)
@@ -0,0 +1,67 @@
1+# Selu
2+ 
3+## 产品支持情况
4+ 
5+| 产品 | 是否支持 |
6+| ---- | :----:|
7+|Atlas A2 训练系列产品/Atlas A2 推理系列产品|√|
8+ 
9+## 功能说明
10+ 
11+- 算子功能:SELU激活函数。
12+ 
13+- 计算公式:
14+ 
15+$$
16+y = Selu(x)
17+$$
18+ 
19+## 参数说明
20+ 
21+<table style="undefined;table-layout: fixed; width: 980px"><colgroup>
22+ <col style="width: 100px">
23+ <col style="width: 150px">
24+ <col style="width: 280px">
25+ <col style="width: 330px">
26+ <col style="width: 120px">
27+ </colgroup>
28+ <thead>
29+ <tr>
30+ <th>参数名</th>
31+ <th>输入/输出/属性</th>
32+ <th>描述</th>
33+ <th>数据类型</th>
34+ <th>数据格式</th>
35+ </tr></thead>
36+ <tbody>
37+ <tr>
38+ <td>x</td>
39+ <td>输入</td>
40+ <td>输入tensor。</td>
41+ <td>FLOAT、FLOAT16、BFLOAT16</td>
42+ <td>ND</td>
43+ </tr>
44+ <tr>
45+ <td>y</td>
46+ <td>输出</td>
47+ <td>输出tensor。</td>
48+ <td>FLOAT、FLOAT16、BFLOAT16</td>
49+ <td>ND</td>
50+ </tr>
51+ </tbody></table>
52+ 
53+## 约束说明
54+ 
55+无
56+ 
57+## 调用说明
58+ 
59+| 调用方式 | 调用样例 | 说明 |
60+|--------------|------------------------------------------------------------------------|--------------------------------------------------------------|
61+| aclnn调用 | [test_aclnn_selu.cpp](./examples/test_aclnn_selu.cpp) | 通过[test_aclnn_selu](./docs/aclnnSelu.md)接口方式调用Selu算子。 |
62+ 
63+## 贡献说明
64+ 
65+| 贡献者 | 贡献方 | 贡献算子 | 贡献时间 | 贡献内容 |
66+| ---- | ---- | ---- | ---- | ---- |
67+| TeamName | 待填写 | Selu | 待填写 | Selu算子适配开源仓 |
@@ -0,0 +1,43 @@
1+cmake_minimum_required(VERSION 3.16)
2+project(Softplus LANGUAGES CXX)
3+ 
4+set(CMAKE_CXX_STANDARD 17)
5+set(CMAKE_CXX_STANDARD_REQUIRED ON)
6+ 
7+# CANN 路径设置
8+if(NOT DEFINED ENV{ASCEND_HOME_DIR})
9+ message(FATAL_ERROR "Please set ASCEND_HOME_DIR environment variable")
10+endif()
11+set(ASCEND_HOME_DIR $ENV{ASCEND_HOME_DIR})
12+ 
13+# 包含目录
14+include_directories(${ASCEND_HOME_DIR}/ascend-toolkit/latest/include)
15+include_directories(${CMAKE_CURRENT_SOURCE_DIR}/op_kernel)
16+include_directories(${CMAKE_CURRENT_SOURCE_DIR}/op_host)
17+ 
18+# 源文件
19+set(OP_API_SOURCES
20+ op_api/aclnn_softplus.cpp
21+)
22+ 
23+set(OP_HOST_SOURCES
24+ op_host/softplus.cpp
25+)
26+ 
27+# 编译选项
28+add_compile_options(-O2 -Wall -Wextra)
29+ 
30+# 生成算子库
31+add_library(softplus SHARED
32+ ${OP_API_SOURCES}
33+ ${OP_HOST_SOURCES}
34+)
35+ 
36+target_link_libraries(softplus
37+ ${ASCEND_HOME_DIR}/ascend-toolkit/latest/lib/libascendcl.so
38+)
39+ 
40+# 安装
41+install(TARGETS softplus
42+ LIBRARY DESTINATION lib
43+)
@@ -0,0 +1,67 @@
1+# Softplus
2+ 
3+## 产品支持情况
4+ 
5+| 产品 | 是否支持 |
6+| ---- | :----:|
7+|Atlas A2 训练系列产品/Atlas A2 推理系列产品|√|
8+ 
9+## 功能说明
10+ 
11+- 算子功能:Softplus激活函数。
12+ 
13+- 计算公式:
14+ 
15+$$
16+y = Softplus(x)
17+$$
18+ 
19+## 参数说明
20+ 
21+<table style="undefined;table-layout: fixed; width: 980px"><colgroup>
22+ <col style="width: 100px">
23+ <col style="width: 150px">
24+ <col style="width: 280px">
25+ <col style="width: 330px">
26+ <col style="width: 120px">
27+ </colgroup>
28+ <thead>
29+ <tr>
30+ <th>参数名</th>
31+ <th>输入/输出/属性</th>
32+ <th>描述</th>
33+ <th>数据类型</th>
34+ <th>数据格式</th>
35+ </tr></thead>
36+ <tbody>
37+ <tr>
38+ <td>x</td>
39+ <td>输入</td>
40+ <td>输入tensor。</td>
41+ <td>FLOAT、FLOAT16、BFLOAT16</td>
42+ <td>ND</td>
43+ </tr>
44+ <tr>
45+ <td>y</td>
46+ <td>输出</td>
47+ <td>输出tensor。</td>
48+ <td>FLOAT、FLOAT16、BFLOAT16</td>
49+ <td>ND</td>
50+ </tr>
51+ </tbody></table>
52+ 
53+## 约束说明
54+ 
55+无
56+ 
57+## 调用说明
58+ 
59+| 调用方式 | 调用样例 | 说明 |
60+|--------------|------------------------------------------------------------------------|--------------------------------------------------------------|
61+| aclnn调用 | [test_aclnn_softplus.cpp](./examples/test_aclnn_softplus.cpp) | 通过[test_aclnn_softplus](./docs/aclnnSoftplus.md)接口方式调用Softplus算子。 |
62+ 
63+## 贡献说明
64+ 
65+| 贡献者 | 贡献方 | 贡献算子 | 贡献时间 | 贡献内容 |
66+| ---- | ---- | ---- | ---- | ---- |
67+| TeamName | 待填写 | Softplus | 待填写 | Softplus算子适配开源仓 |
@@ -0,0 +1,43 @@
1+cmake_minimum_required(VERSION 3.16)
2+project(SoftmaxGrad LANGUAGES CXX)
3+ 
4+set(CMAKE_CXX_STANDARD 17)
5+set(CMAKE_CXX_STANDARD_REQUIRED ON)
6+ 
7+# CANN 路径设置
8+if(NOT DEFINED ENV{ASCEND_HOME_DIR})
9+ message(FATAL_ERROR "Please set ASCEND_HOME_DIR environment variable")
10+endif()
11+set(ASCEND_HOME_DIR $ENV{ASCEND_HOME_DIR})
12+ 
13+# 包含目录
14+include_directories(${ASCEND_HOME_DIR}/ascend-toolkit/latest/include)
15+include_directories(${CMAKE_CURRENT_SOURCE_DIR}/op_kernel)
16+include_directories(${CMAKE_CURRENT_SOURCE_DIR}/op_host)
17+ 
18+# 源文件
19+set(OP_API_SOURCES
20+ op_api/aclnn_softmax_grad.cpp
21+)
22+ 
23+set(OP_HOST_SOURCES
24+ op_host/softmax_grad.cpp
25+)
26+ 
27+# 编译选项
28+add_compile_options(-O2 -Wall -Wextra)
29+ 
30+# 生成算子库
31+add_library(softmax_grad SHARED
32+ ${OP_API_SOURCES}
33+ ${OP_HOST_SOURCES}
34+)
35+ 
36+target_link_libraries(softmax_grad
37+ ${ASCEND_HOME_DIR}/ascend-toolkit/latest/lib/libascendcl.so
38+)
39+ 
40+# 安装
41+install(TARGETS softmax_grad
42+ LIBRARY DESTINATION lib
43+)
@@ -0,0 +1,67 @@
1+# SoftmaxGrad
2+ 
3+## 产品支持情况
4+ 
5+| 产品 | 是否支持 |
6+| ---- | :----:|
7+|Atlas A2 训练系列产品/Atlas A2 推理系列产品|√|
8+ 
9+## 功能说明
10+ 
11+- 算子功能:计算Softmax函数的梯度。
12+ 
13+- 计算公式:
14+ 
15+$$
16+grad = SoftmaxGrad(output, grad_output)
17+$$
18+ 
19+## 参数说明
20+ 
21+<table style="undefined;table-layout: fixed; width: 980px"><colgroup>
22+ <col style="width: 100px">
23+ <col style="width: 150px">
24+ <col style="width: 280px">
25+ <col style="width: 330px">
26+ <col style="width: 120px">
27+ </colgroup>
28+ <thead>
29+ <tr>
30+ <th>参数名</th>
31+ <th>输入/输出/属性</th>
32+ <th>描述</th>
33+ <th>数据类型</th>
34+ <th>数据格式</th>
35+ </tr></thead>
36+ <tbody>
37+ <tr>
38+ <td>x</td>
39+ <td>输入</td>
40+ <td>输入tensor。</td>
41+ <td>FLOAT、FLOAT16、BFLOAT16</td>
42+ <td>ND</td>
43+ </tr>
44+ <tr>
45+ <td>y</td>
46+ <td>输出</td>
47+ <td>输出tensor。</td>
48+ <td>FLOAT、FLOAT16、BFLOAT16</td>
49+ <td>ND</td>
50+ </tr>
51+ </tbody></table>
52+ 
53+## 约束说明
54+ 
55+无
56+ 
57+## 调用说明
58+ 
59+| 调用方式 | 调用样例 | 说明 |
60+|--------------|------------------------------------------------------------------------|--------------------------------------------------------------|
61+| aclnn调用 | [test_aclnn_softmax_grad.cpp](./examples/test_aclnn_softmax_grad.cpp) | 通过[test_aclnn_softmax_grad](./docs/aclnnSoftmaxGrad.md)接口方式调用SoftmaxGrad算子。 |
62+ 
63+## 贡献说明
64+ 
65+| 贡献者 | 贡献方 | 贡献算子 | 贡献时间 | 贡献内容 |
66+| ---- | ---- | ---- | ---- | ---- |
67+| TeamName | 待填写 | SoftmaxGrad | 待填写 | SoftmaxGrad算子适配开源仓 |
@@ -0,0 +1,43 @@
1+cmake_minimum_required(VERSION 3.16)
2+project(Softshrink LANGUAGES CXX)
3+ 
4+set(CMAKE_CXX_STANDARD 17)
5+set(CMAKE_CXX_STANDARD_REQUIRED ON)
6+ 
7+# CANN 路径设置
8+if(NOT DEFINED ENV{ASCEND_HOME_DIR})
9+ message(FATAL_ERROR "Please set ASCEND_HOME_DIR environment variable")
10+endif()
11+set(ASCEND_HOME_DIR $ENV{ASCEND_HOME_DIR})
12+ 
13+# 包含目录
14+include_directories(${ASCEND_HOME_DIR}/ascend-toolkit/latest/include)
15+include_directories(${CMAKE_CURRENT_SOURCE_DIR}/op_kernel)
16+include_directories(${CMAKE_CURRENT_SOURCE_DIR}/op_host)
17+ 
18+# 源文件
19+set(OP_API_SOURCES
20+ op_api/aclnn_softshrink.cpp
21+)
22+ 
23+set(OP_HOST_SOURCES
24+ op_host/softshrink.cpp
25+)
26+ 
27+# 编译选项
28+add_compile_options(-O2 -Wall -Wextra)
29+ 
30+# 生成算子库
31+add_library(softshrink SHARED
32+ ${OP_API_SOURCES}
33+ ${OP_HOST_SOURCES}
34+)
35+ 
36+target_link_libraries(softshrink
37+ ${ASCEND_HOME_DIR}/ascend-toolkit/latest/lib/libascendcl.so
38+)
39+ 
40+# 安装
41+install(TARGETS softshrink
42+ LIBRARY DESTINATION lib
43+)
@@ -0,0 +1,67 @@
1+# Softshrink
2+ 
3+## 产品支持情况
4+ 
5+| 产品 | 是否支持 |
6+| ---- | :----:|
7+|Atlas A2 训练系列产品/Atlas A2 推理系列产品|√|
8+ 
9+## 功能说明
10+ 
11+- 算子功能:Softshrink激活函数。
12+ 
13+- 计算公式:
14+ 
15+$$
16+y = Softshrink(x, lambda)
17+$$
18+ 
19+## 参数说明
20+ 
21+<table style="undefined;table-layout: fixed; width: 980px"><colgroup>
22+ <col style="width: 100px">
23+ <col style="width: 150px">
24+ <col style="width: 280px">
25+ <col style="width: 330px">
26+ <col style="width: 120px">
27+ </colgroup>
28+ <thead>
29+ <tr>
30+ <th>参数名</th>
31+ <th>输入/输出/属性</th>
32+ <th>描述</th>
33+ <th>数据类型</th>
34+ <th>数据格式</th>
35+ </tr></thead>
36+ <tbody>
37+ <tr>
38+ <td>x</td>
39+ <td>输入</td>
40+ <td>输入tensor。</td>
41+ <td>FLOAT、FLOAT16、BFLOAT16</td>
42+ <td>ND</td>
43+ </tr>
44+ <tr>
45+ <td>y</td>
46+ <td>输出</td>
47+ <td>输出tensor。</td>
48+ <td>FLOAT、FLOAT16、BFLOAT16</td>
49+ <td>ND</td>
50+ </tr>
51+ </tbody></table>
52+ 
53+## 约束说明
54+ 
55+无
56+ 
57+## 调用说明
58+ 
59+| 调用方式 | 调用样例 | 说明 |
60+|--------------|------------------------------------------------------------------------|--------------------------------------------------------------|
61+| aclnn调用 | [test_aclnn_softshrink.cpp](./examples/test_aclnn_softshrink.cpp) | 通过[test_aclnn_softshrink](./docs/aclnnSoftshrink.md)接口方式调用Softshrink算子。 |
62+ 
63+## 贡献说明
64+ 
65+| 贡献者 | 贡献方 | 贡献算子 | 贡献时间 | 贡献内容 |
66+| ---- | ---- | ---- | ---- | ---- |
67+| TeamName | 待填写 | Softshrink | 待填写 | Softshrink算子适配开源仓 |
@@ -0,0 +1,43 @@
1+cmake_minimum_required(VERSION 3.16)
2+project(ThresholdGradV2D LANGUAGES CXX)
3+ 
4+set(CMAKE_CXX_STANDARD 17)
5+set(CMAKE_CXX_STANDARD_REQUIRED ON)
6+ 
7+# CANN 路径设置
8+if(NOT DEFINED ENV{ASCEND_HOME_DIR})
9+ message(FATAL_ERROR "Please set ASCEND_HOME_DIR environment variable")
10+endif()
11+set(ASCEND_HOME_DIR $ENV{ASCEND_HOME_DIR})
12+ 
13+# 包含目录
14+include_directories(${ASCEND_HOME_DIR}/ascend-toolkit/latest/include)
15+include_directories(${CMAKE_CURRENT_SOURCE_DIR}/op_kernel)
16+include_directories(${CMAKE_CURRENT_SOURCE_DIR}/op_host)
17+ 
18+# 源文件
19+set(OP_API_SOURCES
20+ op_api/aclnn_threshold_grad_v2_d.cpp
21+)
22+ 
23+set(OP_HOST_SOURCES
24+ op_host/threshold_grad_v2_d.cpp
25+)
26+ 
27+# 编译选项
28+add_compile_options(-O2 -Wall -Wextra)
29+ 
30+# 生成算子库
31+add_library(threshold_grad_v2_d SHARED
32+ ${OP_API_SOURCES}
33+ ${OP_HOST_SOURCES}
34+)
35+ 
36+target_link_libraries(threshold_grad_v2_d
37+ ${ASCEND_HOME_DIR}/ascend-toolkit/latest/lib/libascendcl.so
38+)
39+ 
40+# 安装
41+install(TARGETS threshold_grad_v2_d
42+ LIBRARY DESTINATION lib
43+)
@@ -0,0 +1,67 @@
1+# ThresholdGradV2D
2+ 
3+## 产品支持情况
4+ 
5+| 产品 | 是否支持 |
6+| ---- | :----:|
7+|Atlas A2 训练系列产品/Atlas A2 推理系列产品|√|
8+ 
9+## 功能说明
10+ 
11+- 算子功能:Threshold函数的梯度计算V2D版本。
12+ 
13+- 计算公式:
14+ 
15+$$
16+grad = ThresholdGradV2D(grad_output, mask)
17+$$
18+ 
19+## 参数说明
20+ 
21+<table style="undefined;table-layout: fixed; width: 980px"><colgroup>
22+ <col style="width: 100px">
23+ <col style="width: 150px">
24+ <col style="width: 280px">
25+ <col style="width: 330px">
26+ <col style="width: 120px">
27+ </colgroup>
28+ <thead>
29+ <tr>
30+ <th>参数名</th>
31+ <th>输入/输出/属性</th>
32+ <th>描述</th>
33+ <th>数据类型</th>
34+ <th>数据格式</th>
35+ </tr></thead>
36+ <tbody>
37+ <tr>
38+ <td>x</td>
39+ <td>输入</td>
40+ <td>输入tensor。</td>
41+ <td>FLOAT、FLOAT16、BFLOAT16</td>
42+ <td>ND</td>
43+ </tr>
44+ <tr>
45+ <td>y</td>
46+ <td>输出</td>
47+ <td>输出tensor。</td>
48+ <td>FLOAT、FLOAT16、BFLOAT16</td>
49+ <td>ND</td>
50+ </tr>
51+ </tbody></table>
52+ 
53+## 约束说明
54+ 
55+无
56+ 
57+## 调用说明
58+ 
59+| 调用方式 | 调用样例 | 说明 |
60+|--------------|------------------------------------------------------------------------|--------------------------------------------------------------|
61+| aclnn调用 | [test_aclnn_threshold_grad_v2_d.cpp](./examples/test_aclnn_threshold_grad_v2_d.cpp) | 通过[test_aclnn_threshold_grad_v2_d](./docs/aclnnThresholdGradV2D.md)接口方式调用ThresholdGradV2D算子。 |
62+ 
63+## 贡献说明
64+ 
65+| 贡献者 | 贡献方 | 贡献算子 | 贡献时间 | 贡献内容 |
66+| ---- | ---- | ---- | ---- | ---- |
67+| TeamName | 待填写 | ThresholdGradV2D | 待填写 | ThresholdGradV2D算子适配开源仓 |
@@ -0,0 +1,43 @@
1+cmake_minimum_required(VERSION 3.16)
2+project(IndexFillD LANGUAGES CXX)
3+ 
4+set(CMAKE_CXX_STANDARD 17)
5+set(CMAKE_CXX_STANDARD_REQUIRED ON)
6+ 
7+# CANN 路径设置
8+if(NOT DEFINED ENV{ASCEND_HOME_DIR})
9+ message(FATAL_ERROR "Please set ASCEND_HOME_DIR environment variable")
10+endif()
11+set(ASCEND_HOME_DIR $ENV{ASCEND_HOME_DIR})
12+ 
13+# 包含目录
14+include_directories(${ASCEND_HOME_DIR}/ascend-toolkit/latest/include)
15+include_directories(${CMAKE_CURRENT_SOURCE_DIR}/op_kernel)
16+include_directories(${CMAKE_CURRENT_SOURCE_DIR}/op_host)
17+ 
18+# 源文件
19+set(OP_API_SOURCES
20+ op_api/aclnn_index_fill_d.cpp
21+)
22+ 
23+set(OP_HOST_SOURCES
24+ op_host/index_fill_d.cpp
25+)
26+ 
27+# 编译选项
28+add_compile_options(-O2 -Wall -Wextra)
29+ 
30+# 生成算子库
31+add_library(index_fill_d SHARED
32+ ${OP_API_SOURCES}
33+ ${OP_HOST_SOURCES}
34+)
35+ 
36+target_link_libraries(index_fill_d
37+ ${ASCEND_HOME_DIR}/ascend-toolkit/latest/lib/libascendcl.so
38+)
39+ 
40+# 安装
41+install(TARGETS index_fill_d
42+ LIBRARY DESTINATION lib
43+)
@@ -0,0 +1,67 @@
1+# IndexFillD
2+ 
3+## 产品支持情况
4+ 
5+| 产品 | 是否支持 |
6+| ---- | :----:|
7+|Atlas A2 训练系列产品/Atlas A2 推理系列产品|√|
8+ 
9+## 功能说明
10+ 
11+- 算子功能:按索引填充张量元素。
12+ 
13+- 计算公式:
14+ 
15+$$
16+y = IndexFillD(x, index, value, dim)
17+$$
18+ 
19+## 参数说明
20+ 
21+<table style="undefined;table-layout: fixed; width: 980px"><colgroup>
22+ <col style="width: 100px">
23+ <col style="width: 150px">
24+ <col style="width: 280px">
25+ <col style="width: 330px">
26+ <col style="width: 120px">
27+ </colgroup>
28+ <thead>
29+ <tr>
30+ <th>参数名</th>
31+ <th>输入/输出/属性</th>
32+ <th>描述</th>
33+ <th>数据类型</th>
34+ <th>数据格式</th>
35+ </tr></thead>
36+ <tbody>
37+ <tr>
38+ <td>x</td>
39+ <td>输入</td>
40+ <td>输入tensor。</td>
41+ <td>FLOAT、FLOAT16、BFLOAT16</td>
42+ <td>ND</td>
43+ </tr>
44+ <tr>
45+ <td>y</td>
46+ <td>输出</td>
47+ <td>输出tensor。</td>
48+ <td>FLOAT、FLOAT16、BFLOAT16</td>
49+ <td>ND</td>
50+ </tr>
51+ </tbody></table>
52+ 
53+## 约束说明
54+ 
55+无
56+ 
57+## 调用说明
58+ 
59+| 调用方式 | 调用样例 | 说明 |
60+|--------------|------------------------------------------------------------------------|--------------------------------------------------------------|
61+| aclnn调用 | [test_aclnn_index_fill_d.cpp](./examples/test_aclnn_index_fill_d.cpp) | 通过[test_aclnn_index_fill_d](./docs/aclnnIndexFillD.md)接口方式调用IndexFillD算子。 |
62+ 
63+## 贡献说明
64+ 
65+| 贡献者 | 贡献方 | 贡献算子 | 贡献时间 | 贡献内容 |
66+| ---- | ---- | ---- | ---- | ---- |
67+| TeamName | 待填写 | IndexFillD | 待填写 | IndexFillD算子适配开源仓 |
@@ -0,0 +1,43 @@
1+cmake_minimum_required(VERSION 3.16)
2+project(MseLossGrad LANGUAGES CXX)
3+ 
4+set(CMAKE_CXX_STANDARD 17)
5+set(CMAKE_CXX_STANDARD_REQUIRED ON)
6+ 
7+# CANN 路径设置
8+if(NOT DEFINED ENV{ASCEND_HOME_DIR})
9+ message(FATAL_ERROR "Please set ASCEND_HOME_DIR environment variable")
10+endif()
11+set(ASCEND_HOME_DIR $ENV{ASCEND_HOME_DIR})
12+ 
13+# 包含目录
14+include_directories(${ASCEND_HOME_DIR}/ascend-toolkit/latest/include)
15+include_directories(${CMAKE_CURRENT_SOURCE_DIR}/op_kernel)
16+include_directories(${CMAKE_CURRENT_SOURCE_DIR}/op_host)
17+ 
18+# 源文件
19+set(OP_API_SOURCES
20+ op_api/aclnn_mse_loss_grad.cpp
21+)
22+ 
23+set(OP_HOST_SOURCES
24+ op_host/mse_loss_grad.cpp
25+)
26+ 
27+# 编译选项
28+add_compile_options(-O2 -Wall -Wextra)
29+ 
30+# 生成算子库
31+add_library(mse_loss_grad SHARED
32+ ${OP_API_SOURCES}
33+ ${OP_HOST_SOURCES}
34+)
35+ 
36+target_link_libraries(mse_loss_grad
37+ ${ASCEND_HOME_DIR}/ascend-toolkit/latest/lib/libascendcl.so
38+)
39+ 
40+# 安装
41+install(TARGETS mse_loss_grad
42+ LIBRARY DESTINATION lib
43+)
@@ -0,0 +1,67 @@
1+# MseLossGrad
2+ 
3+## 产品支持情况
4+ 
5+| 产品 | 是否支持 |
6+| ---- | :----:|
7+|Atlas A2 训练系列产品/Atlas A2 推理系列产品|√|
8+ 
9+## 功能说明
10+ 
11+- 算子功能:MSE损失函数的梯度计算。
12+ 
13+- 计算公式:
14+ 
15+$$
16+grad = MseLossGrad(input, target, reduction)
17+$$
18+ 
19+## 参数说明
20+ 
21+<table style="undefined;table-layout: fixed; width: 980px"><colgroup>
22+ <col style="width: 100px">
23+ <col style="width: 150px">
24+ <col style="width: 280px">
25+ <col style="width: 330px">
26+ <col style="width: 120px">
27+ </colgroup>
28+ <thead>
29+ <tr>
30+ <th>参数名</th>
31+ <th>输入/输出/属性</th>
32+ <th>描述</th>
33+ <th>数据类型</th>
34+ <th>数据格式</th>
35+ </tr></thead>
36+ <tbody>
37+ <tr>
38+ <td>x</td>
39+ <td>输入</td>
40+ <td>输入tensor。</td>
41+ <td>FLOAT、FLOAT16、BFLOAT16</td>
42+ <td>ND</td>
43+ </tr>
44+ <tr>
45+ <td>y</td>
46+ <td>输出</td>
47+ <td>输出tensor。</td>
48+ <td>FLOAT、FLOAT16、BFLOAT16</td>
49+ <td>ND</td>
50+ </tr>
51+ </tbody></table>
52+ 
53+## 约束说明
54+ 
55+无
56+ 
57+## 调用说明
58+ 
59+| 调用方式 | 调用样例 | 说明 |
60+|--------------|------------------------------------------------------------------------|--------------------------------------------------------------|
61+| aclnn调用 | [test_aclnn_mse_loss_grad.cpp](./examples/test_aclnn_mse_loss_grad.cpp) | 通过[test_aclnn_mse_loss_grad](./docs/aclnnMseLossGrad.md)接口方式调用MseLossGrad算子。 |
62+ 
63+## 贡献说明
64+ 
65+| 贡献者 | 贡献方 | 贡献算子 | 贡献时间 | 贡献内容 |
66+| ---- | ---- | ---- | ---- | ---- |
67+| TeamName | 待填写 | MseLossGrad | 待填写 | MseLossGrad算子适配开源仓 |
@@ -0,0 +1,43 @@
1+cmake_minimum_required(VERSION 3.16)
2+project(SoftMarginLossGrad LANGUAGES CXX)
3+ 
4+set(CMAKE_CXX_STANDARD 17)
5+set(CMAKE_CXX_STANDARD_REQUIRED ON)
6+ 
7+# CANN 路径设置
8+if(NOT DEFINED ENV{ASCEND_HOME_DIR})
9+ message(FATAL_ERROR "Please set ASCEND_HOME_DIR environment variable")
10+endif()
11+set(ASCEND_HOME_DIR $ENV{ASCEND_HOME_DIR})
12+ 
13+# 包含目录
14+include_directories(${ASCEND_HOME_DIR}/ascend-toolkit/latest/include)
15+include_directories(${CMAKE_CURRENT_SOURCE_DIR}/op_kernel)
16+include_directories(${CMAKE_CURRENT_SOURCE_DIR}/op_host)
17+ 
18+# 源文件
19+set(OP_API_SOURCES
20+ op_api/aclnn_soft_margin_loss_grad.cpp
21+)
22+ 
23+set(OP_HOST_SOURCES
24+ op_host/soft_margin_loss_grad.cpp
25+)
26+ 
27+# 编译选项
28+add_compile_options(-O2 -Wall -Wextra)
29+ 
30+# 生成算子库
31+add_library(soft_margin_loss_grad SHARED
32+ ${OP_API_SOURCES}
33+ ${OP_HOST_SOURCES}
34+)
35+ 
36+target_link_libraries(soft_margin_loss_grad
37+ ${ASCEND_HOME_DIR}/ascend-toolkit/latest/lib/libascendcl.so
38+)
39+ 
40+# 安装
41+install(TARGETS soft_margin_loss_grad
42+ LIBRARY DESTINATION lib
43+)
@@ -0,0 +1,67 @@
1+# SoftMarginLossGrad
2+ 
3+## 产品支持情况
4+ 
5+| 产品 | 是否支持 |
6+| ---- | :----:|
7+|Atlas A2 训练系列产品/Atlas A2 推理系列产品|√|
8+ 
9+## 功能说明
10+ 
11+- 算子功能:SoftMargin损失函数的梯度计算。
12+ 
13+- 计算公式:
14+ 
15+$$
16+grad = SoftMarginLossGrad(input, target)
17+$$
18+ 
19+## 参数说明
20+ 
21+<table style="undefined;table-layout: fixed; width: 980px"><colgroup>
22+ <col style="width: 100px">
23+ <col style="width: 150px">
24+ <col style="width: 280px">
25+ <col style="width: 330px">
26+ <col style="width: 120px">
27+ </colgroup>
28+ <thead>
29+ <tr>
30+ <th>参数名</th>
31+ <th>输入/输出/属性</th>
32+ <th>描述</th>
33+ <th>数据类型</th>
34+ <th>数据格式</th>
35+ </tr></thead>
36+ <tbody>
37+ <tr>
38+ <td>x</td>
39+ <td>输入</td>
40+ <td>输入tensor。</td>
41+ <td>FLOAT、FLOAT16、BFLOAT16</td>
42+ <td>ND</td>
43+ </tr>
44+ <tr>
45+ <td>y</td>
46+ <td>输出</td>
47+ <td>输出tensor。</td>
48+ <td>FLOAT、FLOAT16、BFLOAT16</td>
49+ <td>ND</td>
50+ </tr>
51+ </tbody></table>
52+ 
53+## 约束说明
54+ 
55+无
56+ 
57+## 调用说明
58+ 
59+| 调用方式 | 调用样例 | 说明 |
60+|--------------|------------------------------------------------------------------------|--------------------------------------------------------------|
61+| aclnn调用 | [test_aclnn_soft_margin_loss_grad.cpp](./examples/test_aclnn_soft_margin_loss_grad.cpp) | 通过[test_aclnn_soft_margin_loss_grad](./docs/aclnnSoftMarginLossGrad.md)接口方式调用SoftMarginLossGrad算子。 |
62+ 
63+## 贡献说明
64+ 
65+| 贡献者 | 贡献方 | 贡献算子 | 贡献时间 | 贡献内容 |
66+| ---- | ---- | ---- | ---- | ---- |
67+| TeamName | 待填写 | SoftMarginLossGrad | 待填写 | SoftMarginLossGrad算子适配开源仓 |
@@ -0,0 +1,43 @@
1+cmake_minimum_required(VERSION 3.16)
2+project(SoftMarginLoss LANGUAGES CXX)
3+ 
4+set(CMAKE_CXX_STANDARD 17)
5+set(CMAKE_CXX_STANDARD_REQUIRED ON)
6+ 
7+# CANN 路径设置
8+if(NOT DEFINED ENV{ASCEND_HOME_DIR})
9+ message(FATAL_ERROR "Please set ASCEND_HOME_DIR environment variable")
10+endif()
11+set(ASCEND_HOME_DIR $ENV{ASCEND_HOME_DIR})
12+ 
13+# 包含目录
14+include_directories(${ASCEND_HOME_DIR}/ascend-toolkit/latest/include)
15+include_directories(${CMAKE_CURRENT_SOURCE_DIR}/op_kernel)
16+include_directories(${CMAKE_CURRENT_SOURCE_DIR}/op_host)
17+ 
18+# 源文件
19+set(OP_API_SOURCES
20+ op_api/aclnn_soft_margin_loss.cpp
21+)
22+ 
23+set(OP_HOST_SOURCES
24+ op_host/soft_margin_loss.cpp
25+)
26+ 
27+# 编译选项
28+add_compile_options(-O2 -Wall -Wextra)
29+ 
30+# 生成算子库
31+add_library(soft_margin_loss SHARED
32+ ${OP_API_SOURCES}
33+ ${OP_HOST_SOURCES}
34+)
35+ 
36+target_link_libraries(soft_margin_loss
37+ ${ASCEND_HOME_DIR}/ascend-toolkit/latest/lib/libascendcl.so
38+)
39+ 
40+# 安装
41+install(TARGETS soft_margin_loss
42+ LIBRARY DESTINATION lib
43+)
@@ -0,0 +1,67 @@
1+# SoftMarginLoss
2+ 
3+## 产品支持情况
4+ 
5+| 产品 | 是否支持 |
6+| ---- | :----:|
7+|Atlas A2 训练系列产品/Atlas A2 推理系列产品|√|
8+ 
9+## 功能说明
10+ 
11+- 算子功能:SoftMargin损失函数。
12+ 
13+- 计算公式:
14+ 
15+$$
16+loss = SoftMarginLoss(input, target)
17+$$
18+ 
19+## 参数说明
20+ 
21+<table style="undefined;table-layout: fixed; width: 980px"><colgroup>
22+ <col style="width: 100px">
23+ <col style="width: 150px">
24+ <col style="width: 280px">
25+ <col style="width: 330px">
26+ <col style="width: 120px">
27+ </colgroup>
28+ <thead>
29+ <tr>
30+ <th>参数名</th>
31+ <th>输入/输出/属性</th>
32+ <th>描述</th>
33+ <th>数据类型</th>
34+ <th>数据格式</th>
35+ </tr></thead>
36+ <tbody>
37+ <tr>
38+ <td>x</td>
39+ <td>输入</td>
40+ <td>输入tensor。</td>
41+ <td>FLOAT、FLOAT16、BFLOAT16</td>
42+ <td>ND</td>
43+ </tr>
44+ <tr>
45+ <td>y</td>
46+ <td>输出</td>
47+ <td>输出tensor。</td>
48+ <td>FLOAT、FLOAT16、BFLOAT16</td>
49+ <td>ND</td>
50+ </tr>
51+ </tbody></table>
52+ 
53+## 约束说明
54+ 
55+无
56+ 
57+## 调用说明
58+ 
59+| 调用方式 | 调用样例 | 说明 |
60+|--------------|------------------------------------------------------------------------|--------------------------------------------------------------|
61+| aclnn调用 | [test_aclnn_soft_margin_loss.cpp](./examples/test_aclnn_soft_margin_loss.cpp) | 通过[test_aclnn_soft_margin_loss](./docs/aclnnSoftMarginLoss.md)接口方式调用SoftMarginLoss算子。 |
62+ 
63+## 贡献说明
64+ 
65+| 贡献者 | 贡献方 | 贡献算子 | 贡献时间 | 贡献内容 |
66+| ---- | ---- | ---- | ---- | ---- |
67+| TeamName | 待填写 | SoftMarginLoss | 待填写 | SoftMarginLoss算子适配开源仓 |
@@ -0,0 +1,43 @@
1+cmake_minimum_required(VERSION 3.16)
2+project(SyncBatchNormBackwardElemt LANGUAGES CXX)
3+ 
4+set(CMAKE_CXX_STANDARD 17)
5+set(CMAKE_CXX_STANDARD_REQUIRED ON)
6+ 
7+# CANN 路径设置
8+if(NOT DEFINED ENV{ASCEND_HOME_DIR})
9+ message(FATAL_ERROR "Please set ASCEND_HOME_DIR environment variable")
10+endif()
11+set(ASCEND_HOME_DIR $ENV{ASCEND_HOME_DIR})
12+ 
13+# 包含目录
14+include_directories(${ASCEND_HOME_DIR}/ascend-toolkit/latest/include)
15+include_directories(${CMAKE_CURRENT_SOURCE_DIR}/op_kernel)
16+include_directories(${CMAKE_CURRENT_SOURCE_DIR}/op_host)
17+ 
18+# 源文件
19+set(OP_API_SOURCES
20+ op_api/aclnn_sync_batch_norm_backward_elemt.cpp
21+)
22+ 
23+set(OP_HOST_SOURCES
24+ op_host/sync_batch_norm_backward_elemt.cpp
25+)
26+ 
27+# 编译选项
28+add_compile_options(-O2 -Wall -Wextra)
29+ 
30+# 生成算子库
31+add_library(sync_batch_norm_backward_elemt SHARED
32+ ${OP_API_SOURCES}
33+ ${OP_HOST_SOURCES}
34+)
35+ 
36+target_link_libraries(sync_batch_norm_backward_elemt
37+ ${ASCEND_HOME_DIR}/ascend-toolkit/latest/lib/libascendcl.so
38+)
39+ 
40+# 安装
41+install(TARGETS sync_batch_norm_backward_elemt
42+ LIBRARY DESTINATION lib
43+)