已合并
添加社区任务目录 #3
fulltower创建于 4月16日
添加社区任务目录 #3
已合并
共 133 个文件变更+6360-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
文件重命名但无更改。
| @@ -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算子适配开源仓 | | ||
The file is empty
The file is empty
The file is empty
The file is empty
The file is empty
The file is empty
| @@ -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算子适配开源仓 | | ||
A04_tasks/01_community-task-2026/tasklist/02-26-SyncBatchNormBackwardElemt/TeamName/CMakeLists.txt+43-0
| @@ -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 | +) | ||