| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
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 个月前 | |
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 | 3 个月前 | |
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 | 2 个月前 | |
适配350 Co-authored-by: Hana77<wangtianqi27@huawei.com> # message auto-generated for no-merge-commit merge: !11579 merge master into master 适配350 Created-by: Hana77 Commit-by: Hana77 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 算子适配ascend350 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> [#6432](https://gitcode.com/cann/ops-nn/issues/6432) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 二级冒烟 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11579 | 1 个月前 | |
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 | 2 个月前 | |
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 个月前 | |
适配350 Co-authored-by: Hana77<wangtianqi27@huawei.com> # message auto-generated for no-merge-commit merge: !11579 merge master into master 适配350 Created-by: Hana77 Commit-by: Hana77 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 算子适配ascend350 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> [#6432](https://gitcode.com/cann/ops-nn/issues/6432) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 二级冒烟 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11579 | 1 个月前 | |
docs: 修复算子 README 中的空格格式 Co-authored-by: aqt666<2016141505@qq.com> # message auto-generated for no-merge-commit merge: !10836 merge codex/readme-spacing-pr into master docs: 修复算子 README 中的空格格式 Created-by: aqt666 Commit-by: aqt666 Merged-by: cann-robot Description: 修复两个算子 README 中中文、英文和数字之间的空格格式问题。 关联 issue:#6032 See merge request: cann/ops-nn!10836 | 1 个月前 |
Softsign
产品支持情况
| 产品 | 是否支持 |
|---|---|
| Ascend 950PR&950DT系列产品 | √ |
| Atlas A3系列产品 | √ |
| 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维,支持0维标量输入。
- 数据类型限制:仅支持FLOAT、FLOAT16、BFLOAT16,不支持DOUBLE。
- FP16/BF16精度说明:FP16和BF16类型在内部通过Cast到FP32进行中间计算,再Cast回原始类型,以保证计算精度。
调用说明
| 调用方式 | 调用样例 | 说明 |
|---|---|---|
| 图模式调用 | test_geir_softsign | 通过[算子IR](./op_graph/softsign_proto.h)构图方式调用Softsign算子。 |