CANN/GE Python Pass模式匹配配置示例
2026/9/10 23:39:21 网站建设 项目流程

Python Pass[v1]

【免费下载链接】geGE(Graph Engine)是面向昇腾的图编译器和执行器,提供了计算图优化、多流并行、内存复用和模型下沉等技术手段,加速模型执行效率,减少模型内存占用。 GE 提供对 PyTorch、TensorFlow 前端的友好接入能力,并同时支持 onnx、pb 等主流模型格式的解析与编译。项目地址: https://gitcode.com/cann/ge

功能描述

本目录提供pattern_base_pass/3_fuse_matmul_add_pass_with_pattern_matcher_config纯 Python版本示例,逻辑与 C++FuseMatMulAndAddPass一致。

  • 在构造函数中启用:
    • PatternMatcherConfigBuilder().enable_const_value_match()
    • PatternMatcherConfigBuilder().enable_ir_attr_match()
  • Patterns定义MatMul(x, y, transpose_x1=False, transpose_x2=False) + Add(Const)拓扑。
  • Replacement定义GEMM(x, y, Const, alpha=1, beta=1)
  • 注册阶段为PassStage.BEFORE_INFER_SHAPE

前置条件

  • 已 source CANN 环境(source ${ASCEND_PATH}/set_env.sh
  • 临时要求:run 包编译时使用的 Python 版本,需要与执行 sample 的 Python 版本保持一致
  • 环境变量设置请参考 C++ 版本 README 的程序编译
  • 可导入 GE Python 包(含ge.passes与 pass 加载链路)

run 包已包含 GE Python 运行时所需的ge_pywheel,本节不需要再单独安装ge_py-*.whl

使用方式

  1. 通过环境变量让 GE 在编译期加载该 Python pass(在3_fuse_matmul_add_pass_with_pattern_matcher_config/python目录下时):
export ASCEND_GE_PY_PASS_PATH=$PWD/python/src/python_fuse_matmul_add_pass.py
  1. 复用 C++ pass 样例 程序运行 中的模型生成、ATC 离线编译或在线推理步骤。

  2. 说明:

  • 该 sample 不是独立执行脚本,直接运行python python/src/python_fuse_matmul_add_pass.py不会触发 pass 执行
  • 预期输出会在 GE 编译流程真正加载该 Python pass 后打印

预期日志

在匹配与替换发生时,日志中会出现类似输出:

Define pattern for MatmulAddFusionPass in matcher config sample Define replacement for MatmulAddFusionPass in matcher config sample

对于es_forward_2.pyes_forward_3.py这类故意构造的未命中场景,通常仅看到 pattern 定义日志而不会进入 replacement。

【免费下载链接】geGE(Graph Engine)是面向昇腾的图编译器和执行器,提供了计算图优化、多流并行、内存复用和模型下沉等技术手段,加速模型执行效率,减少模型内存占用。 GE 提供对 PyTorch、TensorFlow 前端的友好接入能力,并同时支持 onnx、pb 等主流模型格式的解析与编译。项目地址: https://gitcode.com/cann/ge

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询