CANN/ge获取编译模型接口
2026/9/10 4:26:49 网站建设 项目流程

GetCompiledModel

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

头文件/库文件

  • 头文件:#include <ge/ge_api_v2.h>
  • 库文件:libge_runner_v2.so

功能说明

获取图编译后的序列化模型。

调用本接口前,必须先调用CompileGraph;用户通过本接口获取内存缓冲区的序列化模型数据ModelBufferData后,后续操作分为两种:

  • 用法一:(推荐用法)生成om离线模型

    1. 在线编译:通过GetCompiledModel接口获取编译后的序列化模型。

    2. 调用aclgrphSaveModel接口将序列化模型保存为om离线模型。

      调用GetCompiledModel接口和调用aclgrphSaveModel接口时,用户应确保所使用的CANN软件包版本一致,接口内不做校验。

    3. 调用从文件中加载模型接口aclmdlLoadFromFile,然后使用aclmdlExecute接口执行推理。

  • 用法二:不生成om离线模型

    1. 在线编译:通过GetCompiledModel接口获取编译后的序列化模型。
    2. 调用从内存中加载模型接口aclmdlLoadFromMem,然后使用aclmdlExecute接口执行推理。

推荐使用用法一:因为生成om离线模型后,调用GetCompiledModel接口和调用aclmdlLoadFromFile接口的CANN软件包版本号可以不一致;而如果使用用法二,由于内存缓冲区的序列化模型数据ModelBufferData不保证版本兼容性,要求调用GetCompiledModel接口和调用aclmdlLoadFromMem接口的CANN软件包版本号一致,否则可能引发未定义行为。

接口详细介绍请参见《应用开发 (C&C++)》中的“模型推理”章节。

函数原型

Status GetCompiledModel(uint32_t graph_id, ModelBufferData &model_buffer)

参数说明

参数名输入/输出说明
graph_id输入Graph对应的ID。
model_buffer输出序列化的模型,保存在内存缓冲区中。详情请参见ModelBufferData。
其中data指向生成的模型数据,length代表该模型的实际大小。

返回值说明

参数名类型说明
-StatusSUCCESS:成功
FAILED:失败

约束说明

  • 变量与转换算子融合会导致图需要重新编译:由于通过GetCompiledModel接口获取序列化模型后无法再次编译,因此若图中包含变量,需将性能调优 > ge.exec.variable_acc参数配置为False,以关闭变量与转换算子的融合功能。
  • 关于启用外置权重功能(内存管理 >ge.externalWeight)后的权重文件管理,需注意以下要点:
    • 默认行为:当开启外置权重功能时,系统会默认将权重文件写入一个临时目录(具体路径可参考ge.externalWeight说明)。需要注意的是,在GeSession对象析构时,该临时目录及其下的文件将被自动清理删除。

    • 操作建议:为避免权重文件在GeSession析构后丢失,用户可以参考以下任一方法进行持久化保存:

      • 指定专用目录:建议在初始化时,通过配置ge.externalWeightDir参数,直接指定一个专用的、非临时的路径用于存放权重文件。
      • 提前备份文件:在GeSession对象析构之前,通过应用程序主动将临时路径下的权重文件拷贝至其他指定安全目录。
      • 保存离线模型:在GeSession析构之前,调用aclgrphSaveModel接口,将已编译好的模型(包含权重)序列化保存为独立的om离线模型文件。

      通过以上方式,可以有效管理外置权重文件的生命周期,确保其不会因GeSession的销毁而意外丢失。

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

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

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

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

立即咨询