| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
fix: 完善Python pass artifact加载与fallback编译参数生成 Co-authored-by: du-hua1024<duhua2@huawei.com> # message auto-generated for no-merge-commit merge: !3446 merge develop into develop fix: 完善Python pass artifact加载与fallback编译参数生成 Created-by: du-hua1024 Commit-by: du-hua1024 Merged-by: cann-robot Description: # Pull Request ## 描述 本次 PR 完善 GE Python pass 多 Python 版本 artifact 的加载和 fallback codegen 流程,移除 legacy bridge 兜底路径,使运行时只在预制 artifact 与 runtime fallback codegen 之间选择。 主要变更: - 移除 libge_python_pass_bridge.so 作为 ge-compiler/lib64 独立交付和 legacy bridge 搜索逻辑,bridge/native 均通过 python_pass_artifacts/<python_tag>-<platform> artifact set 加载。 - native wheel 不再额外携带 ge/passes/_ge_pass_native.so 兼容副本,统一通过 manifest 中的 artifact 路径加载。 - fallback codegen 的失败日志调整为 error 级别,并补充失败原因输出。 - fallback 编译配置不再手写多份公共编译/链接参数,改为从 CMake 已生成的 flags.make 和 link.txt 派生,降低 CMake 参数变化后的维护成本。 - 更新设计文档和 Python fusion pass 样例说明,明确 Python pass 预编译二进制组件与 Python 版本相关;若当前 Python 没有匹配 artifact,会触发 fallback 编译,fallback 依赖当前环境安装 pybind11。 ## gen_fallback_resources.py 编译参数加载逻辑 fallback 配置不再手写编译/链接参数,而是以 CMake 已生成结果为准: - 通过 --build-dir 读取 bridge/native 目标的 flags.make 和 link.txt;通过 --cann-root 判断哪些路径属于 CANN 安装目录。 - flags.make 中的 CXX_DEFINES、CXX_INCLUDES、CXX_FLAGS 分别写入 cxx_defines、cxx_includes、cxx_flags,并额外补充 fallback 自带头文件路径 @FALLBACK_ROOT@/include/{bridge,native}。 - link.txt 解析后写入 link_args,过滤掉编译器、-shared、-o、object 文件和 dependency-file 等 runtime 会重新生成的内容。 - 可交付环境中的路径统一改成占位符,例如 @PYTHON_INCLUDE@、@PYBIND11_INCLUDE@、@CANN_INCLUDE_DIR@、@CANN_PKG_INC@、@CANN_LIB64@、@PYTHON_LIBRARY@。 - 仓内/build include 路径丢弃;直接库路径转成 -lxxx,保留 CANN 库和非 tests/depends 的构建库,丢弃测试依赖库。 - runtime fallback 编译时再把这些占位符替换为当前 Python 和当前 CANN 安装环境的真实路径。 ## 变更类型 - [x] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [x] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [x] 📝 文档内容更新 ## 关联的Issue 无 ## 如何测试 建议验证: 1. 运行python pass example,能正常运行 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 本 PR 的核心原则是尽量复用 CMake 已生成的编译/链接结果,只替换或删除不适合 runtime fallback 的本机路径、构建目录路径和测试依赖,避免维护多份手写编译参数。 See merge request: cann/ge!3446 | 3 个月前 | |
fix: 完善Python pass artifact加载与fallback编译参数生成 Co-authored-by: du-hua1024<duhua2@huawei.com> # message auto-generated for no-merge-commit merge: !3446 merge develop into develop fix: 完善Python pass artifact加载与fallback编译参数生成 Created-by: du-hua1024 Commit-by: du-hua1024 Merged-by: cann-robot Description: # Pull Request ## 描述 本次 PR 完善 GE Python pass 多 Python 版本 artifact 的加载和 fallback codegen 流程,移除 legacy bridge 兜底路径,使运行时只在预制 artifact 与 runtime fallback codegen 之间选择。 主要变更: - 移除 libge_python_pass_bridge.so 作为 ge-compiler/lib64 独立交付和 legacy bridge 搜索逻辑,bridge/native 均通过 python_pass_artifacts/<python_tag>-<platform> artifact set 加载。 - native wheel 不再额外携带 ge/passes/_ge_pass_native.so 兼容副本,统一通过 manifest 中的 artifact 路径加载。 - fallback codegen 的失败日志调整为 error 级别,并补充失败原因输出。 - fallback 编译配置不再手写多份公共编译/链接参数,改为从 CMake 已生成的 flags.make 和 link.txt 派生,降低 CMake 参数变化后的维护成本。 - 更新设计文档和 Python fusion pass 样例说明,明确 Python pass 预编译二进制组件与 Python 版本相关;若当前 Python 没有匹配 artifact,会触发 fallback 编译,fallback 依赖当前环境安装 pybind11。 ## gen_fallback_resources.py 编译参数加载逻辑 fallback 配置不再手写编译/链接参数,而是以 CMake 已生成结果为准: - 通过 --build-dir 读取 bridge/native 目标的 flags.make 和 link.txt;通过 --cann-root 判断哪些路径属于 CANN 安装目录。 - flags.make 中的 CXX_DEFINES、CXX_INCLUDES、CXX_FLAGS 分别写入 cxx_defines、cxx_includes、cxx_flags,并额外补充 fallback 自带头文件路径 @FALLBACK_ROOT@/include/{bridge,native}。 - link.txt 解析后写入 link_args,过滤掉编译器、-shared、-o、object 文件和 dependency-file 等 runtime 会重新生成的内容。 - 可交付环境中的路径统一改成占位符,例如 @PYTHON_INCLUDE@、@PYBIND11_INCLUDE@、@CANN_INCLUDE_DIR@、@CANN_PKG_INC@、@CANN_LIB64@、@PYTHON_LIBRARY@。 - 仓内/build include 路径丢弃;直接库路径转成 -lxxx,保留 CANN 库和非 tests/depends 的构建库,丢弃测试依赖库。 - runtime fallback 编译时再把这些占位符替换为当前 Python 和当前 CANN 安装环境的真实路径。 ## 变更类型 - [x] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [x] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [x] 📝 文档内容更新 ## 关联的Issue 无 ## 如何测试 建议验证: 1. 运行python pass example,能正常运行 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 本 PR 的核心原则是尽量复用 CMake 已生成的编译/链接结果,只替换或删除不适合 runtime fallback 的本机路径、构建目录路径和测试依赖,避免维护多份手写编译参数。 See merge request: cann/ge!3446 | 3 个月前 | |
feat: 支持 pyatc 命令行入口 Co-authored-by: du-hua1024<duhua2@huawei.com> # message auto-generated for no-merge-commit merge: !2561 merge master into develop feat: 支持 pyatc 命令行入口 Created-by: du-hua1024 Commit-by: du-hua1024 Merged-by: cann-robot Description: 20260428 # Pull Request ## 描述 本 PR 为 ge-py 增加 pyatc 命令行入口,使用户可以通过 pyatc 或 python3 -m ge.pyatc 使用与 atc 等价的离线编译能力,并复用原有 ge::main_impl() 主流程。 主要变更: - 新增 api/atc/pyatc shell wrapper 和 ge.pyatc Python 模块,负责补齐 CANN 运行环境、转发命令行参数并保留原始 argv0。 - 新增 libpyatc_wrapper.so,封装 ge::main_impl() 调用;调整 ATC usage 和失败提示中的程序名显示。 - 拆分 ge-py C wrapper 动态库为 graph_wrapper、ge_runtime_wrapper、offline_compile_wrapper、pyatc_wrapper,降低不同 Python 能力之间的链接依赖耦合。 - 将 Tensor host/device 拷贝接口迁移到 pytensor_runtime_wrapper,并更新 ge-py 相关 loader。 - 更新 ge-compiler 打包配置,将 pyatc 安装到 bin;补充 ge-py README、设计文档和 pyatc pytest 用例。 ## 变更类型 请选择本次引入的变更类型: - [ ] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [x] 📦 构建过程或辅助工具的变动 - [x] 📝 文档内容更新 ## 关联的Issue 暂无 ## 如何测试 - 新增 tests/ge/ut/ge/graph/pyge_tests/pyatc_test.py,覆盖 ge.pyatc 参数转发、GE_PYATC_CMDLINE_ARGV0、python3 -m ge.pyatc usage 名称设置和 wrapper 加载检查。 - 建议运行:pytest tests/ge/ut/ge/graph/pyge_tests/pyatc_test.py - 建议在打包环境验证:pyatc --help、python3 -m ge.pyatc --help 与 atc --help 行为一致。 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于 commit message 的格式、无效 commit 的合并等 ## 其他信息 pyatc 不在 Python 层重新解析 ATC 参数;命令行参数、help 文案、stdout/stderr 和退出码继续由既有 ATC 主流程处理。 See merge request: cann/ge!2561 | 4 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 3 个月前 | ||
| 3 个月前 | ||
| 4 个月前 |