文件最后提交记录最后更新时间
docs: 优化融合 pattern pass 文档&&Python pass API/行为调整 Co-authored-by: kobemini<gengchao4@huawei.com> # message auto-generated for no-merge-commit merge: !3248 merge doc/pass-reade-me into develop docs: 优化融合 pattern pass 文档&&Python pass API/行为调整 Created-by: kobemini Commit-by: kobemini Merged-by: cann-robot Description: # Pull Request ## 描述 本 PR 优化融合 Pattern Pass 的机制说明、开发指南和 Python 写法体验,目标是让用户能按文档理解机制并完成自定义融合 pass 开发。 主要变更: - 新增融合 Pattern Pass 特性文档,按“匹配 → 条件过滤 → 替换 → 边界规则 → capture tensor → DecomposePass → 执行阶段”说明统一机制。 - 新增 Python / C++ 融合 Pass 开发指南,Python 侧突出运行时接入、@pattern 表达式写法和 replacement 表达式返回。 - 删除旧的混合指南,将内容拆分到特性文档和 C++/Python 指南中,并更新 examples、架构文档和 ASCEND_GE_PY_PASS_PATH 文档入口。 - 收口 Python capture tensor 写法:去掉公开的独立 capture_tensor() helper,统一使用 Pattern.capture_tensor(...)。 - 增强 Pattern.capture_tensor:支持直接传入 TensorHolderNodeNodeIo,示例写法从 pat.capture_tensor(capture_tensor(matmul)) 简化为 pat.capture_tensor(matmul)。 - 增强 @pattern 自动 capture 规则:从“只捕获已访问输入”提升为“先捕获已访问输入,再捕获 return 的 pattern 输出”,并在文档中明确 capture 顺序。 ## 变更类型 - [ ] Bug 修复 - [x] 新功能 - [ ] 代码风格更新(格式化,局部变量) - [ ] 重构(既不修复错误也不增加功能的代码变动) - [ ] 构建过程或辅助工具的变动 - [x] 文档内容更新 ## 关联的 Issue 无 ## 如何测试 已执行: - git diff --check - python3 -m py_compile 检查修改过的 Python pass 框架文件、示例和 Python 测试文件 - 检查本 PR 修改文档中的相对链接均存在 - 检索确认旧的 capture_tensor(capture_tensor(...)) 嵌套写法、独立 capture_tensor 导出和旧文档入口已清理 - python3 -m pytest tests/ge/ut/ge/graph/pyge_tests/python_pattern_pass_test.py::... - ut_fusion_pass_executor_utest ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md) ## 其他信息 当前 PR 包含文档和 Python pass API/行为调整。@pattern 自动 capture 顺序为:先按输入序号捕获已访问的 inputs,再按 return 结构顺序捕获 pattern 输出。 See merge request: cann/ge!32483 天前
docs: 优化融合 pattern pass 文档&&Python pass API/行为调整 Co-authored-by: kobemini<gengchao4@huawei.com> # message auto-generated for no-merge-commit merge: !3248 merge doc/pass-reade-me into develop docs: 优化融合 pattern pass 文档&&Python pass API/行为调整 Created-by: kobemini Commit-by: kobemini Merged-by: cann-robot Description: # Pull Request ## 描述 本 PR 优化融合 Pattern Pass 的机制说明、开发指南和 Python 写法体验,目标是让用户能按文档理解机制并完成自定义融合 pass 开发。 主要变更: - 新增融合 Pattern Pass 特性文档,按“匹配 → 条件过滤 → 替换 → 边界规则 → capture tensor → DecomposePass → 执行阶段”说明统一机制。 - 新增 Python / C++ 融合 Pass 开发指南,Python 侧突出运行时接入、@pattern 表达式写法和 replacement 表达式返回。 - 删除旧的混合指南,将内容拆分到特性文档和 C++/Python 指南中,并更新 examples、架构文档和 ASCEND_GE_PY_PASS_PATH 文档入口。 - 收口 Python capture tensor 写法:去掉公开的独立 capture_tensor() helper,统一使用 Pattern.capture_tensor(...)。 - 增强 Pattern.capture_tensor:支持直接传入 TensorHolderNodeNodeIo,示例写法从 pat.capture_tensor(capture_tensor(matmul)) 简化为 pat.capture_tensor(matmul)。 - 增强 @pattern 自动 capture 规则:从“只捕获已访问输入”提升为“先捕获已访问输入,再捕获 return 的 pattern 输出”,并在文档中明确 capture 顺序。 ## 变更类型 - [ ] Bug 修复 - [x] 新功能 - [ ] 代码风格更新(格式化,局部变量) - [ ] 重构(既不修复错误也不增加功能的代码变动) - [ ] 构建过程或辅助工具的变动 - [x] 文档内容更新 ## 关联的 Issue 无 ## 如何测试 已执行: - git diff --check - python3 -m py_compile 检查修改过的 Python pass 框架文件、示例和 Python 测试文件 - 检查本 PR 修改文档中的相对链接均存在 - 检索确认旧的 capture_tensor(capture_tensor(...)) 嵌套写法、独立 capture_tensor 导出和旧文档入口已清理 - python3 -m pytest tests/ge/ut/ge/graph/pyge_tests/python_pattern_pass_test.py::... - ut_fusion_pass_executor_utest ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md) ## 其他信息 当前 PR 包含文档和 Python pass API/行为调整。@pattern 自动 capture 顺序为:先按输入序号捕获已访问的 inputs,再按 return 结构顺序捕获 pattern 输出。 See merge request: cann/ge!32483 天前
docs: 优化融合 pattern pass 文档&&Python pass API/行为调整 Co-authored-by: kobemini<gengchao4@huawei.com> # message auto-generated for no-merge-commit merge: !3248 merge doc/pass-reade-me into develop docs: 优化融合 pattern pass 文档&&Python pass API/行为调整 Created-by: kobemini Commit-by: kobemini Merged-by: cann-robot Description: # Pull Request ## 描述 本 PR 优化融合 Pattern Pass 的机制说明、开发指南和 Python 写法体验,目标是让用户能按文档理解机制并完成自定义融合 pass 开发。 主要变更: - 新增融合 Pattern Pass 特性文档,按“匹配 → 条件过滤 → 替换 → 边界规则 → capture tensor → DecomposePass → 执行阶段”说明统一机制。 - 新增 Python / C++ 融合 Pass 开发指南,Python 侧突出运行时接入、@pattern 表达式写法和 replacement 表达式返回。 - 删除旧的混合指南,将内容拆分到特性文档和 C++/Python 指南中,并更新 examples、架构文档和 ASCEND_GE_PY_PASS_PATH 文档入口。 - 收口 Python capture tensor 写法:去掉公开的独立 capture_tensor() helper,统一使用 Pattern.capture_tensor(...)。 - 增强 Pattern.capture_tensor:支持直接传入 TensorHolderNodeNodeIo,示例写法从 pat.capture_tensor(capture_tensor(matmul)) 简化为 pat.capture_tensor(matmul)。 - 增强 @pattern 自动 capture 规则:从“只捕获已访问输入”提升为“先捕获已访问输入,再捕获 return 的 pattern 输出”,并在文档中明确 capture 顺序。 ## 变更类型 - [ ] Bug 修复 - [x] 新功能 - [ ] 代码风格更新(格式化,局部变量) - [ ] 重构(既不修复错误也不增加功能的代码变动) - [ ] 构建过程或辅助工具的变动 - [x] 文档内容更新 ## 关联的 Issue 无 ## 如何测试 已执行: - git diff --check - python3 -m py_compile 检查修改过的 Python pass 框架文件、示例和 Python 测试文件 - 检查本 PR 修改文档中的相对链接均存在 - 检索确认旧的 capture_tensor(capture_tensor(...)) 嵌套写法、独立 capture_tensor 导出和旧文档入口已清理 - python3 -m pytest tests/ge/ut/ge/graph/pyge_tests/python_pattern_pass_test.py::... - ut_fusion_pass_executor_utest ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md) ## 其他信息 当前 PR 包含文档和 Python pass API/行为调整。@pattern 自动 capture 顺序为:先按输入序号捕获已访问的 inputs,再按 return 结构顺序捕获 pattern 输出。 See merge request: cann/ge!32483 天前
docs: 新增 GE-Python API 参考文档及环境变量说明 Co-authored-by: kobemini<gengchao4@huawei.com> # message auto-generated for no-merge-commit merge: !3181 merge docs/ge-python-api-doc into develop docs: 新增 GE-Python API 参考文档及环境变量说明 Created-by: kobemini Commit-by: kobemini Merged-by: cann-robot Description: # Pull Request ## 描述 为 ge-python 模块全部公开接口生成标准化 API 参考文档,并补充环境变量说明。 ## 变更类型 请选择本次引入的变更类型(勾选对应项): - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [x] 📝 文档内容更新 ## 关联的Issue 无 ## 如何测试 - 确认所有 Markdown 文件可正常渲染,无格式错误 - 确认文档中的模块导入路径与源码一致 - 确认文档中引用的接口与源码签名一致 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md) ## 其他信息 ### 新增文件(16 个) **API 参考文档**(docs/ge_python/api/): | 文件 | 模块/类 | |---|---| | Graph.md | graph 模块 — Graph 类 | | Node.md | graph 模块 — Node 类 | | Tensor.md | graph 模块 — Tensor 类 | | TensorDesc.md | graph 模块 — TensorDesc 类 | | Shape.md | graph 模块 — Shape 类 | | DataType.md | graph 模块 — DataType 枚举 | | Session.md | session 模块 — Session 类 | | Allocator.md | allocator 模块 — Allocator/MemBlock | | GeApi.md | ge_global 模块 — GeApi 类 | | OfflineCompile.md | offline_compile 模块 | | GraphBuilder.md | es 模块 — GraphBuilder 类 | | TensorHolder.md | es 模块 — TensorHolder 类 | | GeUtils.md | utils 模块 — GeUtils 类 | | Passes.md | passes 模块 — FusionBasePass/PatternFusionPass/DecomposePass | | pyatc.md | pyatc 模块 | **环境变量文档**(docs/ge_python/env/): | 文件 | 说明 | |---|---| | ASCEND_GE_PY_PASS_PATH.md | Python Pass 插件路径发现环境变量 | ### 修改文件 - docs/ge_python/README.md — 新增"API 参考"和"环境变量"导航章节 - docs/es/README.md — 链接修正 See merge request: cann/ge!31816 天前
README.md

