| Files | Last commit | Last update |
|---|---|---|
删除查看源码 Co-authored-by: y60124828<yanglou1@h-partners.com> # message auto-generated for no-merge-commit merge: !12004 merge master into master 删除查看源码 Created-by: yanglu-1 Commit-by: y60124828 Merged-by: cann-robot Description: ## 描述 删除查看源码 ## 关联的Issue 关联Issue [#6694](https://gitcode.com/cann/ops-nn/issues/6694) ## 测试 无需测试 ## 文档更新 删除文档中的查看源码链接 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!12004 | 28 days ago | |
修改aclnnNonzero.md、aclnnNonzeroV2.md示例代码问题 Co-authored-by: rsj007<renshuojian@huawei.com> # message auto-generated for no-merge-commit merge: !10607 merge doc_bug into master 修改aclnnNonzero.md、aclnnNonzeroV2.md示例代码问题 Created-by: rsj007 Commit-by: rsj007 Merged-by: cann-robot Description: ## 描述 修改aclnnNonzero.md、aclnnNonzeroV2.md示例代码问题 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5924 ## 测试 运行示例代码,冒烟 ## 文档更新 aclnnNonzero.md、aclnnNonzeroV2.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!10607 | 1 month ago | |
TF plugin 迁移5 Co-authored-by: sunchun<sunchun4@h-partners.com> # message auto-generated for no-merge-commit merge: !7711 merge nn5 into master TF plugin 迁移5 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!7711 | 3 months ago | |
nonzero support 960 Co-authored-by: biabu111<hebaojing1@huawei.com> # message auto-generated for no-merge-commit merge: !11536 merge master into master nonzero support 960 Created-by: biabu111 Commit-by: biabu111 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> nonzero 算子支持 ascend960 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue [#3624](https://gitcode.com/cann/ops-nn/issues/3624) https://gitcode.com/cann/ops-nn/issues/6855 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ST冒烟已测 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11536 | 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(non_zero): 适配 GE 图模式并补充 arch22 tiling UT Co-authored-by: xiafengkou<luojiangtao4@huawei.com> # message auto-generated for no-merge-commit merge: !12323 merge master into master fix(non_zero): 适配 GE 图模式并补充 arch22 tiling UT Created-by: xiafengkou Commit-by: xiafengkou Merged-by: cann-robot Description: ## 描述 修复 NonZero 算子(arch22 / A2、A3)在 GE 图模式(含 jit_compile=True 的整网训练默认路径)下的执行缺陷,并补齐图模式所需的 dtype 变体与 tiling 布局。 ### 改动原因 1. 图模式下 GE 的 NonZeroFusionPass 会将 NonZero 输出改写为 int32 + 后置 Cast,而 op_def / binary 仅声明 int64 输出变体,导致 FE 探测 op store 时被拒、静默回落内置 legacy 实现,tiling 布局错配产生错误结果。 2. 原 tiling 结构体约 200B,超出 GE JIT 路径对该算子的 128B 容量约束,执行期直接失败。 ### 改动方法 - **注册补齐**:non_zero_def.cpp 与 ascend910b/ascend910_93 的 non_zero_binary.json 同步新增 12 条变体(6 输入 dtype × int32/int64 输出),与内置 / arch35 对齐。 - **tiling 压缩**:将 tiling 结构体压缩为 15×int64 = 120B 以适配 128B 约束;删除冗余字段,transpose 改为 bit0=输出布局、bit1=输出 int32 位编码,xElemSize 用符号位编码 bf16。 - **kernel 适配**:实现 transpose 双布局直写、int32/int64 输出分支;WriteOutShape 恒定按 int64 协议写出 [0x80000002, dim0, dim1],与输出值位宽解耦。 ## 关联的Issue ## 测试 - **ATK 精度**:V1(aclnnNonzero)200/200 通过、V2(aclnnNonzeroV2)220/220 通过。 - **三模式矩阵回归**:eager / ge0(jit_compile=False)/ ge1 共 30/30 用例通过。 - **UT**:新增 tests/ut/op_host/arch22/test_non_zero_tiling.cpp,覆盖切核策略与 tiling 字段编码全路径。 ## 文档更新 本次改动不涉及文档更新。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [ ] AI辅助编写 See merge request: cann/ops-nn!12323 | 21 days ago | |
fix(non_zero): 适配 GE 图模式并补充 arch22 tiling UT Co-authored-by: xiafengkou<luojiangtao4@huawei.com> # message auto-generated for no-merge-commit merge: !12323 merge master into master fix(non_zero): 适配 GE 图模式并补充 arch22 tiling UT Created-by: xiafengkou Commit-by: xiafengkou Merged-by: cann-robot Description: ## 描述 修复 NonZero 算子(arch22 / A2、A3)在 GE 图模式(含 jit_compile=True 的整网训练默认路径)下的执行缺陷,并补齐图模式所需的 dtype 变体与 tiling 布局。 ### 改动原因 1. 图模式下 GE 的 NonZeroFusionPass 会将 NonZero 输出改写为 int32 + 后置 Cast,而 op_def / binary 仅声明 int64 输出变体,导致 FE 探测 op store 时被拒、静默回落内置 legacy 实现,tiling 布局错配产生错误结果。 2. 原 tiling 结构体约 200B,超出 GE JIT 路径对该算子的 128B 容量约束,执行期直接失败。 ### 改动方法 - **注册补齐**:non_zero_def.cpp 与 ascend910b/ascend910_93 的 non_zero_binary.json 同步新增 12 条变体(6 输入 dtype × int32/int64 输出),与内置 / arch35 对齐。 - **tiling 压缩**:将 tiling 结构体压缩为 15×int64 = 120B 以适配 128B 约束;删除冗余字段,transpose 改为 bit0=输出布局、bit1=输出 int32 位编码,xElemSize 用符号位编码 bf16。 - **kernel 适配**:实现 transpose 双布局直写、int32/int64 输出分支;WriteOutShape 恒定按 int64 协议写出 [0x80000002, dim0, dim1],与输出值位宽解耦。 ## 关联的Issue ## 测试 - **ATK 精度**:V1(aclnnNonzero)200/200 通过、V2(aclnnNonzeroV2)220/220 通过。 - **三模式矩阵回归**:eager / ge0(jit_compile=False)/ ge1 共 30/30 用例通过。 - **UT**:新增 tests/ut/op_host/arch22/test_non_zero_tiling.cpp,覆盖切核策略与 tiling 字段编码全路径。 ## 文档更新 本次改动不涉及文档更新。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [ ] AI辅助编写 See merge request: cann/ops-nn!12323 | 21 days ago | |
fix(non_zero): 适配 GE 图模式并补充 arch22 tiling UT Co-authored-by: xiafengkou<luojiangtao4@huawei.com> # message auto-generated for no-merge-commit merge: !12323 merge master into master fix(non_zero): 适配 GE 图模式并补充 arch22 tiling UT Created-by: xiafengkou Commit-by: xiafengkou Merged-by: cann-robot Description: ## 描述 修复 NonZero 算子(arch22 / A2、A3)在 GE 图模式(含 jit_compile=True 的整网训练默认路径)下的执行缺陷,并补齐图模式所需的 dtype 变体与 tiling 布局。 ### 改动原因 1. 图模式下 GE 的 NonZeroFusionPass 会将 NonZero 输出改写为 int32 + 后置 Cast,而 op_def / binary 仅声明 int64 输出变体,导致 FE 探测 op store 时被拒、静默回落内置 legacy 实现,tiling 布局错配产生错误结果。 2. 原 tiling 结构体约 200B,超出 GE JIT 路径对该算子的 128B 容量约束,执行期直接失败。 ### 改动方法 - **注册补齐**:non_zero_def.cpp 与 ascend910b/ascend910_93 的 non_zero_binary.json 同步新增 12 条变体(6 输入 dtype × int32/int64 输出),与内置 / arch35 对齐。 - **tiling 压缩**:将 tiling 结构体压缩为 15×int64 = 120B 以适配 128B 约束;删除冗余字段,transpose 改为 bit0=输出布局、bit1=输出 int32 位编码,xElemSize 用符号位编码 bf16。 - **kernel 适配**:实现 transpose 双布局直写、int32/int64 输出分支;WriteOutShape 恒定按 int64 协议写出 [0x80000002, dim0, dim1],与输出值位宽解耦。 ## 关联的Issue ## 测试 - **ATK 精度**:V1(aclnnNonzero)200/200 通过、V2(aclnnNonzeroV2)220/220 通过。 - **三模式矩阵回归**:eager / ge0(jit_compile=False)/ ge1 共 30/30 用例通过。 - **UT**:新增 tests/ut/op_host/arch22/test_non_zero_tiling.cpp,覆盖切核策略与 tiling 字段编码全路径。 ## 文档更新 本次改动不涉及文档更新。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [ ] AI辅助编写 See merge request: cann/ops-nn!12323 | 21 days ago | |
nonzero support 960 Co-authored-by: biabu111<hebaojing1@huawei.com> # message auto-generated for no-merge-commit merge: !11536 merge master into master nonzero support 960 Created-by: biabu111 Commit-by: biabu111 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> nonzero 算子支持 ascend960 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue [#3624](https://gitcode.com/cann/ops-nn/issues/3624) https://gitcode.com/cann/ops-nn/issues/6855 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ST冒烟已测 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11536 | 24 days ago | |
产品名称修改 Co-authored-by: y60124828<yanglou1@h-partners.com> # message auto-generated for no-merge-commit merge: !11292 merge master into master 产品名称修改 Created-by: yanglu-1 Commit-by: y60124828 Merged-by: cann-robot Description: ## 描述 产品名称修改 ## 关联的Issue 关联Issue [#6089](https://gitcode.com/cann/ops-nn/issues/6089) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11292 | 1 month ago |
NonZero
产品支持情况
| 产品 | 是否支持 |
|---|---|
| Ascend 950PR&950DT系列产品 | √ |
| Atlas A3系列产品 | × |
| Atlas A2系列产品 | × |
| Atlas 200I/500 A2推理产品 | × |
| Atlas推理系列产品 | × |
| Atlas训练系列产品 | × |
功能说明
算子功能:找出self中非零元素的位置,设self的维度为D,self中非零元素的个数为N,则返回out的shape为N * D,每一列表示一个非零元素的位置坐标。
参数说明
| 参数名 | 输入/输出/属性 | 描述 | 数据类型 | 数据格式 |
|---|---|---|---|---|
| x | 输入 | 表示待计算的目标张量,Device侧的aclTensor。 | FLOAT、FLOAT16、DOUBLE、INT32、INT64、INT16、INT8、UINT8、BOOL、BFLOAT16、UINT16、UINT32、UINT64。 | ND |
| y | 输出 | 计算输出,Device侧的aclTensor。 | INT64 | ND |
| transpose | 属性 | 标识输出是否需要转置。 | BOOL | ND |
- Atlas训练系列产品、Atlas推理系列产品、Atlas A2系列产品、Atlas A3系列产品:由于硬件资源限制,输出索引要求在int32精度范围内,所以输入的某一维度不能超过int32的表示范围。
约束说明
- 确定性计算:
- aclnnNonzero默认确定性实现。
- 接口的输出size需要按照最大的输出size申请(即全部非0的场景,实测输出size不能超过2G),同时该接口使用的workspace也比较大,需要关注是否超过device内存大小。
调用说明
| 调用方式 | 调用样例 | 说明 |
|---|---|---|
| aclnn调用 | test_aclnn_non_zero | 通过aclnnNonzero接口方式调用Nonzero算子。 |
| aclnn调用 | test_aclnn_non_zero_v2 | 通过aclnnNonzeroV2接口方式调用NonzeroV2算子。 |