文件最后提交记录最后更新时间
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 个月前
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!182416 天前
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!182416 天前
Support ut acl with lcov 2.x Co-authored-by: zhuhaoran5<zhuhaoran5@huawei.com> # message auto-generated for no-merge-commit merge: !707 merge fix_lcov_ignore_errors into develop 【fix】: Support LLT with locv 2.x Created-by: zhuhaoran5 Commit-by: zhuhaoran5 Merged-by: depeng1994 Description: # Pull Request ## 描述 acl ut 执行支持 lcoc 2.x 回退修复 '--ignore-errors negative' with lcov2.x ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [x] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [x] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 在安装了 lcov 2.x 环境下,开启覆盖率选项(-c)执行 ut acl 任务,最终正确输出覆盖率数据 ## 核对清单 <!-- [x] 表示选中 --> - [ ] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [ ] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [ ] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/ge!7073 个月前
Initial commit 5 个月前