| Files | Last commit | Last update |
|---|---|---|
删除源码链接 Co-authored-by: fwx1169505<fengying27@h-partners.com> # message auto-generated for no-merge-commit merge: !12106 merge master into master 删除源码链接 Created-by: fengying555682 Commit-by: fwx1169505 Merged-by: cann-robot Description: ## 描述 删除源码链接 ## 关联的Issue [#6769](https://gitcode.com/cann/ops-nn/issues/6769) ## 测试 仅涉及文档修改,已经测试md文档语法 ## 文档更新 activation和quant目录下的md文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!12106 | 24 days ago | |
format cpp Co-authored-by: yang-di52<yangdi52@huawei.com> # message auto-generated for no-merge-commit merge: !6784 merge issue_fix into master format cpp Created-by: yang-di52 Commit-by: yang-di52 Merged-by: cann-robot Description: ## 描述 批量刷新cpp代码格式 ## 关联的Issue [#3791](https://gitcode.com/cann/ops-nn/issues/3791) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码格式化 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!6784 | 4 months ago | |
fix: migrate simple onnx parse params plugins Co-authored-by: clinglai0517<laichangling@huawei.com> # message auto-generated for no-merge-commit merge: !9161 merge onnx-fix-0825 into master fix: migrate simple onnx parse params plugins Created-by: clinglai0517 Commit-by: clinglai0517 Merged-by: cann-robot Description: ## 描述 将一批 ONNX 插件的参数解析接口从 ParseParamsFn 迁移到 ParseParamsByOperatorFn,实现onnx插件和protobuf的解耦 涉及算子: - Mish - FastGelu - Size - Elu - LeakyRelu - HardMax 【实现说明】 - 无属性或仅默认属性的算子,直接切换新注册接口。 - 对 Elu、LeakyRelu、HardMax,从 ge::Operator 的 attribute JSON 中解析 ONNX 属性。 - 保留旧逻辑中的默认值行为。 - 对缺失或非数组形式的 attribute JSON 增加保护,避免无属性场景误返回 FAILED。 ## 关联的Issue Issue #5115 ## 测试 onnx插件ut编译、执行通过 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!9161 | 2 months ago | |
refactor: 为公共op_api头文件增加NN后缀 Co-authored-by: clinglai0517<laichangling@huawei.com> # message auto-generated for no-merge-commit merge: !10791 merge refactor/nn-suffix-common-headers into master refactor: 为公共op_api头文件增加NN后缀 Created-by: clinglai0517 Commit-by: clinglai0517 Merged-by: cann-robot Description: ## 描述 ops-nn 的 common/inc/op_api 目录中仍有 level2_base.h 和 level2_base_caculation.h 两个通用名称。它们与其他算子仓的同名文件一起进入软件包时存在覆盖风险。 本 MR 是 ops-nn 分阶段迁移的第一阶段: - 新增完整实现头 level2_base_nn.h 和 level2_base_caculation_nn.h; - 保留原文件为轻量转发头,兼容尚未迁移的存量 ACLNN 源文件和开发中的 MR; - 新计算头只依赖新基础头,避免新命名链路回退到旧文件名; - op_api_def_nn.h 已具有 NN 标识,本次不修改; - classify_rule.yaml 中没有这两个头文件的现有条目,也没有证据表明该文件负责软件包头文件筛选,因此本次不修改; - 先迁移 Mish、UniqueConsecutive、Silu、LogSigmoid 四个简单 ACLNN 接口作为样例。 本阶段不删除兼容头,也不声明已完成最终软件包去重。当前仍有 32 处 level2_base.h 和 5 处 level2_base_caculation.h 的旧引用,后续可按模块分批迁移;旧引用归零并验证实际制品清单后,再移除兼容头。 ## 关联的Issue 关联并在合入后关闭 #6008: https://gitcode.com/cann/ops-nn/issues/6008 ## 测试 已完成: - git diff --check; - 新旧完整实现内容等价性检查(仅头文件保护宏和内部 include 路径变化); - 两个旧文件均为 16 行轻量转发头; - 新命名头文件之间仅通过新文件名依赖; - 四个样例 ACLNN 文件均为单行 include 替换; - 使用 clang++ -M -MG 完成头文件依赖解析冒烟检查; - 统计剩余旧引用:level2_base.h 32 处、level2_base_caculation.h 5 处; - 8 个变更文件通过 OAT 合规检查; - origin 同名分支与本地提交一致。 ## 文档更新 无。 ## 类型标签 - [ ] 新功能(不影响现有功能的新特性) - [ ] Bug 修复(不影响现有功能的问题修复) - [ ] 重大变更(会导致现有功能无法正常工作的修复或功能) - [ ] 文档更新 - [ ] 性能优化 - [ ] 代码重构 - [x] 其他,请描述:头文件命名与兼容迁移 ## AI/Agent生成声明 - [ ] 完全由开发者手工编写 - [x] AI辅助编写 - [ ] AI生成 See merge request: cann/ops-nn!10791 | 1 month ago | |
修正 Mish Proto 功能摘要 Co-authored-by: KaranocaVe<karanocave@qq.com> # message auto-generated for no-merge-commit merge: !12214 merge luna/2026-10-15-ops-nn-mish-proto-brief-function-doc-01 into master 修正 Mish Proto 功能摘要 Created-by: KaranocaVe Commit-by: KaranocaVe Merged-by: cann-robot Description: # 修正 Mish Proto 功能摘要 ## 问题 Mish 的 Proto 摘要误称算子逐元素计算 tanh(x),与算子实际定义不符,容易误导图模式接口使用者。 ## 修改 将摘要改为 Mish 激活函数,并补充 x * tanh(softplus(x)) 公式;不改变算子输入输出或运行逻辑。 ## 验证 - 静态对照:Proto 原摘要写作逐元素 tanh(x);README 公式、Arch35 kernel 的 MishCustom 计算和 torch.nn.Mish() golden 均确认实际算子为 Mish,即 x * tanh(softplus(x))。 关联 Issue: https://gitcode.com/cann/ops-nn/issues/6847 See merge request: cann/ops-nn!12214 | 23 days ago | |
feat: 增加 ascend350 平台支持(25 个激活/量化算子)并重构 SocVersion 判断为 NpuArch Co-authored-by: wenqi_wu<wenqiwu0628@163.com> # message auto-generated for no-merge-commit merge: !9834 merge support-ascend350-activation-ops into master feat: 增加 ascend350 平台支持(25 个激活/量化算子)并重构 SocVersion 判断为 NpuArch Created-by: wenqi_wu Commit-by: wenqi_wu Merged-by: cann-robot Description: ## 描述 为以下 25 个算子增加 ascend350(arch35)平台支持,并将 7 个 aclnn 接口的 SocVersion 判断重构为 NpuArch 判断。 **算子列表(ascend350 支持,25 个):** - 量化类:AscendQuant / AscendAntiQuant / Quantize(quant) - Elu / EluGrad / EluGradV2(activation) - FastGelu / FastGeluGrad - Gelu / GeluGrad / GeluV2 / GeluGradV2 - ReluGrad / ReluGradV2 / ReluV2 - LeakyReluGrad - SigmoidGrad / SiluGrad - Swish / SwishGrad - HardtanhGrad - Mish / MishGrad - LogSigmoid / LogSigmoidGrad 注:LeakyRelu 的 ascend350 支持已由上游先行合入,本 PR 不含其重复改动。 **改动内容:** 1. 算子 CMakeLists.txt:SUPPORT_COMPUTE_UNIT 追加 ascend350,SUPPORT_TILING_DIR 追加对应 arch35; 2. op_host/*_def.cpp:为每个算子追加 this->AICore().AddConfig("ascend350", ...); 3. 新增 op_host/config/ascend350/*_binary.json 二进制配置文件; 4. scripts/kernel/binary_config/ascendc_config.json:为上述算子增加 ascend350 的 compute_units 与 compile_options(AscendAntiQuant 上游本无条目,走默认编译选项); 5. op_api 中 SocVersion → NpuArch 重构(7 处): - aclnn_rrelu_with_noise.cpp:GenerateUniformRandom 中平台判断改为 GetCurNpuArch() == NpuArch::DAV_2201(语义等价,910B/910_93 均对应 DAV_2201); - aclnn_sigmoid_backward.cpp / aclnn_swish_backward.cpp / aclnn_gelu_v2.cpp:CheckSocVersionIsSupportBf16 改为 curArch == NpuArch::DAV_2201 || IsRegbase(curArch); - aclnn_sigmoid.cpp:CheckSocVersionIsSupportBf16 与 GetSelfRefDtypeList 改为 curArch == NpuArch::DAV_2201 || IsRegbase(curArch); - aclnn_binary_cross_entropy_with_logits_target_backward.cpp:GetDtypeSupportList 改为 NpuArch 判断; - aclnn_logsigmoid_backward.cpp:GetInputDtypeSupportList / GetOutputDtypeSupportList 改为 NpuArch 判断。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5538 ## 测试 <!--TODO--> ## 文档更新 无需更新文档 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其它(请说明) ## AI/Agent辅助编译 - [x] AI辅助编写 See merge request: cann/ops-nn!9834 | 1 month ago | |
MicroAPI namespace to Reg for arch35 kernels Co-authored-by: gcw_DS4cmz2b<1312925094@qq.com> # message auto-generated for no-merge-commit merge: !9267 merge rename into master MicroAPI namespace to Reg for arch35 kernels Created-by: gcw_DS4cmz2b Commit-by: gcw_DS4cmz2b Merged-by: cann-robot Description: ## 描述 修改了index,activation,matmul,conv,foreach,optim,experimental,vfusion,hash这几个文件夹内的命名空间,将MicroAPI-->Reg ## 关联的Issue [多个文件夹内的算子命名空间使用的MicroAPI,应改为Reg](https://gitcode.com/cann/ops-nn/issues/5218) ## 测试 验证方法 严格按四步流程,逐算子验证: 1. Step 1:编译原始代码,保存 baseline binary .o 文件 MD5 2. Step 2:执行 MicroAPI → Reg 替换 3. Step 3:编译替换后代码,保存 after binary .o 文件 MD5 4. Step 4:对比 A_before.md5 与 B_after.md5 平台:ascend950,编译参数:--soc=ascend950 --ops=<op> -j16 验证替换前后 binary 产物 MD5 完全一致。 冒烟,代码审查均通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!9267 | 2 months ago | |
fix: migrate simple onnx parse params plugins Co-authored-by: clinglai0517<laichangling@huawei.com> # message auto-generated for no-merge-commit merge: !9161 merge onnx-fix-0825 into master fix: migrate simple onnx parse params plugins Created-by: clinglai0517 Commit-by: clinglai0517 Merged-by: cann-robot Description: ## 描述 将一批 ONNX 插件的参数解析接口从 ParseParamsFn 迁移到 ParseParamsByOperatorFn,实现onnx插件和protobuf的解耦 涉及算子: - Mish - FastGelu - Size - Elu - LeakyRelu - HardMax 【实现说明】 - 无属性或仅默认属性的算子,直接切换新注册接口。 - 对 Elu、LeakyRelu、HardMax,从 ge::Operator 的 attribute JSON 中解析 ONNX 属性。 - 保留旧逻辑中的默认值行为。 - 对缺失或非数组形式的 attribute JSON 增加保护,避免无属性场景误返回 FAILED。 ## 关联的Issue Issue #5115 ## 测试 onnx插件ut编译、执行通过 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!9161 | 2 months ago | |
feat: 增加 ascend350 平台支持(25 个激活/量化算子)并重构 SocVersion 判断为 NpuArch Co-authored-by: wenqi_wu<wenqiwu0628@163.com> # message auto-generated for no-merge-commit merge: !9834 merge support-ascend350-activation-ops into master feat: 增加 ascend350 平台支持(25 个激活/量化算子)并重构 SocVersion 判断为 NpuArch Created-by: wenqi_wu Commit-by: wenqi_wu Merged-by: cann-robot Description: ## 描述 为以下 25 个算子增加 ascend350(arch35)平台支持,并将 7 个 aclnn 接口的 SocVersion 判断重构为 NpuArch 判断。 **算子列表(ascend350 支持,25 个):** - 量化类:AscendQuant / AscendAntiQuant / Quantize(quant) - Elu / EluGrad / EluGradV2(activation) - FastGelu / FastGeluGrad - Gelu / GeluGrad / GeluV2 / GeluGradV2 - ReluGrad / ReluGradV2 / ReluV2 - LeakyReluGrad - SigmoidGrad / SiluGrad - Swish / SwishGrad - HardtanhGrad - Mish / MishGrad - LogSigmoid / LogSigmoidGrad 注:LeakyRelu 的 ascend350 支持已由上游先行合入,本 PR 不含其重复改动。 **改动内容:** 1. 算子 CMakeLists.txt:SUPPORT_COMPUTE_UNIT 追加 ascend350,SUPPORT_TILING_DIR 追加对应 arch35; 2. op_host/*_def.cpp:为每个算子追加 this->AICore().AddConfig("ascend350", ...); 3. 新增 op_host/config/ascend350/*_binary.json 二进制配置文件; 4. scripts/kernel/binary_config/ascendc_config.json:为上述算子增加 ascend350 的 compute_units 与 compile_options(AscendAntiQuant 上游本无条目,走默认编译选项); 5. op_api 中 SocVersion → NpuArch 重构(7 处): - aclnn_rrelu_with_noise.cpp:GenerateUniformRandom 中平台判断改为 GetCurNpuArch() == NpuArch::DAV_2201(语义等价,910B/910_93 均对应 DAV_2201); - aclnn_sigmoid_backward.cpp / aclnn_swish_backward.cpp / aclnn_gelu_v2.cpp:CheckSocVersionIsSupportBf16 改为 curArch == NpuArch::DAV_2201 || IsRegbase(curArch); - aclnn_sigmoid.cpp:CheckSocVersionIsSupportBf16 与 GetSelfRefDtypeList 改为 curArch == NpuArch::DAV_2201 || IsRegbase(curArch); - aclnn_binary_cross_entropy_with_logits_target_backward.cpp:GetDtypeSupportList 改为 NpuArch 判断; - aclnn_logsigmoid_backward.cpp:GetInputDtypeSupportList / GetOutputDtypeSupportList 改为 NpuArch 判断。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5538 ## 测试 <!--TODO--> ## 文档更新 无需更新文档 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其它(请说明) ## AI/Agent辅助编译 - [x] AI辅助编写 See merge request: cann/ops-nn!9834 | 1 month ago | |
修改产品名 Co-authored-by: fwx1169505<fengying27@h-partners.com> # message auto-generated for no-merge-commit merge: !11017 merge master into master 修改产品名 Created-by: fengying555682 Commit-by: fwx1169505 Merged-by: cann-robot Description: ## 描述 修改quant和activation文件夹中的md文档涉及的产品名称 ## 关联的Issue [#6056](https://gitcode.com/cann/ops-nn/issues/6056) ## 测试 已经完成文档语法和链接一致性检测 ## 文档更新 quant和activation文件夹中的md文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11017 | 1 month ago |
Mish
产品支持情况
| 产品 | 是否支持 |
|---|---|
| Ascend 950PR&950DT系列产品 | √ |
| Atlas A3系列产品 | √ |
| Atlas A2系列产品 | √ |
| Atlas 200I/500 A2推理产品 | × |
| Atlas推理系列产品 | × |
| Atlas训练系列产品 | √ |
功能说明
-
算子功能:一个自正则化的非单调神经网络激活函数。
-
计算公式:
outi=selfi×tanh(Softplus(selfi))out_i = self_i \times \tanh(\mathrm{Softplus}(\mathrm{self}_i)) outi=selfi×tanh(Softplus(selfi))
其中,Softplus(selfi)=ln(1+exp(selfi))\mathrm{Softplus}(self_i) = \ln{(1 + \exp{(self_i)})}Softplus(selfi)=ln(1+exp(selfi))
参数说明
| 参数名 | 输入/输出/属性 | 描述 | 数据类型 | 数据格式 |
|---|---|---|---|---|
| self | 输入 | 待进行Mish激活计算的入参,对应计算公式中的self。 | FLOAT、FLOAT16、BFLOAT16 | ND |
| out | 输出 | Mish激活计算的出参,对应计算公式中的out。 | FLOAT、FLOAT16、BFLOAT16 | ND |
- Atlas训练系列产品:数据类型支持FLOAT、FLOAT16。
约束说明
- 输入shape限制:输入维度不能超过8维,仅支持0-8维。
调用说明
| 调用方式 | 调用样例 | 说明 |
|---|---|---|
| aclnn调用 | test_aclnn_mish | 通过aclnnMish&aclnnInplaceMish接口方式调用Mish算子。 |
| aclnn调用 | test_aclnn_inplace_mish | 通过aclnnMish&aclnnInplaceMish接口方式调用Mish算子。 |
| 图模式 | - | 通过算子IR构图方式调用Mish算子。 |