news 2026/7/4 6:26:16

CANN/ge离线编译模块API

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CANN/ge离线编译模块API

OfflineCompile

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

产品支持情况

产品是否支持
Atlas A3 训练系列产品/Atlas A3 推理系列产品
Atlas A2 训练系列产品/Atlas A2 推理系列产品

模块导入

from ge.offline_compile import ( build_initialize, build_finalize, build_model, save_model, bundle_build_model, bundle_save_model, GraphWithOptions, ModelBuffer ) from ge.error import GeError

功能说明

离线编译模块提供将计算图编译为离线模型(.om文件)的能力。支持单图编译(build_model)和多图 bundle 编译(bundle_build_model)。

使用流程如下:

  1. 调用build_initialize初始化离线编译资源。
  2. 调用build_model编译单个图,或调用bundle_build_model编译多图为 bundle 离线模型。
  3. 调用save_modelbundle_save_model将编译结果保存为.om文件。
  4. 调用build_finalize释放离线编译资源。

build_options中的配置优先级高于build_initialize中的global_options

当 GE 底层接口执行失败时,build_initializebuild_modelsave_modelbundle_build_modelbundle_save_model将抛出GeErrorGeError继承自RuntimeError, 异常信息包含 GE 内部错误信息和接口上下文。

数据类

GraphWithOptions

一个图与其对应的编译选项的组合,用于 bundle 编译场景。

@dataclass class GraphWithOptions: graph: Graph build_options: Dict[str, str]
属性类型说明
graphGraph待编译的计算图对象
build_optionsDict[str, str]该图对应的编译选项字典,键和值均为字符串,默认为空字典

ModelBuffer

离线模型缓冲区类,用于存储编译后的离线模型数据。该类不支持直接实例化,由build_modelbundle_build_model返回。

方法/属性说明
length(property)获取模型缓冲区长度(字节),返回 int
get_length()获取模型缓冲区长度(字节),返回 int

函数原型

build_initialize

def build_initialize(global_options: Optional[dict] = None) -> None

初始化离线编译所需的资源。

build_finalize

def build_finalize() -> None

释放离线编译资源。

build_model

def build_model(graph: Graph, build_options: Optional[dict] = None) -> ModelBuffer

编译单个计算图为离线模型,模型数据保存在内存中。

save_model

def save_model(output_file: str, model: ModelBuffer) -> None

将内存中的离线模型序列化为.om文件。

bundle_build_model

def bundle_build_model(graph_with_options: List[GraphWithOptions]) -> ModelBuffer

编译多个图为 bundle 离线模型。

bundle_save_model

def bundle_save_model(output_file: str, model: ModelBuffer) -> None

将内存中的 bundle 离线模型序列化为.om文件。

参数说明

build_initialize

参数类型必选说明
global_optionsOptional[dict]全局编译配置字典,键和值均为字符串。默认为 None,表示不传入额外配置

build_model

参数类型必选说明
graphGraph待编译的计算图对象
build_optionsOptional[dict]图级别的编译配置字典,键和值均为字符串。配置优先级见约束说明。默认为 None

save_model

参数类型必选说明
output_filestr输出模型文件的基础名称。生成的离线模型文件名自动以.om为后缀。若文件名中包含操作系统和架构信息,则该 OM 文件仅可在对应的操作系统和架构的运行环境中使用
modelModelBuffer离线模型缓冲区对象

bundle_build_model

参数类型必选说明
graph_with_optionsList[GraphWithOptions]包含多个GraphWithOptions的列表,每个元素包含一个计算图及其编译选项。列表中必须包含 2 个及以上图

bundle_save_model

参数类型必选说明
output_filestr输出模型文件的基础名称。生成的离线模型文件名自动以.om为后缀。若文件名中包含操作系统和架构信息,则该 OM 文件仅可在对应的操作系统和架构的运行环境中使用
modelModelBufferbundle 离线模型缓冲区对象

