文件最后提交记录最后更新时间
feat: 支持常量折叠 V2 Host CPU 与 AICPU 路由能力 Co-authored-by: pan-tong<pantong@huawei.com> # message auto-generated for no-merge-commit merge: !1824 merge master into master feat: 支持常量折叠 V2 Host CPU 与 AICPU 路由能力 Created-by: pan-tong Commit-by: pan-tong Merged-by: cann-robot Description: # Pull Request ## 描述 本 PR 在 GE 仓打通常量折叠(Constant Folding)V2 端到端链路,包含 so 加载策略调整、V2 wrapper 与 per-handle 反向索引、LoadLib API 简化、配套 UT 与 stub 共 5 大块改动。 ### 1. so 加载策略:先 dlopen V1 静态注册、后 Initialize V2 覆盖(host_cpu_engine.cc/.hHostCpuEngine::Initialize 调整加载顺序,使同名 op_type 上"AICPU V2 后写覆盖 V1"的 last-write-wins 语义自然生效: | 顺序 | so | 动作 | 说明 | |------|----|------|------| | 1 | libconstant_folding_ops.so | 仅 dlopen | 该 so 无 Initialize 符号 | | 2 | libops_host_cpu.so | **仅 dlopen,推迟 Initialize** | file-scope REGISTER_HOST_CPU_OP_BUILDER 注册的常量折叠算子先入册 | | 3 | libaicpu_const_folding.so | dlopen + Initialize | 内部走 InitCpuConstantFoldingNew,对同名 op_type 通过 create_fns_[op_type] = create_fn 覆盖前一步注册项 | | 4 (兜底) | libops_host_cpu.so | 仅当步骤 3 失败时调用其 Initialize | 注册 V1 wrapper,保证常量折叠链路可用 | 同时简化 LoadLib: - 旧 API:LoadLib(path, require_init, invoke_init),含语义模糊的"调了但不在乎结果"灰色路径。 - 新 API:LoadLib(path, invoke_init = false),调用方先决定是否需要 Initialize,一旦决定调用则缺失/失败统一回 INTERNAL_ERROR。 - 拆出私有 DlopenLib / InvokeLibInitialize,便于"先 dlopen 推迟 Initialize、必要时再回头 Initialize"的场景复用。 ### 2. V2 wrapper(aicpu_const_folding/host_cpu_kernel_wrapper.{cpp,h},新增) 新增 ge::HostCpuKernelWrapperOpV2 : public HostCpuOpCompute 通过 per-handle binding 调用 opbase 暴露的 V2 接口;并以 REGISTER_HOST_CPU_OP_BUILDER("HostCpuKernelWrapperOpV2", ...) 完成静态注册。 ### 3. V2 binding 与反向索引(aicpu_const_folding/folding.{cc,h}) - 每个 ops.so 一份 V2ModuleBinding,dlsym opbase 暴露的 C ABI 裸名符号 GetAllRegisteredOpTypesV2 / IsRegisteredV2 / RunCpuKernelV2。 - Initialize 期遍历 GetAllRegisteredOpTypesV2() 建立 op_type → V2ModuleBinding * 反向索引,运行期 O(1) 命中正确的 so。 - InitCpuConstantFoldingNew 中按 V2 表注册 wrapper 工厂 []{ return new HostCpuKernelWrapperOpV2(); },与 V1 路径完全对称。 - IsConstantFoldingSo 排除 libconstant_folding_ops.so,避免该 so 被重复扫描。 ### 4. 单测与 stub - tests/engines/cpueng/stub/aicpu/aicpu_stub.cpp:补齐 V2 符号 stub,供 UT 链接。 - tests/engines/cpueng/ut/cpu_engine/folding_ut.cpp:新增 V2 注册命中、V2 未命中回退 V1、IsConstantFoldingSo 排除规则等用例。 - tests/ge/ut/ge/common/host_cpu_engine_unittest.cc:新增 LoadLib_SkipInvokeInit,覆盖 invoke_init=false 不进入 dlsym 的分支。 ## 变更类型 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue 关联 Issue #383 ## 如何测试 ### 1. 编译 ```bash cd ge_1030/cmake-build-gcov make ge_common cpu_engine_utest -j8 ``` 预期:ge_commoncpu_engine_utest 均编译通过。 ### 2. UT 用例 ```bash # AICPU 常量折叠主用例 ./tests/engines/cpueng/ut/cpu_engine_utest \ --gtest_filter='AicpuConstFoldingTest.*' ``` 预期:9/9 PASSED。 ```bash # HostCpuEngine LoadLib 分支 ./tests/ge/ut/ge/multiparts/ut_libge_multiparts_utest \ --gtest_filter='UTEST_host_cpu_engine.LoadLib*' ``` 预期:包含新增 LoadLib_SkipInvokeInit 在内全部通过,覆盖 invoke_init=false 跳过 dlsym 分支。 ### 3. 端到端 联合 cann/runtime#1522、cann/ge#1824 进行常量折叠 V2 端到端验证: ![image.png](https://raw.gitcode.com/user-images/assets/8824148/4e2f15bd-edcf-4ec9-aa57-5067f807cb3c/image.png 'image.png') ![image.png](https://raw.gitcode.com/user-images/assets/8824148/07672b13-7cf9-4ac2-8abd-c9925056e12c/image.png 'image.png') ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [ ] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md) ## 其他信息 - 与 cann/runtime#1522(V2 注册/查询 C ABI)、cann/opbase#299(V2 优先调度)配套使用。各仓可以独立合入,已处理兼容性。 - 改动严格保持 V1 路径行为不变,V2 缺失场景自动回退到现有 V1 链路。 See merge request: cann/ge!182415 天前
feat: 删除无用变量及分支 Co-authored-by: 叶龙剑<yelongjian1@huawei.com> # message auto-generated for no-merge-commit merge: !1532 merge dev-env0327 into develop feat: 删除无用变量及分支 Created-by: yelongjian Commit-by: 叶龙剑 Merged-by: cann-robot Description: # Pull Request ## 描述 删除老编译框架的无用变量及分支 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [x] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 描述测试此变更的步骤和前提条件: 1.NA ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/ge!15322 个月前
refactor: 删除未使用的 rtGetStreamBufferLen 函数 Co-authored-by: wangtao43<wangtao43@huawei.com> # message auto-generated for no-merge-commit merge: !3091 merge fix/remove-rtGetStreamBufferLen into develop refactor: 删除未使用的 rtGetStreamBufferLen 函数 Created-by: wangtao43 Commit-by: wangtao43 Merged-by: cann-robot Description: # Pull Request ## 描述 删除测试stub文件中的 rtGetStreamBufferLen 函数定义。该函数在代码库中未被调用,属于冗余代码。 ## 变更类型 请选择本次引入的变更类型(勾选对应项): - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [x] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 如何测试 无特殊测试需求,删除的函数未被使用。 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md) ## 其他信息 涉及文件: - tests/engines/te_fusion/depends/runtime/src/runtime_stub.cc - tests/engines/nn_engine/depends/runtime/src/runtime_stub.cc - tests/engines/ffts_engine/stub/runtime_stub.cc See merge request: cann/ge!30918 天前
【refactor】: 替换runtime/rts下接口为aclrt接口或仓间接口 Co-authored-by: kantao1<kantao1@huawei.com> # message auto-generated for no-merge-commit merge: !3080 merge instead_rts_interface into develop 【refactor】: 替换runtime/rts下接口为aclrt接口或仓间接口 Created-by: kantao1 Commit-by: kantao1 Merged-by: cann-robot Description: # Pull Request ## 描述 **rt/rts接口目录说明** 背景:pkg_inc/runtime/runtime 目录下的接口,**630** 后会添加编译告警,**1230** 后会删除。 ``` # toolkit 包里头文件目录结构 xxx/Ascend/cann/x86_64-linux/pkg_inc/runtime - rt_external.h - runtime/ --- 后续删除的目录 - rt.h - rts/ - rts.h ``` **接口替换方案** ```mermaid flowchart LR A[优先使用 aclrt] B[使用仓间接口rt_external.h] C[需要咨询runtime] A -->|没有| B -->|没有| C ``` <br/> **主要变更内容:** 1. 接口替换 - rtsGetThreadLastTaskId --> aclrtGetThreadLastTaskId 2. 移除 rts 打桩接口 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [x] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 描述测试此变更的步骤和前提条件: 1. 编译 GE 项目:bash build.sh --ge_executor 2. 运行 UT 测试:bash tests/run_test.sh -u ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 **遗留事项:** 1. 打桩符号 rtsGetThreadLastTaskId 后续移除,当前engines组件有调用 2. 后续用 rtGetDeviceCapability 替换 rtsDeviceGetCapability,当前仓间缺少 rtGetDeviceCapability 3. 待rt.h的全部移除后,再用rt_external.h替换rts.h,因为当前替换的话,会引起很多符号的歧义问题(rt_external.h 与 rt.h 中有重复定义符号) 这些放到下一单中修改。 See merge request: cann/ge!30805 天前
【PR】: 对外重复头文件修改对内部分新增文件,待legacy仓修改后再删除 Co-authored-by: SeasonChu<zhuxincheng2@huawei.com> # message auto-generated for no-merge-commit merge: !3198 merge fixIncPart2 into develop 【PR】: 对外重复头文件修改对内部分新增文件,待legacy仓修改后再删除 Created-by: SeasonChu Commit-by: SeasonChu Merged-by: cann-robot Description: # Pull Request ## 描述 文件名相同,内容不同,一个对外,一个内部,内部的头文件整改文件名 问题原因: 历史遗留问题 问题影响: 外部开发者易用性体验,不易理解 解决方案: 内部头文件整改文件名,保留原文件,待leagcy仓修改后再删除 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [x] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 描述测试此变更的步骤和前提条件: 1. 2. ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/ge!31985 天前
【PR】: 对外重复头文件修改对内部分新增文件,待legacy仓修改后再删除 Co-authored-by: SeasonChu<zhuxincheng2@huawei.com> # message auto-generated for no-merge-commit merge: !3198 merge fixIncPart2 into develop 【PR】: 对外重复头文件修改对内部分新增文件,待legacy仓修改后再删除 Created-by: SeasonChu Commit-by: SeasonChu Merged-by: cann-robot Description: # Pull Request ## 描述 文件名相同,内容不同,一个对外,一个内部,内部的头文件整改文件名 问题原因: 历史遗留问题 问题影响: 外部开发者易用性体验,不易理解 解决方案: 内部头文件整改文件名,保留原文件,待leagcy仓修改后再删除 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [x] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 描述测试此变更的步骤和前提条件: 1. 2. ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/ge!31985 天前
refactor: 删除未使用的 rtGetStreamBufferLen 函数 Co-authored-by: wangtao43<wangtao43@huawei.com> # message auto-generated for no-merge-commit merge: !3091 merge fix/remove-rtGetStreamBufferLen into develop refactor: 删除未使用的 rtGetStreamBufferLen 函数 Created-by: wangtao43 Commit-by: wangtao43 Merged-by: cann-robot Description: # Pull Request ## 描述 删除测试stub文件中的 rtGetStreamBufferLen 函数定义。该函数在代码库中未被调用,属于冗余代码。 ## 变更类型 请选择本次引入的变更类型(勾选对应项): - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [x] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 如何测试 无特殊测试需求,删除的函数未被使用。 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md) ## 其他信息 涉及文件: - tests/engines/te_fusion/depends/runtime/src/runtime_stub.cc - tests/engines/nn_engine/depends/runtime/src/runtime_stub.cc - tests/engines/ffts_engine/stub/runtime_stub.cc See merge request: cann/ge!30918 天前
【PR】: sync develop to master Co-authored-by: xiangrenzhi<xiangrenzhi@huawei.com> Co-authored-by: liyanrong_9<liyanrong9@h-partners.com> Co-authored-by: chenyukai<chenyukai4@huawei.com> Co-authored-by: lihuachao<lihuachao1@huawei.com> Co-authored-by: WangYanMale<wangyan220@huawei.com> Co-authored-by: xchu42<chuxing@huawei.com> Co-authored-by: yelongjian<yelongjian1@huawei.com> Co-authored-by: xingzhixiong<xingzhixiong@huawei.com> # message auto-generated for no-merge-commit merge: !1749 merge develop into master 【PR】: sync develop to master Created-by: wqtshg_wt Commit-by: liyanrong_9;xingzhixiong;yelongjian;xiangrenzhi;xchu42;chenyukai;WangYanMale;lihuachao Merged-by: cann-robot Description: # Pull Request ## 描述 1、使用rtGetSocSpec查询padding替换固定padding 2、新增AscIR(ArgMax) 3、remainder的语义修改为a-floor(a/b)*b 4、消除Broadcast造成concat_dim解析错误的问题 5、修改CONTRIBUTING.md拼写错误 6、【Fix】:修复溢出检测场景下,给adump设置OP_OVERFLOW类型的dump配置引入nnopbase溢出检测用例报错的问题 7、删除已经失效的编译参数说明 8、[feat] autofuse adds compile options parameter to jit_compile python interface. 9、LLT优化 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [x] 🐛 Bug 修复 - [x] ✨ 新功能 - [x] 💄 代码风格更新(格式化,局部变量) - [x] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [x] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 描述测试此变更的步骤和前提条件: 1. 2. ## 核对清单 <!-- [x] 表示选中 --> - [ ] 我的代码遵循了项目的代码风格 - [ ] 我已对代码进行了自测 - [ ] 我已更新了相关的文档 - [ ] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [ ] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/ge!17491 个月前