GE-PY Python 模块文档

概述

GE-PY 是 GraphEngine 的 Python 接口模块,提供了 Pythonic 的图相关接口。为用户提供了便捷的图构建和操作,编译执行等功能。该模块对外头文件位于 api/python/ge/ge/ 目录下。

GE-PY 模块包含以下核心组件:

  • graph 模块 - 图基础操作模块,提供 Graph、Node、Tensor、TensorDesc 等核心类
  • passes 模块 - 自定义 Fusion Pass 开发模块,提供 Python 级别的图融合 Pass 开发能力
  • ge_global 模块 - GE 全局初始化和析构接口
  • offline_compile 模块 - 离线图编译接口
  • session 模块 - 图编译执行接口
  • allocator 模块 - 内存分配器抽象,供异步执行场景注册外置 allocator
  • utils 模块 - GE 公共工具接口,提供 Shape 推导、节点 AICore 支持性校验等能力
  • es 模块 - Eager-Style 图构建接口,提供函数式风格的图构建方式
  • pyatc 模块 - atc 命令行等价入口,便于指定 ATC 进程内的 python 解释器

文档导航

设计文档

  • GE-PY 模块类关系文档 - Graph、Node、Tensor、TensorDesc、Session 等基础模块的详细说明

    • offline_compile 模块:离线图编译接口
    • Graph 类:图操作的主要接口
    • Node 类:图节点操作接口
    • Tensor 类:张量数据类
    • Shape/TensorDesc 类:张量形状和元信息描述
    • GeApi 类:GE 初始化和析构
    • Session 类:图编译执行接口
    • Allocator 类:异步执行场景下的外置内存分配器接口
    • GeUtils 类:Shape 推导与节点 AICore 支持性校验工具接口
  • ES-PY 模块文档 - Eager-Style 图构建模块的详细说明

    • GraphBuilder 类:Eager-Style 图构建器
    • TensorHolder 类:张量持有者
  • Python Pass 设计文档 - Python 自定义 Fusion Pass 开发能力的详细设计说明

    • FusionBasePass 类:基础融合 Pass 基类
    • PatternFusionPass 类:模式匹配融合 Pass 基类
    • DecomposePass 类:算子分解 Pass 基类
    • Pass 注册与发现机制
    • Bridge 架构、native helper 与多版本产物装载设计
  • pyatc CLI 设计文档 - pyatc 命令行的详细设计说明

