| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
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 | 2 个月前 | |
TF plugin开源 Co-authored-by: sunchun<sunchun4@h-partners.com> # message auto-generated for no-merge-commit merge: !7516 merge nn into master TF plugin开源 Created-by: sunchun Commit-by: sunchun Merged-by: cann-robot Description: ## 描述 TF plugin开源修改 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4196 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7516 | 2 个月前 | |
legacy下线:整改NN算子图模式注册与日志规范 Co-authored-by: zhouxuan78<zhouxuan78@huawei.com> # message auto-generated for no-merge-commit merge: !8388 merge master into master legacy下线:整改NN算子图模式注册与日志规范 Created-by: zhouxuan78 Commit-by: zhouxuan78 Merged-by: cann-robot Description: ## 描述 本 PR 用于 ops-nn 仓 Legacy 下线整改,补齐部分算子的直调/图模式注册、InferShape / InferDataType 拆分、日志规范整改及必要的编译/预提交问题修复。 1. 补齐多个算子的 op_graph 侧 InferDataType / graph infer 注册文件,并同步补充对应 CMakeLists.txt: - 如 FastGeluV2、HardShrinkGrad、HardSigmoidGrad、HardSwish、HardSwishGrad、Selu、SeluGrad、Shrink、SoftplusGrad、SoftplusV2、SoftplusV2Grad、Softsign、SoftsignGrad、SmoothL1Loss、SoftMarginLoss、LpNormUpdateV2、ApplyFtrlV2、ApplyMomentum、ApplyRMSProp 等。 2. 调整部分算子的 op_host infer 文件: - 将 InferDataType 逻辑从 infershape 文件中拆分/迁移到 op_graph 侧; - 保留 InferShape 逻辑,避免 shape/type 混在同一处注册; - 收敛 IndexCheck infershape 日志,仅保留入口日志。 3. 补充 SoftMarginLoss 图模式原型: - 新增 loss/soft_margin_loss/op_graph/soft_margin_loss_proto.h; - 新增 OPS_PROTO_DEF_SOFTMARGINLOSS 去重宏,避免重复注册; - 补充 SoftMarginLoss 的 op_graph/CMakeLists.txt 和 graph infer 注册。 4. 日志整改: - 为 Arch35 tiling 入口补充统一入口日志; - 对本 PR 修改范围内新增/调整的外部输入错误日志,按规范使用 OP_LOGE_FOR_INVALID_* 系列上报接口; - 收敛部分过多的 tiling / infershape 日志打印,避免循环或冗余打印。 5. 回退/收敛不属于本次整改范围的 Softshrink 重命名相关改动: - Softshrink -> SoftShrink 的命名调整不放在本 PR 中,后续单独 PR 处理。 6. 修复 pre-commit 格式问题: - 按仓库 .clang-format 修复格式; - 不修改 .pre-commit-config.yaml。 影响范围 主要影响 activation、index、loss、norm、optim、quant、vfusion 等目录下 Legacy 下线相关算子的 op_graph 注册、InferDataType 拆分、tiling 入口日志和错误日志规范。 ## 变更内容 ## 关联的Issue ## 测试 ## 文档更新 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他:Legacy包下线整改 See merge request: cann/ops-nn!8388 | 27 天前 | |
legacy下线:整改NN算子图模式注册与日志规范 Co-authored-by: zhouxuan78<zhouxuan78@huawei.com> # message auto-generated for no-merge-commit merge: !8388 merge master into master legacy下线:整改NN算子图模式注册与日志规范 Created-by: zhouxuan78 Commit-by: zhouxuan78 Merged-by: cann-robot Description: ## 描述 本 PR 用于 ops-nn 仓 Legacy 下线整改,补齐部分算子的直调/图模式注册、InferShape / InferDataType 拆分、日志规范整改及必要的编译/预提交问题修复。 1. 补齐多个算子的 op_graph 侧 InferDataType / graph infer 注册文件,并同步补充对应 CMakeLists.txt: - 如 FastGeluV2、HardShrinkGrad、HardSigmoidGrad、HardSwish、HardSwishGrad、Selu、SeluGrad、Shrink、SoftplusGrad、SoftplusV2、SoftplusV2Grad、Softsign、SoftsignGrad、SmoothL1Loss、SoftMarginLoss、LpNormUpdateV2、ApplyFtrlV2、ApplyMomentum、ApplyRMSProp 等。 2. 调整部分算子的 op_host infer 文件: - 将 InferDataType 逻辑从 infershape 文件中拆分/迁移到 op_graph 侧; - 保留 InferShape 逻辑,避免 shape/type 混在同一处注册; - 收敛 IndexCheck infershape 日志,仅保留入口日志。 3. 补充 SoftMarginLoss 图模式原型: - 新增 loss/soft_margin_loss/op_graph/soft_margin_loss_proto.h; - 新增 OPS_PROTO_DEF_SOFTMARGINLOSS 去重宏,避免重复注册; - 补充 SoftMarginLoss 的 op_graph/CMakeLists.txt 和 graph infer 注册。 4. 日志整改: - 为 Arch35 tiling 入口补充统一入口日志; - 对本 PR 修改范围内新增/调整的外部输入错误日志,按规范使用 OP_LOGE_FOR_INVALID_* 系列上报接口; - 收敛部分过多的 tiling / infershape 日志打印,避免循环或冗余打印。 5. 回退/收敛不属于本次整改范围的 Softshrink 重命名相关改动: - Softshrink -> SoftShrink 的命名调整不放在本 PR 中,后续单独 PR 处理。 6. 修复 pre-commit 格式问题: - 按仓库 .clang-format 修复格式; - 不修改 .pre-commit-config.yaml。 影响范围 主要影响 activation、index、loss、norm、optim、quant、vfusion 等目录下 Legacy 下线相关算子的 op_graph 注册、InferDataType 拆分、tiling 入口日志和错误日志规范。 ## 变更内容 ## 关联的Issue ## 测试 ## 文档更新 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他:Legacy包下线整改 See merge request: cann/ops-nn!8388 | 27 天前 | |
fix(softsign):修复精度问题,修复空tensor问题 Co-authored-by: lianjieyu<yulianjie@huawei.com> # message auto-generated for no-merge-commit merge: !8479 merge fix_softsign into master fix(softsign):修复精度问题,修复空tensor问题 Created-by: lianjieyu Commit-by: lianjieyu Merged-by: cann-robot Description: ## 描述 修复 Ascend950 Softsign 的低精度计算和空 Tensor kernel 直调问题,使实现逻辑与 TensorFlow tf.nn.softsign 对齐。 ### 问题原因 1. 原 FP16/BF16 路径将输入提升到 FP32 后,在 FP32 中完成 abs(x) + 1 和除法,直到最终输出才回落到原 dtype,缺少 TensorFlow 低精度路径中的中间舍入。 2. 空 Tensor 的 blockNum 为 0,但 Kernel 仍进入 ElementwiseSch,导致无有效任务时停留在动态性能采集阶段。 ### 修改内容 - 新增 GraphSoftsignLowPrecision:FP16/BF16 在 abs(x) + 1 后显式窄化回输入 dtype,再拓宽进行除法,保留 TensorFlow 对应的舍入点。 - 新增 GraphSoftsignByDtype:FP32 继续使用原计算图,FP16/BF16 使用低精度对齐计算图。 - Host Tiling 与 Kernel 统一通过 dtype 选择相同 DAG,保证 Tiling 资源估算和 Kernel 执行图一致。 - Kernel 在 tilingData.baseTiling.blockNum == 0 时直接返回,避免空 Tensor 进入 Elementwise 调度。 本 PR 共修改 3 个文件,新增 44 行、删除 8 行;FP32 计算路径保持不变。 ## 关联的Issue 关联 Issue [#4673](https://gitcode.com/cann/ops-nn/issues/4673) ## 测试 - 构建验证: - bash build.sh --ops=softsign --soc=ascend950 --opkernel -j8 - bash build.sh --ops=softsign --soc=ascend950 --pkg -j8 - TTK kernel 直调,Golden 实际调用 TensorFlow 2.16.1 tf.nn.softsign;BF16 直接使用 tf.bfloat16 计算。 - 正式 500 条用例采用严格 --compare close:500/500 PASS,无失败、无跳过。 - FP32:167/167 PASS - FP16:167/167 PASS - BF16:166/166 PASS - 精度、内存越界和性能状态均为 500/500 PASS,逐元素精度均为 100%。 - 标量专项:FP32/FP16/BF16 3/3 PASS。 - 真空 Tensor (0,) 专项:FP32/FP16/BF16 3/3 PASS,输出 shape/dtype 保持不变,kernel 正常结束。 ## 文档更新 - 更新 softsign_dag.h 中 FP16/BF16 数据流和 TensorFlow 舍入语义说明。 - 无用户接口或公开 API 文档变更。 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!8479 | 1 个月前 | |
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 | 2 个月前 | |
修复 CMakeLists 中 aclnn_exclude配置。 Co-authored-by: ForestFrame<24011210883@stu.xidian.edu.cn> # message auto-generated for no-merge-commit merge: !7490 merge fix/aclnn-exclude into master 修复 CMakeLists 中 aclnn_exclude配置。 Created-by: ForestFrame Commit-by: ForestFrame Merged-by: cann-robot Description: ## 描述 修复 CMakeLists 中 aclnn_exclude配置。 ## 关联的Issue 关联Issue:#4086 [Bug-Report|缺陷反馈]: 算子softsign不应自动生成aclnn api。 ## 测试 已检查算子相关配置,确认修改后不会再自动生成aclnn api。暂未执行完整二级冒烟测试。 ## 文档更新 无文档更新。 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [ ] AI辅助编写 See merge request: cann/ops-nn!7490 | 2 个月前 | |
fix(docs): 修正 Softsign/ApplyCenteredRMSProp/BNInferGrad 产品支持表 Atlas 200I/500 A2 标记 Co-authored-by: lianjieyu<yulianjie@huawei.com> # message auto-generated for no-merge-commit merge: !9336 merge fix_doc into master fix(docs): 修正 Softsign/ApplyCenteredRMSProp/BNInferGrad 产品支持表 Atlas 200I/500 A2 标记 Created-by: lianjieyu Commit-by: lianjieyu Merged-by: cann-robot Description: ## 修复内容 修正 3 个算子 README.md「产品支持情况」表中 **Atlas 200I/500 A2 推理产品** 的支持标记错误(× → √): | 算子 | 文件 | 修改前 | 修改后 | |---|---|---|---| | Softsign | activation/softsign/README.md | × | √ | | ApplyCenteredRMSProp | optim/apply_centered_rms_prop/README.md | × | √ | | BNInferGrad | norm/bn_infer_grad/README.md | × | √ | ## 修复依据 以 canndev 仓 ini 为产品支持判据(Ascend 950PR/DT 按规则默认支持,其余系列以 ini 实际注册为准)。 在 canndev/ops/built-in/tbe/op_info_cfg/ai_core/ascend310b/aic-ascend310b-ops-info.ini 中检索到上述三算子均已注册: - [Softsign] input0.dtype=float16,float - [ApplyCenteredRMSProp] dynamicShapeSupport.flag=true - [BNInferGrad] compute.cost=10 「Atlas 200I/500 A2 推理产品」对应 Ascend 310B 系列(Ascend310B1/B2/B3/B4),即 ascend310b ini。因此三算子在该产品实际可用,README 应标记为 √。 ## 不在本次修改范围 - **SeluGrad**:ascend310b ini 中未注册 [SeluGrad],其 README「×」标记正确,保持不变。 - 其余产品行(950PR/DT、A3、A2、推理系列、训练系列)均与 ini 一致,无需改动。 ## 变更清单 - activation/softsign/README.md - optim/apply_centered_rms_prop/README.md - norm/bn_infer_grad/README.md Fixes #5244 See merge request: cann/ops-nn!9336 | 1 个月前 |
Softsign
产品支持情况
| 产品 | 是否支持 |
|---|---|
| Ascend 950PR/Ascend 950DT | √ |
| Atlas A3 训练系列产品/Atlas A3 推理系列产品 | √ |
| Atlas A2 训练系列产品/Atlas A2 推理系列产品 | √ |
| Atlas 200I/500 A2 推理产品 | √ |
| Atlas 推理系列产品 | √ |
| Atlas 训练系列产品 | √ |
功能说明
-
算子功能:完成 Softsign 激活函数计算,对输入张量的每个元素逐元素计算 softsign 值。
-
计算公式:
y=x1+∣x∣y = \frac{x}{1 + |x|} y=1+∣x∣x
其中 xxx 为输入张量,yyy 为输出张量,输出值域为 (−1,1)(-1, 1)(−1,1)。
-
数值特性:公式天然数值稳定,分母 1+∣x∣≥11 + |x| \geq 11+∣x∣≥1,无除零风险,无需 epsilon 保护。
参数说明
| 参数名 | 输入/输出/属性 | 描述 | 数据类型 | 数据格式 |
|---|---|---|---|---|
| x | 输入 | 公式中的输入 x,任意形状张量。 | FLOAT、FLOAT16、BFLOAT16 | ND |
| y | 输出 | 公式中的输出 y,shape 和 dtype 与输入 x 完全一致,值域 (-1, 1)。 | FLOAT、FLOAT16、BFLOAT16 | ND |
约束说明
- 输入维度限制:输入张量维度不超过 8 维。
- 数据类型限制:仅支持 FLOAT、FLOAT16、BFLOAT16,不支持 DOUBLE。
- FP16/BF16 精度说明:FP16 和 BF16 类型在内部通过 Cast 到 FP32 进行中间计算,再 Cast 回原始类型,以保证计算精度。
调用说明
| 调用方式 | 调用样例 | 说明 |
|---|---|---|
| 图模式调用 | test_geir_softsign | 通过[算子IR](./op_graph/softsign_proto.h)构图方式调用Softsign算子。 |