| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
【fix】: acl code warning Co-authored-by: tang-haojie<tanghaojie1@huawei.com> # message auto-generated for no-merge-commit merge: !4238 merge develop into develop 【fix】: acl code warning Created-by: tang-haojie Commit-by: tang-haojie Merged-by: cann-robot Description: # Pull Request ## 描述 不更改的变量加const ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [x] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 描述测试此变更的步骤和前提条件: 1. 2. ## 核对清单 <!-- [x] 表示选中 --> - [ ] 我的代码遵循了项目的代码风格 - [ ] 我已对代码进行了自测 - [ ] 我已更新了相关的文档 - [ ] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [ ] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/ge!4238 | 1 个月前 | |
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 | 3 个月前 | |
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 | 1 个月前 | |
feat: 支持Python自定义算子execute能力反射 Co-authored-by: kobemini<gengchao4@huawei.com> # message auto-generated for no-merge-commit merge: !4240 merge feat/python-custom-op-execute-reflection into develop feat: 支持Python自定义算子execute能力反射 Created-by: kobemini Commit-by: kobemini Merged-by: cann-robot Description: # Pull Request ## 描述 本 PR 完成 Python 自定义算子 execute 能力反射,并收敛 schema-bound execute 所需的 IR 元数据获取链路。 主要变更: - 注册阶段根据实现类上是否存在可调用的 execute 方法生成 eager_execute 接口描述,不再强制用户类继承 Python 自定义算子基类; - bridge holder 支持持有普通 Python 对象,并在调用前校验 execute 是否可调用; - 保留 BaseCustomOp 和 EagerExecuteOp,兼容现有继承方式以及 execute(ctx) 写法; - schema-bound execute 示例改为普通 Python 类实现,并移除不必要的继承; - 将 canonical IR 元数据收集从 custom_op_runtime 迁移至 Python bridge,通过 run 包正式公共接口 GetRegisteredIrDef 获取并在 bridge holder 中缓存; - 删除 runtime/bridge callback 间的私有 IR POD 投影,execute callback 恢复为 holder + ctx; - bridge 使用公开头文件约束 GetRegisteredIrDef 签名,通过 RTLD_NOLOAD 获取已加载的 runner handle 后调用 dlsym,兼容 RTLD_LOCAL 加载且不提升 runner 全局可见性,同时避免反向硬链接形成循环 SO 依赖; - 同步更新中英文设计文档及相关单元测试。 反射产生的接口描述仍为 eager_execute,现有 capability mask 映射和 CustomOpCast 过滤逻辑保持不变;EagerOpExecutionContext 未修改,bridge ABI 版本保持为 1。 ## 变更类型 - [ ] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [x] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [x] 📝 文档内容更新 ## 关联的Issue 无。 ## 如何测试 1. pre-commit 检查全部通过。 2. ge_python_custom_op_bridge 目标使用 -j4 构建通过。 3. ut_libge_multiparts_utest 目标使用 -j4 构建通过;相关 C++ 用例 5 个全部通过。 4. tests/ge/ut/ge/graph/pyge_tests/python_custom_op_test.py:38 passed。 5. ge_python_main_wheel 目标使用 -j4 构建通过,wheel 中 custom-op bridge SO 与编译产物一致。 6. 动态依赖检查确认 custom-op bridge 不直接依赖 libge_runner.so 或 libge_runner_v2.so。 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的中英文文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于 commit message 的格式、无效 commit 的合并等 ## 其他信息 本次 collector 迁移使用 run 包正式公共 API,不再维护 custom_op_runtime 与 Python bridge 之间的私有 IR 数据结构协议。 See merge request: cann/ge!4240 | 1 个月前 | |
refactor: dflow session/compiler/executor 目录结构调整到 runner 平级目录 Co-authored-by: lining23666<lining.li@huawei.com> # message auto-generated for no-merge-commit merge: !4263 merge dflow into develop refactor: dflow session/compiler/executor 目录结构调整到 runner 平级目录 Created-by: lining23666 Commit-by: lining23666 Merged-by: cann-robot Description: ## 描述 将 dflow 的 session、compiler、executor 三个目录统一移入 dflow/runner/ 下,使 session 与 compiler、executor 处于平行层级。编译产物 libdflow_runner.so 输出到 dflow/runner/ 目录,目录结构与编译结果对应。 **调整前**: dflow/ ├── compiler/ ← 编译层(含 session 子目录) │ ├── CMakeLists.txt ← dflow_runner 编译定义 │ ├── data_flow_graph/ │ ├── model/ │ ├── pne/ │ └── session/ ← session 原在此 ├── executor/ ← 执行层 ├── deployer/ ├── ... **调整后**: dflow/ ├── runner/ ← 新建,dflow_runner 编译入口 │ ├── CMakeLists.txt ← dflow_runner 编译定义 │ ├── compiler/ ← 编译层 │ ├── executor/ ← 执行层 │ └── session/ ← session 层(与 compiler/executor 平级) ├── deployer/ ├── ... ## 变更类型 - [x] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [x] 📦 构建过程或辅助工具的变动 ## 关联的Issue ## 如何测试 1. 增量编译 dflow_runner 目标,确认 libdflow_runner.so 输出到 dflow/runner/ 目录 2. 确认所有 #include 路径正确解析 3. 确认 pre-commit 检查全部通过 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 - 涉及 112 个文件变更(目录 rename + include 路径更新) - 编译验证通过:libdflow_runner.so 正确输出到 cmake-build-gcov/dflow/runner/libdflow_runner.so - 文档同步更新:docs/zh/design/modules/dflow/dflow.md、docs/en/design/modules/dflow/dflow.md、blacklist.txt See merge request: cann/ge!4263 | 1 个月前 | |
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 | 3 个月前 |