API 参考

环境变量

模块关系

  • graph 模块 - 提供图的基础操作能力,是其他模块的基础
  • passes 模块 - 提供自定义 Fusion Pass 开发能力,通过装饰器注册 Pass,在编译阶段由 GE 自动发现并执行
  • es 模块 - 提供函数式图构建方式,最终构建出 graph 模块的 Graph 对象
  • allocator 模块 - 为 session 异步执行提供按 stream 维度注册的外置内存分配能力
  • utils 模块 - 面向 graph 模块对象提供公共工具能力,供 Python pass 等场景对 replacement graph 执行 Shape 推导和节点支持性校验
  • session 模块 - 使用 graph 模块构建的图进行编译和执行,编译过程中会加载并执行 passes 模块注册的 Pass
  • ge_global 模块 - 提供全局初始化和资源管理
  • offline_compile 模块 - 提供离线模型构建、导出能力
  • pyatc 模块 - 提供与 atc 等价的命令行入口,便于指定 ATC 进程内的 python 解释器

使用示例

基础图操作示例

参考 使用es的python api构图sample的方式执行用例, 特别需要说明的是: 需要先安装包并设置对应的环境变量

离线图编译执行示例

参考 使用offline_compile的python api离线图编译执行sample 的方式执行用例,特别需要说明的是: 需要先安装包并设置对应的环境变量