返回值说明

build_model

返回值类型说明
modelModelBuffer包含编译后离线模型数据的缓冲区对象

bundle_build_model

返回值类型说明
modelModelBuffer包含编译后 bundle 离线模型数据的缓冲区对象

其他函数

build_initializebuild_finalizesave_modelbundle_save_model无返回值。

约束说明

  • 使用离线编译模块前,必须先调用build_initialize初始化资源,使用完毕后必须调用build_finalize释放资源。
  • build_options中键和值必须均为字符串类型。
  • bundle_build_modelgraph_with_options列表中必须包含 2 个及以上图。
  • ModelBuffer对象不支持拷贝(copy)和深拷贝(deepcopy),也不支持直接实例化。
  • save_modelbundle_save_modeloutput_file参数为输出文件的基础名称,系统会自动添加.om后缀。
  • build_options中的配置优先级高于build_initialize中的global_options
  • GE 底层接口执行失败时将抛出 GeError,异常信息包含 GE 内部错误信息和接口上下文。

使用示例

from ge.offline_compile import ( build_initialize, build_finalize, build_model, save_model, bundle_build_model, bundle_save_model, GraphWithOptions ) from ge.graph import Graph # 初始化离线编译资源 build_initialize({"log_level": "0"}) # 单图编译 model = build_model(graph, {"input_format": "ND"}) save_model("output_model", model) print(f"模型大小:{model.length} 字节") # 多图 bundle 编译 gwo_list = [ GraphWithOptions(graph1, {"input_format": "ND"}), GraphWithOptions(graph2, {"input_format": "NCHW"}), ] bundle_model = bundle_build_model(gwo_list) bundle_save_model("bundle_output", bundle_model) # 释放离线编译资源 build_finalize()

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

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/4 6:25:31

Dev Proxy插件开发终极指南:构建自定义API模拟响应

Dev Proxy插件开发终极指南:构建自定义API模拟响应 【免费下载链接】dev-proxy Simulate API failures, throttling, and chaos — all from your command line. 项目地址: https://gitcode.com/gh_mirrors/de/dev-proxy Dev Proxy是一款强大的API模拟工具&a…

作者头像 李华
网站建设 2026/7/4 6:24:59

浏览器缓存侧信道攻击揭秘:XS-Leaks中Cache-Referrer技术详解

浏览器缓存侧信道攻击揭秘:XS-Leaks中Cache-Referrer技术详解 【免费下载链接】xsleaks A collection of browser-based side channel attack vectors. 项目地址: https://gitcode.com/gh_mirrors/xs/xsleaks 想要了解现代Web安全中的隐秘攻击方式吗&#xf…

作者头像 李华
网站建设 2026/7/4 6:25:04

JMeter 6.0.0性能测试实战:从压测到根因诊断的完整指南

1. 项目概述:为什么JMeter 6.0.0值得你投入时间如果你是一名软件测试工程师、开发人员或者运维,听到“性能测试”这个词,大概率会立刻想到JMeter。这个由Apache基金会维护的开源工具,几乎是性能压测领域的“瑞士军刀”。但你可能也…

作者头像 李华
网站建设 2026/7/4 6:23:04

Orgmode插件未来路线图:即将推出的新功能和改进计划

Orgmode插件未来路线图:即将推出的新功能和改进计划 【免费下载链接】orgmode orgmode is for keeping notes, maintaining TODO lists, planning projects, and authoring documents with a fast and effective plain-text system. 项目地址: https://gitcode.co…

作者头像 李华
网站建设 2026/7/4 6:22:10

Gloom主题系统深度解析:Material You动态色彩实现原理

Gloom主题系统深度解析:Material You动态色彩实现原理 【免费下载链接】Gloom GitHub reimagined with Material You 项目地址: https://gitcode.com/gh_mirrors/glo/Gloom Gloom是一款基于Material You设计理念重构的GitHub客户端,其核心特色在于…

作者头像 李华