| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
fix: update bucketize example and avg pool doc Co-authored-by: zhaowenrui666<zhaowenrui7@huawei.com> # message auto-generated for no-merge-commit merge: !7852 merge nnbugfix into master fix: update bucketize example and avg pool doc Created-by: zhaowenrui666 Commit-by: zhaowenrui666 Merged-by: cann-robot Description: ## 描述 本次修改包含两处迁仓检视整改: 1. 将 AvgPool1DAvgMatrix 的 proto 输入 format 说明补全为实现实际支持的 NCHW/NHWC/NC1HWC0,避免资料约束描述不完整。 2. 删除 Bucketize GEIR 示例中未使用的 kExpectedBucket 常量,清理冗余代码。 ## 关联的Issue 关联 Issue:https://gitcode.com/cann/ops-nn/issues/4264 ## 测试 - 执行 pre-commit run --files index/bucketize/examples/test_geir_bucketize.cpp pooling/avg_pool1d_avg_matrix/op_graph/avg_pool1d_avg_matrix_proto.h,结果通过。 - 修改 format 表达后,执行 pre-commit run --files pooling/avg_pool1d_avg_matrix/op_graph/avg_pool1d_avg_matrix_proto.h,结果通过。 - 执行 bash build.sh --pkg --ops=bucketize --vendor_name=bucketize -j8,自定义包构建通过。 - 执行 ./build_out/cann-ops-nn-bucketize_linux-aarch64.run --force,自定义包安装通过。 - 设置 ASCEND_CUSTOM_OPP_PATH=/home/developer/Ascend/cann-9.2.0/opp/vendors/bucketize_nn 后,执行 bash build.sh --run_example bucketize graph cust --vendor_name=bucketize,结果通过。 - 日志中确认自定义 AICPU 路径:出现 CUSTAICPUKernel、libnn_aicpu_kernels.so 和 InitAicpuTask node[bucketize]。 ## 文档更新 更新 pooling/avg_pool1d_avg_matrix/op_graph/avg_pool1d_avg_matrix_proto.h 中的 format 说明。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!7852 | 2 个月前 | |
Add Bucketize ONNX plugin Co-authored-by: jialimin1<jialimin1@huawei.com> # message auto-generated for no-merge-commit merge: !7535 merge feat/bucketize-onnx-plugin into master Add Bucketize ONNX plugin Created-by: jialimin1 Commit-by: jialimin1 Merged-by: cann-robot Description: ## 描述 为仓内已有的 Bucketize AICPU 算子新增 ONNX 框架适配 plugin,打通 ONNX 模型导入链路。新增 2 个文件: 1. index/bucketize/framework/bucketize_onnx_plugin.cpp: - ParseOnnxParamsBucketize:从 ONNX 节点 JSON 编码的 attribute 中解析 boundaries(floats 列表),通过 op_dest.SetAttr("boundaries", boundaries) 设置到目标算子;解析异常时打 OP_LOGE 并返回 FAILED。 - REGISTER_CUSTOM_OP("Bucketize"):FrameworkType(ONNX),OriginOpType 注册 ai.onnx::8..16::Bucketize 共 9 个 opset 版本,ParseParamsByOperatorFn(ParseOnnxParamsBucketize),ImplyType(ImplyType::AI_CPU) 复用已有 AICPU kernel。 2. index/bucketize/framework/CMakeLists.txt:调用 add_onnx_plugin_sources() 将 plugin 源码纳入构建。 ## 关联的Issue #4164 ## 测试 根据代码变更,测试场景如下: 1. **编译构建测试** - 执行 index/bucketize/framework/CMakeLists.txt 配置与编译,验证 add_onnx_plugin_sources() 正确将 bucketize_onnx_plugin.cpp 纳入构建,plugin 目标可正常生成。 2. **算子注册/加载验证** - 验证 REGISTER_CUSTOM_OP("Bucketize") 注册成功,ONNX 框架下 ai.onnx::8..16::Bucketize(共 9 个 opset 版本)均可被正确识别并映射到 CANN Bucketize 算子,ImplyType 为 AI_CPU。 3. **属性解析验证** - 构造含 boundaries(floats 列表)的 ONNX Bucketize 节点,验证 ParseOnnxParamsBucketize 正确解析 JSON attribute 并通过 SetAttr("boundaries", ...) 写入目标算子,boundaries 为 std::vector<float> 且与 ONNX 输入一致。 4. **异常容错测试** - 构造畸形 JSON 或缺失 boundaries 字段的 ONNX 节点,验证 try/catch 捕获异常、记录 OP_LOGE 日志并返回 FAILED,不导致进程崩溃。 5. **端到端功能验证** - 加载含 Bucketize 节点的 ONNX 模型(覆盖 opset 8 与 16 边界版本),验证模型能成功导入并调用已有 Bucketize AICPU kernel 完成计算,输出与 ONNX Runtime 对齐。 ## 文档更新 本次变更未涉及文档更新。index/bucketize/README.md 已存在,未做修改;如需补充 ONNX 调用说明可在后续 PR 中跟进。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7535 | 2 个月前 | |
feat: migrate bucketize and avg_pool1d_avg_matrix Co-authored-by: zhaowenrui666<zhaowenrui7@huawei.com> # message auto-generated for no-merge-commit merge: !6877 merge migrate-bucketize-avgpool1d into master feat: migrate bucketize and avg_pool1d_avg_matrix Created-by: zhaowenrui666 Commit-by: zhaowenrui666 Merged-by: cann-robot Description: ## Summary 迁移两个算子到 ops-nn 正确分类目录: - Bucketize -> index/bucketize - AvgPool1DAvgMatrix -> pooling/avg_pool1d_avg_matrix 本次按标准 AICPU 迁仓补齐: - AICPU kernel 与 *_aicpu_def.cpp - op_graph / op_host - UT - README - GE IR example ## Validation - bash ./build.sh --run_example bucketize graph --soc=ascend910_93 --noexec - example 运行成功,输出 bucketize 结果并打印 success - bash ./build.sh --run_example avg_pool1d_avg_matrix graph --soc=ascend910_93 --noexec - example 运行成功,输出 avg matrix 结果并打印 success - git diff --cached --check passed before commit See merge request: cann/ops-nn!6877 | 2 个月前 | |
feat: add bucketize runtime2 infershape Co-authored-by: ayuemoon<15802951036@163.com> # message auto-generated for no-merge-commit merge: !9798 merge bucketize-rt2-infershape into master feat: add bucketize runtime2 infershape Created-by: ayuemoon Commit-by: ayuemoon Merged-by: cann-robot Description: ## 描述 Bucketize 算子缺少 Runtime 2(RT2) InferShape 注册,导致图编译阶段无法正确完成输出 shape 和 dtype 推导。本 PR 为 Bucketize 补充 RT2 infershape 实现。 实现内容: - 使用 Ops::Base::InferShape4Elewise,保持输出 shape 与输入 shape 一致,并兼容动态维度。 - 根据 dtype 属性设置输出数据类型,支持 DT_INT32 和 DT_INT64。 - 接入 op_host 源码自动收集和 infershape UT 构建配置。 ## 关联的Issue 无。 ## 测试 在 Ascend950 环境执行 bash build.sh -u --ophost --ops=bucketize --soc=ascend950 -j8,并使用 nn_op_host_ut --gtest_filter=BucketizeInfershapeTest.* 运行 Bucketize InferShape UT,覆盖普通 Tensor、标量、空 Tensor、Unknown Rank、Unknown Dim 及 INT32/INT64 输出类型等场景,全部通过。 ## 文档更新 无。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!9798 | 24 天前 | |
fix(aicpu): 整改代码质量告警 Co-authored-by: zhaowenrui666<zhaowenrui7@huawei.com> # message auto-generated for no-merge-commit merge: !10899 merge fix-aicpu-codecheck-warnings into master fix(aicpu): 整改代码质量告警 Created-by: zhaowenrui666 Commit-by: zhaowenrui666 Merged-by: cann-robot Description: ## 描述 整改 SoftmaxV2、Bucketize 和 ReverseSequence AICPU 实现中的代码质量告警: - 为并行 lambda 显式列出捕获变量,移除默认引用捕获。 - 将 void* 到目标类型指针的转换由 reinterpret_cast 调整为 static_cast,并移除不必要的 void* 转换。 - 为派生类析构函数补充正确的 override 声明。 - 不改变算子功能语义。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/6076 ## 测试 - cmake --build build --target aicpu_kernels -j8:通过,成功生成 libnn_aicpu_kernels.so。 - 对本次修改文件执行 pre-commit run --files ...:全部通过,包括 clang-format、codespell 和 OAT 检查。 - git diff --check:通过。 ## 文档更新 无文档变更。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:AICPU 代码质量告警整改 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!10899 | 13 天前 | |
feat: add bucketize runtime2 infershape Co-authored-by: ayuemoon<15802951036@163.com> # message auto-generated for no-merge-commit merge: !9798 merge bucketize-rt2-infershape into master feat: add bucketize runtime2 infershape Created-by: ayuemoon Commit-by: ayuemoon Merged-by: cann-robot Description: ## 描述 Bucketize 算子缺少 Runtime 2(RT2) InferShape 注册,导致图编译阶段无法正确完成输出 shape 和 dtype 推导。本 PR 为 Bucketize 补充 RT2 infershape 实现。 实现内容: - 使用 Ops::Base::InferShape4Elewise,保持输出 shape 与输入 shape 一致,并兼容动态维度。 - 根据 dtype 属性设置输出数据类型,支持 DT_INT32 和 DT_INT64。 - 接入 op_host 源码自动收集和 infershape UT 构建配置。 ## 关联的Issue 无。 ## 测试 在 Ascend950 环境执行 bash build.sh -u --ophost --ops=bucketize --soc=ascend950 -j8,并使用 nn_op_host_ut --gtest_filter=BucketizeInfershapeTest.* 运行 Bucketize InferShape UT,覆盖普通 Tensor、标量、空 Tensor、Unknown Rank、Unknown Dim 及 INT32/INT64 输出类型等场景,全部通过。 ## 文档更新 无。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!9798 | 24 天前 | |
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 | 16 天前 | |
feat: migrate bucketize and avg_pool1d_avg_matrix Co-authored-by: zhaowenrui666<zhaowenrui7@huawei.com> # message auto-generated for no-merge-commit merge: !6877 merge migrate-bucketize-avgpool1d into master feat: migrate bucketize and avg_pool1d_avg_matrix Created-by: zhaowenrui666 Commit-by: zhaowenrui666 Merged-by: cann-robot Description: ## Summary 迁移两个算子到 ops-nn 正确分类目录: - Bucketize -> index/bucketize - AvgPool1DAvgMatrix -> pooling/avg_pool1d_avg_matrix 本次按标准 AICPU 迁仓补齐: - AICPU kernel 与 *_aicpu_def.cpp - op_graph / op_host - UT - README - GE IR example ## Validation - bash ./build.sh --run_example bucketize graph --soc=ascend910_93 --noexec - example 运行成功,输出 bucketize 结果并打印 success - bash ./build.sh --run_example avg_pool1d_avg_matrix graph --soc=ascend910_93 --noexec - example 运行成功,输出 avg matrix 结果并打印 success - git diff --cached --check passed before commit See merge request: cann/ops-nn!6877 | 2 个月前 |
Bucketize
产品支持情况
| 产品 | 是否支持 |
|---|---|
| Ascend 950PR/Ascend 950DT | √ |
| Atlas A3 训练系列产品/Atlas A3 推理系列产品 | √ |
| Atlas A2 训练系列产品/Atlas A2 推理系列产品 | √ |
| Atlas 200I/500 A2 推理产品 | × |
| Atlas 推理系列产品 | √ |
| Atlas 训练系列产品 | √ |
功能说明
- 算子功能:根据属性
boundaries为输入张量中的每个元素计算所属区间下标。
参数说明
| 参数名 | 输入/输出/属性 | 描述 | 数据类型 | 数据格式 |
|---|---|---|---|---|
x |
输入 | 任意shape的待分桶输入张量。 | INT32、INT64、FLOAT、DOUBLE | ND |
boundaries |
属性 | 升序排列的分桶边界。 | ListFloat | - |
dtype |
属性 | 输出张量类型,支持INT32、INT64。默认INT32。 | TYPE | - |
right |
属性 | true表示右插入,false表示左插入。默认true。 |
BOOL | - |
y |
输出 | 与xshape相同的分桶结果。 |
INT32、INT64 | ND |
约束说明
boundaries必须是升序。- 输出shape与输入
x保持一致。
调用说明
| 调用方式 | 调用样例 | 说明 |
|---|---|---|
| 图模式调用 | test_geir_bucketize | 通过算子IR构图方式调用Bucketize算子。 |