更多示例

更多 Python 用例请参考 examples/es 目录下的各个子目录:

开发路线图

我们在2025年首次推出了ge-python的模块,目标是提供 Python 语言的构图、编译图、执行图的能力, 2026Q1 我们主要工作是重点完成 es api 集成,让用户安装好 ops 包后使用 Python 的 es api 构图能力:


核心架构

  • [December 2025] ge-python 模块已经完成设计和落地,具备了基本的使用es api 构图、 编译图、 执行图的能力。

基础API 集成

  • [December 2025]基础接口已经完成设计和落地。
  • [February 2026] es 的 python 算子 api 支持,详见es api集成路标
  • [April 2026] 图异步执行的python接口提供
  • [April 2026] 离线图编译执行的python接口提供
  • [April 2026] pyatc接口提供

自定义pass

  • [April 2026] 开发态主链已完成 FusionBasePass PatternFusionPass DecomposePass
  • [May 2026] 预制版本、多版本 native artifact 补齐
  • [~] [June 2026] fallback codegen 能力补齐

sample和相关文档

  • [December 2025]已提供对应的sample,涵盖常见使用场景。
  • [December 2025]已提供细化的文档,即本目录。

后向兼容

  • [December 2025]Python api 后向兼容完成设计并落地。

others

  • [] [后续阶段] 自定义算子入图python化支持