| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
feat(om2): 新增OM2运行时变量管理器(RTVarManager) Co-authored-by: wuzheng-hw<wuzheng14@huawei.com> # message auto-generated for no-merge-commit merge: !4297 merge om2_varmanager into develop feat(om2): 新增OM2运行时变量管理器(RTVarManager) Created-by: wuzheng-hw Commit-by: wuzheng-hw Merged-by: cann-robot Description: # Pull Request ## 描述 新增OM2运行时变量管理器(RTVarManager),用于在运行时管理变量的内存分配、地址映射、格式转换及数据拷贝。 主要变更: - 新增 RTVarResource 数据结构,描述运行时变量条目(RTVarEntry),包含变量名、逻辑地址、tensor描述、格式转换路径等 - 新增 BuildRTVarResource 接口,从编译期 VarManager 构建运行时变量资源并序列化到 OM2 模型文件 - 新增 Om2RTVarManager,负责运行时变量内存分配、地址管理、格式转换及数据拷贝 - 新增 Om2RTVarManagerPool 单例池,按 session 管理 RTVarManager 实例 - OM2 codegen 侧新增变量元数据序列化 - 模型执行器集成 RTVarManager,支持从 OM2 文件解析变量资源并初始化 - 任务码构建适配变量地址刷新逻辑 - 新增完整的 UT/ST 测试用例 ## 变更类型 - [ ] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue ## 如何测试 1. 运行 UT 用例:om2_rt_var_manager_unittest、rt_var_resource_unittest、om2_var_resource_builder_unittest 2. 运行 ST 用例:test_om2、test_om2_online 3. 验证 OM2 模型编译和运行时变量管理功能正常 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定 ## 其他信息 涉及 57 个文件变更,新增约 4500 行代码。 See merge request: cann/ge!4297 | 2 天前 | |
fix: AnnotatedKernelArgs的input,output参数index应为实例平铺index Co-authored-by: Chang-an-HW<machangan@huawei.com> # message auto-generated for no-merge-commit merge: !4133 merge fix_annotated_args_index into develop fix: AnnotatedKernelArgs的input,output参数index应为实例平铺index Created-by: Chang-an-HW Commit-by: Chang-an-HW Merged-by: cann-robot Description: # Pull Request ## 描述 20260629评审通过 AnnotatedKernelArgs的input,output参数index改为实例平铺index ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [x] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的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!4133 | 10 天前 | |
feat: 自定义算子 AnnotatedArgsOp 地址刷新接口 Python 化 Co-authored-by: shangdf<shangdongfang1@huawei.com> # message auto-generated for no-merge-commit merge: !4254 merge feature/address-refresh-pythonization-pr into develop feat: 自定义算子 AnnotatedArgsOp 地址刷新接口 Python 化 Created-by: shangdf Commit-by: shangdf Merged-by: cann-robot Description: # Pull Request ## 描述 完成 AnnotatedArgsOp 地址刷新接口 Python 化。本 PR 仅保留核心实现与测试: - Python 自定义算子通过 schema-bound declare_launch_args 生成 AnnotatedArgs TaskDef。 - 提供 AnnotatedArgsContext、Tensor、workspace、kernel args builder 等 Python 包装,覆盖作用域、签名校验、异常转换和 builder 消费语义。 - 编译期把最终选定的参数刷新方式写入 OpDesc 属性 _custom_task_args_mode;模型加载时以该显式模式为准。没有该属性的旧 OM 才使用 registry 查询和 args_format 兼容兜底。 - Python custom-op bridge C ABI 保持 v1;模型运行期只消费序列化模式和 TaskDef,不回调 Python。 - 提供显式 CustomTaskArgsMode,编译期记录最终刷新方式,运行期优先按该模式选择路径并兼容老 OM。 - 补充 Python、native binding、compiler builder 和静态模型加载路径的 UT/ST。 资料和可运行 example 已拆分至 PR 4316,本 PR 最终 diff 不再包含 docs/ 或 examples/: - https://gitcode.com/cann/ge/pull/4316 本 PR 直接复用 develop 已合入的两个前置任务,不再重复实现: - append_input / append_output 使用 input/output 实例平铺 index。 - workspace 使用两阶段申请及 task plan 缓存,后续任务物化复用缓存,不重复调用声明 callback。 ## 变更类型 - [x] ✨ 新功能 - [ ] ♻️ 无关重构 - [x] 📦 构建过程或辅助工具变动 - [ ] 📝 文档更新(已拆分到 PR 4316) ## 关联 Issue 无。 ## 验证结果 - 最新 develop 增量编译:ut_libge_multiparts_utest、graph_engine_test 构建通过。 - pre-commit:全部通过(clang-format、ruff、codespell、OAT 等)。 - C++ UT:2653 passed, 8 skipped。 - Python UT:651 passed, 1 skipped。 - Python AnnotatedArgs ST:5/5 通过,包含真实 Python -> pybind -> C++ callback 链路及异常分支校验。 - ASAN 定向用例:1/1 通过。 - build_fwk.sh 在 ASAN LD_PRELOAD 环境下的子进程 gcc 探测通过。 - 功能开发阶段已使用拆分前的相同核心实现和 example 完成 910B3 两轮真实 NPU 地址刷新验证;example 后续验证由 PR 4316 承载。 ## 核对清单 - [x] 代码遵循项目风格 - [x] 已补充并执行自测 - [x] 中英文文档已拆分到关联 PR 4316 - [x] 按要求保留 [wip] 标记 - [x] 已阅读并遵守贡献指南 ## 本轮检视修复 - 增加稳定序列化枚举 CustomTaskArgsMode,显式区分 None、AnnotatedArgs 和 UpdateCallback,保留旧 OM 兼容路径。 - 恢复原有不可调用方法的注册行为,避免无关语义变化。 - bridge ABI 保持 v1,统一 context import,签名校验函数改名为 _validate_args_signature。 - 移除通用 engine/known-shape 文档中的 Python 特例及过程性文档;长期资料和 example 已拆分到 PR 4316。 - input/output instance index 越界异常输出实际索引和实例数量,并由端到端 Python callback 用例覆盖。 - 修复 ASAN 环境下 gcc 子进程继承 LD_PRELOAD 导致 Python CI 在 pytest 前退出的问题。 - 同步最新 develop 的 Python 自定义算子原型类型定义和 workspace 两阶段申请逻辑,PR 冲突已消除。 See merge request: cann/ge!4254 | 3 天前 | |
fix: precommit整改 Co-authored-by: yelongjian<yelongjian1@huawei.com> # message auto-generated for no-merge-commit merge: !3726 merge dev-precommit into develop fix: precommit整改 Created-by: yelongjian Commit-by: yelongjian Merged-by: cann-robot Description: # Pull Request ## 描述 precommit整改 ## 变更类型 请选择本次引入的变更类型: <!-- [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!3726 | 1 个月前 | |
【PR】: Remove all exec_order assignments to align with exec_order removal in AF Co-authored-by: 盛楠<titan.sheng@huawei.com> # message auto-generated for no-merge-commit merge: !4040 merge f_exec_order into develop 【PR】: Remove all exec_order assignments to align with exec_order removal in AF Created-by: shengnan666 Commit-by: 盛楠 Merged-by: cann-robot Description: # Pull Request ## 描述 配合 af 做 exec_order 废弃的工作,删除对 exec_order 的赋值 ## 变更类型 请选择本次引入的变更类型: <!-- [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!4040 | 29 天前 | |
fix: 修复aclop与图模式混跑时自定义Pass资源被提前释放的问题 Co-authored-by: qq_45842700<caodazhou@huawei.com> # message auto-generated for no-merge-commit merge: !4243 merge fix/custom-pass-lifecycle-v2 into develop fix: 修复aclop与图模式混跑时自定义Pass资源被提前释放的问题 Created-by: qq_45842700 Commit-by: qq_45842700 Merged-by: cann-robot Description: ## 描述 修复 aclop 单算子编译与 GeSession 图编译混跑时,自定义 Pass 资源被提前释放的问题。 **问题根因**: GeGenerator::Finalize() 调用 ShutdownPassPluginsForProcess() 执行进程级 Pass 卸载,清空 registration_datas_ 并 dlclose 动态库句柄。aclop 单算子编译结束后会释放仍被 GeSession 图编译依赖的 Pass 资源,导致后续图编译中自定义 Pass 不再执行。 **解决方案**: 1. PassPluginLoader 引入引用计数 active_users_: - LoadPassPlugins(): active_users_==0 时首次加载 C++/Python Pass,每次调用 +1 - UnloadPassPlugins(): 每次调用 -1,仅 active_users_==0 时真正卸载 + 进程级清理 2. GeGenerator::Finalize() 改用 UnloadPassPlugins() 替代 ShutdownPassPluginsForProcess(),只递减引用计数,不强制卸载进程级资源 3. GeGenerator 增加 pass_plugins_loaded_ flag + GE_DISMISSABLE_GUARD,保证 Initialize 失败时自动释放 Pass 引用 4. 所有调用方(GEInitialize/GEFinalize/GeGenerator/ATC/aclgrphBuild)统一用 Load/Unload 5. 移除 PassPluginLease 类、AcquirePassPlugins/ReleasePassPlugins/ShutdownPassPluginsForProcess 6. CustomPassHelper::Insert() 去掉 unique_lock,防止 Load() 持锁时 dlopen 触发 PassReceiver 构造函数 → Insert() 重入导致同线程死锁(std::shared_mutex 不支持递归) ## 变更类型 - [x] 🐛 Bug 修复 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定 See merge request: cann/ge!4243 | 9 天前 | |
fix: precommit整改 Co-authored-by: yelongjian<yelongjian1@huawei.com> # message auto-generated for no-merge-commit merge: !3726 merge dev-precommit into develop fix: precommit整改 Created-by: yelongjian Commit-by: yelongjian Merged-by: cann-robot Description: # Pull Request ## 描述 precommit整改 ## 变更类型 请选择本次引入的变更类型: <!-- [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!3726 | 1 个月前 | |
【PR】: ge_error_codes.h重命名后修改ge仓引用 Co-authored-by: jikai-tyler<jikai5@huawei.com> # message auto-generated for no-merge-commit merge: !4039 merge ge_errorcode into develop 【PR】: ge_error_codes.h重命名后修改ge仓引用 Created-by: jikai-tyler Commit-by: jikai-tyler Merged-by: cann-robot Description: # Pull Request ## 描述 ge_error_codes.h重命名后修改ge仓引用。 ## 变更类型 请选择本次引入的变更类型: <!-- [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!4039 | 25 天前 | |
fix: precommit整改 Co-authored-by: yelongjian<yelongjian1@huawei.com> # message auto-generated for no-merge-commit merge: !3726 merge dev-precommit into develop fix: precommit整改 Created-by: yelongjian Commit-by: yelongjian Merged-by: cann-robot Description: # Pull Request ## 描述 precommit整改 ## 变更类型 请选择本次引入的变更类型: <!-- [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!3726 | 1 个月前 |