| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
Migrate index AICPU shape operators Co-authored-by: jialimin1<jialimin1@huawei.com> # message auto-generated for no-merge-commit merge: !7519 merge migrate-index-to-addr-aicpu into master Migrate index AICPU shape operators Created-by: jialimin1 Commit-by: jialimin1 Merged-by: cann-robot Description: ## 描述 将三个 AICPU shape 类算子从源仓迁移至 ops-nn 仓库,统一算子仓管理,共新增 43 个文件,并同步更新算子清单 docs/zh/op_list.md: 1. **IndexToAddr**:根据块索引、原始矩阵 shape、块 shape 和基地址信息,生成块内每一行对应的地址表。输入 base_addr(shape=[2])与块索引 x(shape=[2]),输出地址表 shape 为 [block_size[0], 4],每行 [rank_id, base_addr[0]+bias_addr, base_addr[1]+bias_addr, row_size*dtype_size],支持 INT64/UINT64。 2. **NonZeroWithValueShape**:根据 NonZeroWithValue 的 count 输入更新 value/index 输出 shape,分别置为 [count[0]] 与 [2, count[0]]。 3. **NonZeroWithValueShapeV2**:V2 版本,在 V1 基础上新增 GetInputTypeAndCheck 显式校验 index/count 必须为 INT32,输出语义与 V1 一致。 每个算子按 ops-nn 标准目录结构组织,包含 op_graph(IR 原型)、op_host(infershape)、op_kernel_aicpu(kernel 实现与 REGISTER_CPU_KERNEL 注册)、examples(图模式调用样例)、tests/ut(单元测试)、各级 CMakeLists.txt 与 README.md。 ## 关联的Issue #4163 ## 测试 根据代码变更,测试场景如下: 1. **编译构建测试** - 对三个算子(IndexToAddr / NonZeroWithValueShape / NonZeroWithValueShapeV2)分别执行各级 CMakeLists.txt 配置与编译,验证新增 CMake 配置变更正确,算子可正常构建。 2. **算子加载/注册验证** - 验证 REGISTER_CPU_KERNEL 注册成功,三个算子可被框架正确识别与加载。 3. **InferShape 验证** - 验证 op_host/*_infershape.cpp 输出 shape 推导:IndexToAddr 输出 [block_size[0], 4];NonZeroWithValueShape[V2] 输出 out_value=[count]、out_index=[2, count]。 4. **单元测试** - 运行 tests/ut/op_kernel_aicpu/test_*.cpp,覆盖 INT64/UINT64(IndexToAddr)、INT32 校验(NonZeroWithValueShapeV2)等数据类型分支与参数校验逻辑。 5. **图模式接口调用验证** - 运行 examples/test_geir_*.cpp,通过算子 IR 构图方式调用三个算子,验证端到端功能与输出正确性。 6. **参数校验测试** - 覆盖 Check() 中的边界场景:base_addr/x 数据类型一致且 shape=[2]、ori_shape/block_size 为 2 元素、block_size[0]*4 <= output.NumElements()、storage mode 仅支持 Matrix、V2 版本 index/count 必须为 DT_INT32、count 至少 1 个元素等。 7. **算子清单登记验证** - 确认 docs/zh/op_list.md 中三个算子条目正确显示,分类为 index,类型为 AI CPU,且 README 链接可达。 ## 文档更新 - 新增 index/index_to_addr/README.md、index/non_zero_with_value_shape/README.md、index/non_zero_with_value_shape_v2/README.md:产品支持情况、功能说明、参数说明、约束说明与调用说明。 - 更新 docs/zh/op_list.md:登记 IndexToAddr、NonZeroWithValueShape、NonZeroWithValueShapeV2 三个算子条目。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7519 | 2 个月前 | |
ops-nn仓算子添加隔离宏 Co-authored-by: ayuemoon<15802951036@163.com> # message auto-generated for no-merge-commit merge: !9655 merge proto_reg_op_modify into master ops-nn仓算子添加隔离宏 Created-by: ayuemoon Commit-by: ayuemoon Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 为 IndexToAddr、NonZeroWithValueShape、NonZeroWithValueShapeV2、SparseFillEmptyRows、SparseSegmentSum 算子添加隔离宏,防止原型重复定义。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> 无 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 无 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!9655 | 1 个月前 | |
feat(aicpu): enable constant folding for migrated ops Co-authored-by: hid29204727<wangboyu20@huawei.com> # message auto-generated for no-merge-commit merge: !9280 merge codex/aicpu-const-folding into master feat(aicpu): enable constant folding for migrated ops Created-by: hid29204727 Commit-by: hid29204727 Merged-by: cann-robot Description: ## 描述 补充 ops-nn 仓 AICPU host 常量折叠注册通路,并为当前已标记 OPEN_OPS_FLAG 的 18 个迁移算子统一开启常量折叠支持。 主要改动: - 新增仓级 OPS_NN_REGISTER_CPU_KERNELV2 注册包装宏,host 构建优先注册 V2,device/custom/UT 保持 V1 回退。 - 为 add_modules_sources 和 add_all_modules_sources 增加 HOSTCPU 参数及 host OBJECT 收集逻辑。 - 为 18 个 OPEN_OPS_FLAG 算子补充 HOSTCPU TRUE、注册头文件和 V2 注册。 - host OBJECT 汇入 libopconstant_folding_nn.so。 ## 关联的Issue 无。 ## 测试 已完成以下静态验证: - git diff --check 通过。 - 18 个 OPEN_OPS_FLAG 算子均具备 HOSTCPU TRUE。 - 18 个算子均使用 OPS_NN_REGISTER_CPU_KERNELV2,无直接 V1 注册残留。 - 注册头文件、host 编译宏和仓级 so 收集通路检查通过。 当前 Windows 环境缺少 CANN、NPU、CMake 和远端构建桥,未执行 bash build.sh --pkg -j16;完整打包构建及常量折叠功能验证待 CANN Linux 环境/CI 完成。 ## 文档更新 无仓内文档变更。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!9280 | 25 天前 | |
feat(aicpu): enable constant folding for migrated ops Co-authored-by: hid29204727<wangboyu20@huawei.com> # message auto-generated for no-merge-commit merge: !9280 merge codex/aicpu-const-folding into master feat(aicpu): enable constant folding for migrated ops Created-by: hid29204727 Commit-by: hid29204727 Merged-by: cann-robot Description: ## 描述 补充 ops-nn 仓 AICPU host 常量折叠注册通路,并为当前已标记 OPEN_OPS_FLAG 的 18 个迁移算子统一开启常量折叠支持。 主要改动: - 新增仓级 OPS_NN_REGISTER_CPU_KERNELV2 注册包装宏,host 构建优先注册 V2,device/custom/UT 保持 V1 回退。 - 为 add_modules_sources 和 add_all_modules_sources 增加 HOSTCPU 参数及 host OBJECT 收集逻辑。 - 为 18 个 OPEN_OPS_FLAG 算子补充 HOSTCPU TRUE、注册头文件和 V2 注册。 - host OBJECT 汇入 libopconstant_folding_nn.so。 ## 关联的Issue 无。 ## 测试 已完成以下静态验证: - git diff --check 通过。 - 18 个 OPEN_OPS_FLAG 算子均具备 HOSTCPU TRUE。 - 18 个算子均使用 OPS_NN_REGISTER_CPU_KERNELV2,无直接 V1 注册残留。 - 注册头文件、host 编译宏和仓级 so 收集通路检查通过。 当前 Windows 环境缺少 CANN、NPU、CMake 和远端构建桥,未执行 bash build.sh --pkg -j16;完整打包构建及常量折叠功能验证待 CANN Linux 环境/CI 完成。 ## 文档更新 无仓内文档变更。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!9280 | 25 天前 | |
Migrate index AICPU shape operators Co-authored-by: jialimin1<jialimin1@huawei.com> # message auto-generated for no-merge-commit merge: !7519 merge migrate-index-to-addr-aicpu into master Migrate index AICPU shape operators Created-by: jialimin1 Commit-by: jialimin1 Merged-by: cann-robot Description: ## 描述 将三个 AICPU shape 类算子从源仓迁移至 ops-nn 仓库,统一算子仓管理,共新增 43 个文件,并同步更新算子清单 docs/zh/op_list.md: 1. **IndexToAddr**:根据块索引、原始矩阵 shape、块 shape 和基地址信息,生成块内每一行对应的地址表。输入 base_addr(shape=[2])与块索引 x(shape=[2]),输出地址表 shape 为 [block_size[0], 4],每行 [rank_id, base_addr[0]+bias_addr, base_addr[1]+bias_addr, row_size*dtype_size],支持 INT64/UINT64。 2. **NonZeroWithValueShape**:根据 NonZeroWithValue 的 count 输入更新 value/index 输出 shape,分别置为 [count[0]] 与 [2, count[0]]。 3. **NonZeroWithValueShapeV2**:V2 版本,在 V1 基础上新增 GetInputTypeAndCheck 显式校验 index/count 必须为 INT32,输出语义与 V1 一致。 每个算子按 ops-nn 标准目录结构组织,包含 op_graph(IR 原型)、op_host(infershape)、op_kernel_aicpu(kernel 实现与 REGISTER_CPU_KERNEL 注册)、examples(图模式调用样例)、tests/ut(单元测试)、各级 CMakeLists.txt 与 README.md。 ## 关联的Issue #4163 ## 测试 根据代码变更,测试场景如下: 1. **编译构建测试** - 对三个算子(IndexToAddr / NonZeroWithValueShape / NonZeroWithValueShapeV2)分别执行各级 CMakeLists.txt 配置与编译,验证新增 CMake 配置变更正确,算子可正常构建。 2. **算子加载/注册验证** - 验证 REGISTER_CPU_KERNEL 注册成功,三个算子可被框架正确识别与加载。 3. **InferShape 验证** - 验证 op_host/*_infershape.cpp 输出 shape 推导:IndexToAddr 输出 [block_size[0], 4];NonZeroWithValueShape[V2] 输出 out_value=[count]、out_index=[2, count]。 4. **单元测试** - 运行 tests/ut/op_kernel_aicpu/test_*.cpp,覆盖 INT64/UINT64(IndexToAddr)、INT32 校验(NonZeroWithValueShapeV2)等数据类型分支与参数校验逻辑。 5. **图模式接口调用验证** - 运行 examples/test_geir_*.cpp,通过算子 IR 构图方式调用三个算子,验证端到端功能与输出正确性。 6. **参数校验测试** - 覆盖 Check() 中的边界场景:base_addr/x 数据类型一致且 shape=[2]、ori_shape/block_size 为 2 元素、block_size[0]*4 <= output.NumElements()、storage mode 仅支持 Matrix、V2 版本 index/count 必须为 DT_INT32、count 至少 1 个元素等。 7. **算子清单登记验证** - 确认 docs/zh/op_list.md 中三个算子条目正确显示,分类为 index,类型为 AI CPU,且 README 链接可达。 ## 文档更新 - 新增 index/index_to_addr/README.md、index/non_zero_with_value_shape/README.md、index/non_zero_with_value_shape_v2/README.md:产品支持情况、功能说明、参数说明、约束说明与调用说明。 - 更新 docs/zh/op_list.md:登记 IndexToAddr、NonZeroWithValueShape、NonZeroWithValueShapeV2 三个算子条目。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7519 | 2 个月前 | |
Migrate index AICPU shape operators Co-authored-by: jialimin1<jialimin1@huawei.com> # message auto-generated for no-merge-commit merge: !7519 merge migrate-index-to-addr-aicpu into master Migrate index AICPU shape operators Created-by: jialimin1 Commit-by: jialimin1 Merged-by: cann-robot Description: ## 描述 将三个 AICPU shape 类算子从源仓迁移至 ops-nn 仓库,统一算子仓管理,共新增 43 个文件,并同步更新算子清单 docs/zh/op_list.md: 1. **IndexToAddr**:根据块索引、原始矩阵 shape、块 shape 和基地址信息,生成块内每一行对应的地址表。输入 base_addr(shape=[2])与块索引 x(shape=[2]),输出地址表 shape 为 [block_size[0], 4],每行 [rank_id, base_addr[0]+bias_addr, base_addr[1]+bias_addr, row_size*dtype_size],支持 INT64/UINT64。 2. **NonZeroWithValueShape**:根据 NonZeroWithValue 的 count 输入更新 value/index 输出 shape,分别置为 [count[0]] 与 [2, count[0]]。 3. **NonZeroWithValueShapeV2**:V2 版本,在 V1 基础上新增 GetInputTypeAndCheck 显式校验 index/count 必须为 INT32,输出语义与 V1 一致。 每个算子按 ops-nn 标准目录结构组织,包含 op_graph(IR 原型)、op_host(infershape)、op_kernel_aicpu(kernel 实现与 REGISTER_CPU_KERNEL 注册)、examples(图模式调用样例)、tests/ut(单元测试)、各级 CMakeLists.txt 与 README.md。 ## 关联的Issue #4163 ## 测试 根据代码变更,测试场景如下: 1. **编译构建测试** - 对三个算子(IndexToAddr / NonZeroWithValueShape / NonZeroWithValueShapeV2)分别执行各级 CMakeLists.txt 配置与编译,验证新增 CMake 配置变更正确,算子可正常构建。 2. **算子加载/注册验证** - 验证 REGISTER_CPU_KERNEL 注册成功,三个算子可被框架正确识别与加载。 3. **InferShape 验证** - 验证 op_host/*_infershape.cpp 输出 shape 推导:IndexToAddr 输出 [block_size[0], 4];NonZeroWithValueShape[V2] 输出 out_value=[count]、out_index=[2, count]。 4. **单元测试** - 运行 tests/ut/op_kernel_aicpu/test_*.cpp,覆盖 INT64/UINT64(IndexToAddr)、INT32 校验(NonZeroWithValueShapeV2)等数据类型分支与参数校验逻辑。 5. **图模式接口调用验证** - 运行 examples/test_geir_*.cpp,通过算子 IR 构图方式调用三个算子,验证端到端功能与输出正确性。 6. **参数校验测试** - 覆盖 Check() 中的边界场景:base_addr/x 数据类型一致且 shape=[2]、ori_shape/block_size 为 2 元素、block_size[0]*4 <= output.NumElements()、storage mode 仅支持 Matrix、V2 版本 index/count 必须为 DT_INT32、count 至少 1 个元素等。 7. **算子清单登记验证** - 确认 docs/zh/op_list.md 中三个算子条目正确显示,分类为 index,类型为 AI CPU,且 README 链接可达。 ## 文档更新 - 新增 index/index_to_addr/README.md、index/non_zero_with_value_shape/README.md、index/non_zero_with_value_shape_v2/README.md:产品支持情况、功能说明、参数说明、约束说明与调用说明。 - 更新 docs/zh/op_list.md:登记 IndexToAddr、NonZeroWithValueShape、NonZeroWithValueShapeV2 三个算子条目。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7519 | 2 个月前 | |
产品名称修改 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 | 14 天前 |
NonZeroWithValueShape
产品支持情况
| 产品 | 是否支持 |
|---|---|
| Ascend 950PR&950DT系列产品 | √ |
| Atlas A3系列产品 | √ |
| Atlas A2系列产品 | √ |
| Atlas 200I/500 A2推理产品 | × |
| Atlas推理系列产品 | √ |
| Atlas训练系列产品 | √ |
功能说明
- 算子功能:根据
NonZeroWithValue的count输入更新value和index输出shape。
参数说明
| 参数名 | 输入/输出 | 描述 | 数据类型 | 数据格式 |
|---|---|---|---|---|
value |
输入 | NonZeroWithValue的value输出。 |
DOUBLE、FLOAT、FLOAT16、INT8、UINT8、INT16、UINT16、INT32、UINT32、INT64、UINT64、BOOL | ND |
index |
输入 | NonZeroWithValue的index输出。 |
INT32 | ND |
count |
输入 | 非零元素数量。 | INT32 | ND |
out_value |
输出 | 更新shape后的value输出,shape为[count[0]]。 |
DOUBLE、FLOAT、FLOAT16、INT8、UINT8、INT16、UINT16、INT32、UINT32、INT64、UINT64、BOOL | ND |
out_index |
输出 | 更新shape后的index输出,shape为[2, count[0]]。 |
INT32 | ND |
约束说明
index和count的数据类型必须为INT32。count输入至少包含1个INT32元素。
调用说明
| 调用方式 | 调用样例 | 说明 |
|---|---|---|
| 图模式调用 | test_geir_non_zero_with_value_shape | 通过算子IR构图方式调用NonZeroWithValueShape算子。 |