CANN/GE离线编译执行样例
2026/9/10 20:18:24 网站建设 项目流程

样例使用指导

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

1、功能描述

本样例演示离线图编译执行的流程,关于编译图为离线模型更多信息,请参考 生成离线模型。

2、目录结构

cpp/ ├── CMakeLists.txt // CMake 构建文件 ├── main.cpp // 程序主入口 ├── run_sample.sh // 执行脚本 ├── README.md // README 文件 └── src/ ├── CMakeLists.txt // CMake 构建文件 ├── common.h / common.cpp // 公共逻辑文件 ├── single_model/ // 单模型编译与推理 └── bundle_model/ // Bundle 编译与推理

3、使用方法

3.1、准备cann包

  • 通过 环境准备 中“方式三:手动安装软件包 > 场景1:体验master版本能力或基于master版本进行开发”,正确安装toolkitops
  • 设置环境变量 (假设包安装在/usr/local/Ascend/)
source /usr/local/Ascend/cann/set_env.sh

3.2、图编译和图执行

执行单模型样例:

bash run_sample.sh -t sample_and_run

该命令会:

  1. 编译 C++ 可执行程序
  2. 构建Add图,离线编译并生成add_sample.om
  3. 加载、执行该离线模型

执行 bundle 样例:

bash run_sample.sh -t sample_and_run_bundle

该命令会:

  1. 编译 C++ 可执行程序
  2. Add图与Mul图打成 Bundle,离线编译并生成bundle_sample.om
  3. 加载 Bundle,并分别执行两个子模型

离线编译在无卡场景下如需指定目标芯片版本,可增加--soc-version

bash run_sample.sh -s Ascend910B1 -t sample_and_run bash run_sample.sh -s Ascend910B1 -t sample_and_run_bundle

也可以拆分为"只做图编译"和"只做图执行"两个阶段:

bash run_sample.sh -t build_model bash run_sample.sh -t run_infer bash run_sample.sh -t build_bundle_model bash run_sample.sh -t run_bundle_infer

run_infer/run_bundle_infer要求 om 模型已存在

执行成功后会看到:

[Success] sample 执行成功
输出文件说明

执行成功后会在当前目录生成以下文件:

  • add_sample.om- 单模型离线文件
  • bundle_sample.om- Bundle 离线模型文件

3.3、日志打印

可执行程序执行过程中如果需要日志打印来辅助定位,可以在bash run_sample.sh之前设置如下环境变量来让日志打印到屏幕

export ASCEND_SLOG_PRINT_TO_STDOUT=1 #日志打印到屏幕 export ASCEND_GLOBAL_LOG_LEVEL=0 #日志级别为debug级别

4、核心流程介绍

4.1、单模型离线编译执行

  • 使用aclgrphBuildInitialize初始化编译环境
  • 构建Graph并通过aclgrphBuildModel生成离线模型
  • 使用aclgrphSaveModel保存om文件
  • 通过aclmdlLoadFromFileaclmdlExecute执行离线模型

4.2、Bundle 离线编译执行

  • 使用多个Graph组织 Bundle
  • 通过aclgrphBundleBuildModel一次性构建 Bundle 模型
  • 使用aclgrphBundleSaveModel保存bundle_sample.om
  • 通过aclmdlBundleLoadFromFile加载 Bundle,并逐个执行子模型

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

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

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

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

立即咨询