【2023 · CANN训练营第一季】AscendCL模型加载与执行流程
AscendCL模型加载与执行流程
模型加载流程-使用不同的模型加载接口
模型加载流程-使用同一个模型加载接口
关键接口的说明如下:
在模型加载前,需要先构建出适配昇腾AI处理器的离线模型(*.om文件),构建方式请参见模型构建 。
当由用户管理内存时,为确保内存不浪费,在申请工作内存、权值内存前,需要调用aclmdlQuerySize 接口查询模型运行时所需工作内存、权值内存的大小。
如果模型输入数据的Shape不确定,则不能调用aclmdlQuerySize 接口查询内存大小,在加载模型时,就无法由用户管理内存,因此需选择由系统管理内存的模型加载接口(例如,aclmdlLoadFromFile 、aclmdlLoadFromMem )。
支持以下方式加载模型,模型加载成功后,返回标识模型的模型ID:
从使用的接口上区分从文件加载,还是从内存加载,以及内存是由系统内部管理,还是由用户管理。
aclmdlLoadFromFile :从文件加载离线模型数据,由系统内部管理内存。
aclmdlLoadFromMem :从内存加载离线模型数据,由系统内部管理内存。
aclmdlLoadFromFileWithMem :从文件加载离线模型数据,由用户自行管理模型运行的内存(包括工作内存和权值内存,工作内存用于模型执行过程中的临时数据,权值内存用于存放权值数据)。
aclmdlLoadFromMemWithMem :从内存加载离线模型数据,由用户自行管理模型运行的内存(包括工作内存和权值内存)。
使用aclmdlSetConfigOpt 接口、aclmdlLoadWithConfig 接口时,是通过配置对象中的属性来区分,在加载模型时是从文件加载,还是从内存加载,以及内存是由系统内部管理,还是由用户管理
- 点赞
- 收藏
- 关注作者
评论(0)