| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
fix: 修复 Python runtime 静态检查告警 Co-authored-by: du-hua1024<duhua2@huawei.com> # message auto-generated for no-merge-commit merge: !3819 merge codecheck into develop fix: 修复 Python runtime 静态检查告警 Created-by: du-hua1024 Commit-by: du-hua1024 Merged-by: cann-robot Description: # Pull Request ## 描述 修复 Python runtime 管理相关代码的静态检查告警,保持原有运行语义不变。 主要变更: - 将头文件中的 g_python_api 全局对象定义调整为 extern 声明,并在 ge_python_runtime_manager.cc 中提供唯一定义,避免头文件产生全局对象定义。 - 删除 GE_BIND_PY_SYMBOL 函数式宏,改为 ResolvePythonSymbol 模板函数,避免宏依赖外部局部变量。 - 将 Python 命令候选参数改为 std::string 传递,使用 empty() 判断空字符串。 - 去除 dlerror() 日志参数中的三元表达式子表达式。 - 删除 ge_python_runtime_manager.cc 中未使用的 <dlfcn.h> 头文件。 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [x] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue 无 ## 如何测试 已执行: 1. git diff --check HEAD^ HEAD -- base/common/python_runtime/ge_python_runtime_manager_helper.h base/common/python_runtime/ge_python_runtime_manager.cc ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [ ] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 未执行编译或 UT;本次仅针对静态检查报告中的确认修改项进行最小范围调整,其余需屏蔽项不在本次代码修改范围内。 See merge request: cann/ge!3819 | 2 个月前 | |
fix: 统一管理 Python 解释器生命周期 Co-authored-by: du-hua1024<duhua2@huawei.com> # message auto-generated for no-merge-commit merge: !3631 merge develop into develop fix: 统一管理 Python 解释器生命周期 Created-by: du-hua1024 Commit-by: du-hua1024 Merged-by: cann-robot Description: # Pull Request ## 描述 当前 TBE、Python Pass 等多处依赖 Python 解释器,本 PR 引入 GePythonRuntimeManager,在 GE 各初始化入口统一探测、加载 libpython 并管理 Python 解释器生命周期,为 Python Fusion Pass 等能力提供一致的运行时基础。 **主要变更:** ### 1. 新增 GePythonRuntimeManager(base/common/python_runtime/) - ge_python_runtime_manager.h:管理器类定义,提供 EnsureReady() / ShutdownProcess() 接口 - ge_python_runtime_manager.cc:管理器实现,包含 EnsureReadyLocked()、FinalizeOwnedInterpreterLocked() 等核心逻辑 - ge_python_runtime_manager_helper.h:辅助头文件,包含 Python C API 类型定义、符号常量、探测脚本及 inline 工具函数(ResolvePythonCApi、EnsureLibpythonLoaded、ProbePythonRuntimeFromCommand 等) - 自动探测 python3/python 并解析 libpython 路径,通过 dlopen 加载 Python C API - 若进程内已有解释器则 attach,否则初始化 owned interpreter 并在 init 线程释放 GIL ### 2. 接入 GE 初始化链路 - GEInitializeV2 / GEFinalizeV2(api/session/client/ge_api_v2.cc) - GeGenerator::Initialize(compiler/api/generator/ge_generator.cc) - aclgrphBuildInitializeImpl / aclgrphBuildFinalize(compiler/api/aclgrph/ge_ir_build.cc) - ATC 离线编译路径(api/atc/main_impl.cc):GenerateModel、GenerateSingleOp 等入口在 GELib::Initialize 前调用 EnsureReady(),失败/退出路径补充 ShutdownProcess() ### 3. 测试更新 - 新增 ge_python_runtime_unittest.cc,覆盖 attach 已有解释器、owned interpreter 初始化与 shutdown 场景 - 更新 fusion_pass_executor_unittest.cc:添加 python_pass_loaded_ 状态追踪,SetUp/TearDown 仅在加载过 Python pass 时调用 UnloadPythonPasses() - 更新 ge_generator_unittest.cc、ge_api_v2_unittest.cc、ge_ir_build_unittest.cc 等,在 teardown 中调用 ShutdownProcess() 避免用例间状态污染 - 更新 ST 测试入口(test_main.cc、rt2_test_main.cc、dump_test_fixture.h)添加 ShutdownProcess() - 更新 dflow 测试(test.cc、init_ge.h、dflow_api_unittest.cc、ge_api_dflow_unittest.cc)添加 GEFinalize() 调用 - 新增 scoped_unset_ld_preload.h 辅助类,用于 ge_running_env_test 中临时清除 LD_PRELOAD 环境变量 ## 变更类型 - [x] ✨ 新功能 - [ ] 🐛 Bug 修复 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue 无 ## 如何测试 1. 验证在线、离线、atc 场景编译入口在加载 Python pass 前能成功初始化解释器(日志含 [GePythonRuntime] Loaded libpython 或 Initialize owned interpreter) 2. 运行 ge_python_runtime_unittest 验证 attach/owned interpreter 生命周期管理 3. 运行 fusion_pass_executor_unittest 验证 Python pass 注册与卸载逻辑 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于 commit message 的格式、无效 commit 的合并等 ## 其他信息 无 See merge request: cann/ge!3631 | 2 个月前 | |
fix: 修复 Python runtime 静态检查告警 Co-authored-by: du-hua1024<duhua2@huawei.com> # message auto-generated for no-merge-commit merge: !3819 merge codecheck into develop fix: 修复 Python runtime 静态检查告警 Created-by: du-hua1024 Commit-by: du-hua1024 Merged-by: cann-robot Description: # Pull Request ## 描述 修复 Python runtime 管理相关代码的静态检查告警,保持原有运行语义不变。 主要变更: - 将头文件中的 g_python_api 全局对象定义调整为 extern 声明,并在 ge_python_runtime_manager.cc 中提供唯一定义,避免头文件产生全局对象定义。 - 删除 GE_BIND_PY_SYMBOL 函数式宏,改为 ResolvePythonSymbol 模板函数,避免宏依赖外部局部变量。 - 将 Python 命令候选参数改为 std::string 传递,使用 empty() 判断空字符串。 - 去除 dlerror() 日志参数中的三元表达式子表达式。 - 删除 ge_python_runtime_manager.cc 中未使用的 <dlfcn.h> 头文件。 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [x] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue 无 ## 如何测试 已执行: 1. git diff --check HEAD^ HEAD -- base/common/python_runtime/ge_python_runtime_manager_helper.h base/common/python_runtime/ge_python_runtime_manager.cc ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [ ] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 未执行编译或 UT;本次仅针对静态检查报告中的确认修改项进行最小范围调整,其余需屏蔽项不在本次代码修改范围内。 See merge request: cann/ge!3819 | 2 个月前 | |
feat: 支持 Python 自定义算子桥接加载 Co-authored-by: du-hua1024<duhua2@huawei.com> # message auto-generated for no-merge-commit merge: !3974 merge op-cpp into develop feat: 支持 Python 自定义算子桥接加载 Created-by: du-hua1024 Commit-by: du-hua1024 Merged-by: cann-robot Description: # Pull Request ## 描述 支持 Python 自定义算子在编译与执行链路中的桥接加载和注册。主要变更如下: 1. 新增 runtime/custom_op 自定义算子加载能力,包括 custom op loader、Python bridge loader、pybind bridge 和桥接 C API。 2. 在 ATC、session、compiler、runtime v1 等入口接入 Python 自定义算子加载流程,覆盖编译前加载与执行侧注册。 3. 将 Python artifact 选择逻辑迁移到 base/common/python_runtime,新增通用 python_bridge_loader_utils.h,复用 Python bridge 动态加载能力。 4. 扩展 graph_metadef 自定义算子 factory/registry 能力,并调整 Python pass fallback、fusion pass loader 等相关调用。 5. 补充和调整 Python runtime artifact、fusion pass executor、custom op factory 相关 UT 构建与用例。 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧“关联Issue”部分添加相应Issue链接,并勾选“合并后关闭已关联的 Issue”选项。 --> 未关联 Issue。 ## 如何测试 新增及历史UT ST任务正常执行 ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 See merge request: cann/ge!3974 | 1 个月前 | |
fix: 修复代码检查告警 Co-authored-by: du-hua1024<duhua2@huawei.com> # message auto-generated for no-merge-commit merge: !4637 merge op into develop fix: 修复代码检查告警 Created-by: du-hua1024 Commit-by: du-hua1024 Merged-by: cann-robot Description: # Pull Request ## 描述 修复自定义算子注册、运行时转换及 Host CPU 执行上下文相关代码检查告警: 1. 统一 OpBackend、CustomOpCapability 按值参数的声明与定义。 2. 修复运行时转换中的 const_cast、旧式 Node/Anchor 接口调用。 3. 使用 AttrUtils::GetStr 指针重载,减少不必要的字符串拷贝。 4. 补齐 HostCpuOpExecutionContext 头文件的直接依赖。 5. 保留动态库符号加载所需的函数指针转换,以及 constant_folding_pass.cc:289 的运行时 ABI 转换,并增加屏蔽说明。 ## 变更类型 - [x] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue 无 ## 如何测试 - 执行完整 UT/ST。 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [ ] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 See merge request: cann/ge!4637 | 7 天前 | |
feat: 补充Python自定义算子多版本构建与fallback codegen能力 | 52 分钟前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 1 个月前 | ||
| 7 天前 | ||
| 52 分钟前 |