| Files | Last commit | Last update |
|---|---|---|
[LeftShift] 新增 Ascend 950 / arch35 Ascend C 实现 Co-authored-by: gl_princekin<gelei10@huawei.com> # message auto-generated for no-merge-commit merge: !6684 merge master into master [LeftShift] 新增 Ascend 950 / arch35 Ascend C 实现 Created-by: gl_princekin Commit-by: gl_princekin Merged-by: cann-robot Description: ## 描述 LeftShift(按位左移)算子此前仅包含 aclnn 接口(AICPU 实现),缺少 Ascend C 原生实现。本 PR 新增 LeftShift 的 Ascend C 实现,使其在 Ascend 950 及 Atlas A3 系列(arch35 架构)产品上获得原生执行路径。 **主要改动:** - op_kernel/arch35/:新增 Ascend C kernel(DAG 节点 + 数据结构定义) - op_host/arch35/:新增 tiling 代码 - op_host/config/ascend950/、op_host/config/ascend350/:算子配置(JSON + simplified_key.ini) - op_host/:left_shift_def.cpp(算子定义)、left_shift_infershape.cpp(shape 推导) - op_graph/:left_shift_proto.h、left_shift_graph_infer.cpp - op_kernel_aicpu/:AICPU kernel 实现 - op_api/:aclnn 接口参数校验代码更新 - examples/:图模式调用示例 test_geir_left_shift.cpp - tests/:单元测试(op_api / op_host / tiling / infershape / ST) - README.md、docs/:产品支持表、广播说明文档 - common/inc/op_graph/op_math_proto_extend.h:移除 LeftShift 注册(迁移至独立 proto 文件) - math/right_shift/framework/bitshift_onnx_plugin.cpp:修复 proto 头文件引用 ## 关联的Issue - #3978 ## 测试 - op_api 单元测试:test_aclnn_left_shift.cpp、test_aclnn_left_shift_l0.cpp、test_aclnn_left_shifts.cpp - op_host 单元测试:test_left_shift_tiling.cpp(arch35)、test_left_shift_infershape.cpp - op_kernel_aicpu 单元测试:test_left_shift.cpp - ST 测试:tests/st/arch35/ttk_kernel_left_shift_st.csv ## 文档更新 - 更新了 math/left_shift/README.md(产品支持表、功能说明、参数说明、约束说明、调用说明) - 更新了 math/left_shift/docs/aclnnLeftShift.md、aclnnLeftShifts.md(新增广播说明) ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6684 | 15 days ago | |
topk_fusion_pass Co-authored-by: jerry_gd<jerry.luo@huawei.com> # message auto-generated for no-merge-commit merge: !6207 merge TopKFusionPass into master topk_fusion_pass Created-by: jerry_gd Commit-by: jerry_gd Merged-by: cann-robot Description: ## 描述 本 PR 在 math/topk/op_graph/fusion_pass 下新增旧版 fe::TopKFusionPass 重构的 TopKFusionPass(新 PatternFusionPass 框架 + ES 接口),将 TopK/TopKV2 替换为 AICore 优化路径,并按 opp 算子信息库实况覆盖构建矩阵内全部芯片家族。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/4203 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> - 二级冒烟通过 - 相关topk的geir用例验证通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6207 | 11 days ago | |
fe: 融合 pass 打桩注册,编入 libopgraph_math.so Co-authored-by: yuyuanfeng<yuyuanfeng1@huawei.com> # message auto-generated for no-merge-commit merge: !5140 merge task4-stubs into master fe: 融合 pass 打桩注册,编入 libopgraph_math.so Created-by: yuyuanfeng Commit-by: yuyuanfeng Merged-by: cann-robot Description: ## 描述 桩声明 GE fe 融合 pass 注册接口(GraphFusionPassType 枚举、PassAttr、FusionPassRegistry、FusionPassRegistrar、STUB_REG_PASS),新增 common/src/op_graph/fusion_pass_common.cpp 登记 9 个有 canndev 对应物的 pass 名字,编入 libopgraph_math.so;仅 ascend950 且 ge_compiler >= 9.0.0 时生效。 作用:删掉 canndev 后 fe 表为空,这 9 个 pass 的融合会全部丢失(fusable-only 算子会在引擎选型阶段报 "Cannot find engine")。桩用名字占住 fe 表,fe 调度器才能按名字桥接到 math 侧实现。 未登记的 3 个: - CastlikeFusionPass、HistogramFusionPass:math 实现 Stage 为 kAfterInferShape,不在 kCompatibleInherited 表里,登记后 fe 查不到实现会报 "pattern fusion is nullptr" - Globalavgpoolpass:本次不登记 补充说明:DropOutV3SplitFusionPass 已登记但当前不生效——不在 OPP 白名单 support_fusion_pass.json 的 3510(ascend950) 名单内,fe 会 force close 跳过;待 OPP 侧补名单后生效,故保留登记。 ## 关联的Issue 关联 Issue #3450:[Requirement|需求建议]: FE 融合 pass 打桩注册,编入 libopgraph_math.so https://gitcode.com/cann/ops-math/issues/3450 ## 测试 - 编译:ascend950 配置下 fusion_pass_common.cpp 编译通过,libopgraph_math.so 链接通过 - 符号:桩引用的 FusionPassRegistrar 未定义符号与 libregister.so 导出的逐字符一致(_GLIBCXX_USE_CXX11_ABI=0) - 加载:ldd 依赖全部可解析,dlopen libopgraph_math.so 成功,静态初始化未崩溃 - 冒烟:已验证通过 ## 文档更新 无 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5140 | 1 month ago | |
fix: ONNX插件解析零值属性异常 Co-authored-by: clinglai0517<laichangling@huawei.com> # message auto-generated for no-merge-commit merge: !5896 merge fix/onnx-zero-attr-parsing into master fix: ONNX插件解析零值属性异常 Created-by: clinglai0517 Commit-by: clinglai0517 Merged-by: cann-robot Description: ## 描述 GE 序列化 ONNX 算子属性为 JSON 时,会省略值为 0 的标量 int 字段 "i"。部分 ops-math 插件以 attr.contains("i") 判断属性是否存在,导致显式零值被错误回退到算子默认值或误判为必需属性缺失。 本次修改: - 按属性 name 判断属性是否存在;i 字段缺失时按 protobuf 标量默认值 0 处理。 - 修复 Correlation、ReverseSequence、NPUOneHot 的零值属性解析。 - 完善 3 个插件的 framework UT,覆盖显式零值、属性缺省、正常属性及异常 JSON 等场景。 ## 关联的Issue Closes #3270 https://gitcode.com/cann/ops-math/issues/3270 ## 测试 - ONNX 插件构建:bash build.sh --onnxplugin -j16,通过。 - op_host UT 构建:bash build.sh -u --ophost --noexec --ops=correlation,reverse_sequence,one_hot -j64,通过。 - 专项 UT:Correlation、ReverseSequence、OneHotD 共 22 个用例,全部 PASSED。 - pre-commit:trailing whitespace、EOF、merge conflict、private key、clang-format、codespell、OAT 全部通过。 - 验证环境:Ascend 910B3 / CANN 9.0.0。 ## 文档更新 不涉及。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-math!5896 | 1 month ago | |
fe: 融合 pass 打桩注册,编入 libopgraph_math.so Co-authored-by: yuyuanfeng<yuyuanfeng1@huawei.com> # message auto-generated for no-merge-commit merge: !5140 merge task4-stubs into master fe: 融合 pass 打桩注册,编入 libopgraph_math.so Created-by: yuyuanfeng Commit-by: yuyuanfeng Merged-by: cann-robot Description: ## 描述 桩声明 GE fe 融合 pass 注册接口(GraphFusionPassType 枚举、PassAttr、FusionPassRegistry、FusionPassRegistrar、STUB_REG_PASS),新增 common/src/op_graph/fusion_pass_common.cpp 登记 9 个有 canndev 对应物的 pass 名字,编入 libopgraph_math.so;仅 ascend950 且 ge_compiler >= 9.0.0 时生效。 作用:删掉 canndev 后 fe 表为空,这 9 个 pass 的融合会全部丢失(fusable-only 算子会在引擎选型阶段报 "Cannot find engine")。桩用名字占住 fe 表,fe 调度器才能按名字桥接到 math 侧实现。 未登记的 3 个: - CastlikeFusionPass、HistogramFusionPass:math 实现 Stage 为 kAfterInferShape,不在 kCompatibleInherited 表里,登记后 fe 查不到实现会报 "pattern fusion is nullptr" - Globalavgpoolpass:本次不登记 补充说明:DropOutV3SplitFusionPass 已登记但当前不生效——不在 OPP 白名单 support_fusion_pass.json 的 3510(ascend950) 名单内,fe 会 force close 跳过;待 OPP 侧补名单后生效,故保留登记。 ## 关联的Issue 关联 Issue #3450:[Requirement|需求建议]: FE 融合 pass 打桩注册,编入 libopgraph_math.so https://gitcode.com/cann/ops-math/issues/3450 ## 测试 - 编译:ascend950 配置下 fusion_pass_common.cpp 编译通过,libopgraph_math.so 链接通过 - 符号:桩引用的 FusionPassRegistrar 未定义符号与 libregister.so 导出的逐字符一致(_GLIBCXX_USE_CXX11_ABI=0) - 加载:ldd 依赖全部可解析,dlopen libopgraph_math.so 成功,静态初始化未崩溃 - 冒烟:已验证通过 ## 文档更新 无 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5140 | 1 month ago |