下载
中文
注册

aclgrphBuildModel

函数功能

编译生成离线模型并保存到内存缓冲区。

  • 输入模型为非切片模型:

    将输入的Graph编译为适配昇腾AI处理器的离线模型

函数原型

数据类型为string的接口后续版本会废弃,建议使用数据类型为非string的接口。

  • 输入模型为非切片模型:
    1
    2
    graphStatus aclgrphBuildModel(const ge::Graph &graph, const std::map<std::string, std::string> &build_options, ModelBufferData &model)
    graphStatus aclgrphBuildModel(const ge::Graph &graph, const std::map<AscendString, AscendString> &build_options, ModelBufferData &model)
    

约束说明

  • 对于aclgrphBuildModel和aclgrphBuildInitialize中重复的编译配置参数,建议不要重复配置,如果设置重复,则以aclgrphBuildModel传入的为准
  • 使用aclgrphBuildModel接口传入options参数时,多张图场景下,如果传入的参数为ge::ir_option::PRECISION_MODE或者ge::ir_option::PRECISION_MODE_V2,多张图设置的参数值需要相同。
  • 使用aclgrphBuildModel接口编译的离线模型,保存在内存缓冲区中:
    • 如果希望将内存缓冲区中的模型保存为离线模型文件xx.om,则需要调用aclgrphSaveModel接口,序列化保存离线模型到文件中。后续使用AscendCL接口进行推理业务,需要使用从文件中加载模型的接口,例如aclmdlLoadFromFile,然后使用aclmdlExecute接口执行推理。
    • 如果离线模型保存在内存缓冲区:

      后续使用AscendCL接口进行推理业务时,需要使用从内存中加载模型的接口,例如aclmdlLoadFromMem,然后使用aclmdlExecute接口执行推理。

    AscendCL接口详细介绍请参见AscendCL应用软件开发指南(C&C++)手册中的“模型推理”章节。

参数说明

参数名

输入/输出

描述

graph/graphs

输入

  • 非切片场景:待编译的Graph。

build_options

输入

graph级别配置参数。

配置参数map映射表,key为参数类型,value为参数值,均为字符串格式,用于描述离线模型编译配置信息。

map中的配置参数请参见aclgrphBuildModel支持的配置参数

model

输出

编译生成的离线模型缓存,模型保存在内存缓冲区中。详情请参见ModelBufferData

1
2
3
4
5
struct ModelBufferData
{
  std::shared_ptr<uint8_t> data = nullptr;
  uint64_t length;
};

其中data指向生成的模型数据,length代表该模型的实际大小。

返回值

参数名

类型

描述

-

graphStatus

GRAPH_SUCCESS:成功。

其他值:失败。