CANN/ge:文件队列加载模型API

aclmdlLoadFromFileWithQ

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

产品支持情况

产品

是否支持

Atlas A3 训练系列产品 / Atlas A3 推理系列产品

Atlas A2 训练系列产品 / Atlas A2 推理系列产品

功能说明

从文件加载离线模型数据,模型的输入、输出数据都存放在队列中。本接口只支持加载固定Shape输入的模型。

本接口中通过modelPath参数传入的文件是适配昇腾AI处理器的离线模型,即*.om文件。关于如何获取om文件,请参见《ATC离线模型编译工具用户指南》

若对om模型文件大小有限制,本接口还支持加载外置权重文件,但需在构建模型时,将权重保存在单独的文件中。例如在使用ATC工具生成om文件时,将--external_weight参数设置为1(1表示将原始网络中的Const/Constant节点的权重保存在单独的文件中),且该文件保存在与om文件同级的weight目录下),那么在使用本接口加载om文件时,需将weight目录与om文件放在同级目录下,这时本接口会自行到weight目录下查找权重文件,否则可能会导致单独的权重文件加载不成功。

函数原型

aclError aclmdlLoadFromFileWithQ(const char *modelPath, uint32_t *modelId, const uint32_t *inputQ, size_t inputQNum, const uint32_t *outputQ, size_t outputQNum)

参数说明

参数名

输入/输出

说明

modelPath

输入

模型文件路径的指针,路径中包含文件名。运行程序(APP)的用户需要对该存储路径有访问权限。

modelId

输出

模型ID的指针。

系统成功加载模型后,返回模型ID作为后续操作时识别模型的标志。

inputQ

输入

队列ID的指针,一个模型的输入对应一个队列ID。

inputQNum

输入

输入队列大小。

outputQ

输入

队列ID的指针,一个模型的输出对应一个队列ID。

outputQNum

输入

输出队列大小。

返回值说明

返回0表示成功,返回其他值表示失败,请参见aclError。

约束说明

模型加载、模型执行、模型卸载的操作必须在同一个Context下(关于Context的创建请参见aclrtSetDevice或aclrtCreateContext)。在加载前,请先根据模型文件的大小评估内存空间是否足够,内存空间不足,会导致应用程序异常。

参考资源

当前还提供了aclmdlSetConfigOpt接口、aclmdlLoadWithConfig接口来实现模型加载,通过配置对象中的属性来区分,在加载模型时是从文件加载,还是从内存加载,以及内存是由系统内部管理,还是由用户管理。

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

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