| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
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 | 3 个月前 | |
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 个月前 | |
selu_grad、softsign算子支持Ascend950 ascendc实现 Co-authored-by: lianjieyu<yulianjie@huawei.com> # message auto-generated for no-merge-commit merge: !5767 merge selu_grad into master selu_grad、softsign算子支持Ascend950 ascendc实现 Created-by: lianjieyu Commit-by: lianjieyu Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> selu_grad、softsign算子支持Ascend950 ascendc实现 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/3154 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!5767 | 3 个月前 | |
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 个月前 | |
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 | 3 个月前 | |
修复 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 个月前 | |
selu_grad、softsign算子支持Ascend950 ascendc实现 Co-authored-by: lianjieyu<yulianjie@huawei.com> # message auto-generated for no-merge-commit merge: !5767 merge selu_grad into master selu_grad、softsign算子支持Ascend950 ascendc实现 Created-by: lianjieyu Commit-by: lianjieyu Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> selu_grad、softsign算子支持Ascend950 ascendc实现 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/3154 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!5767 | 3 个月前 |
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算子。 |