aclmdlConfigAttr
typedef enum {
ACL_MDL_PRIORITY_INT32 = 0, //模型执行的优先级,数字越小优先级越高,取值[0,7],可选项。默认值为0。昇腾910 AI处理器,docker容器内安装CANN,且配置算力分组的场景,该枚举值不生效。
ACL_MDL_LOAD_TYPE_SIZET, //模型加载方式,见下文详细的取值说明,必选项。
ACL_MDL_PATH_PTR, //离线模型文件路径的指针,如果选择从文件加载模型,则该选项必选。
ACL_MDL_MEM_ADDR_PTR, //模型在内存中的起始地址,如果选择从内存加载模型,则该选项必选。
ACL_MDL_MEM_SIZET, //模型在内存中的大小,如果选择从内存加载模型,则该选项必选,与ACL_MDL_MEM_ADDR_PTR选项配合使用。
ACL_MDL_WEIGHT_ADDR_PTR, //Device上模型权值内存(存放权值数据)的指针,如果需要由用户管理权值内存,则该选项必选。若不配置该选项,则表示由系统管理内存。
ACL_MDL_WEIGHT_SIZET, //权值内存大小,单位为Byte,如果需要由用户管理权值内存,则该选项必选,与ACL_MDL_WEIGHT_ADDR_PTR选项配合使用。
ACL_MDL_WORKSPACE_ADDR_PTR, //Device上模型所需工作内存(存放模型执行过程中的临时数据)的指针,如果需要由用户管理工作内存,则该选项必选。若不配置该选项,则表示由系统管理内存。
ACL_MDL_WORKSPACE_SIZET, //模型所需工作内存的大小,单位为Byte,如果需要由用户管理权值内存,则该选项必选,与ACL_MDL_WORKSPACE_ADDR_PTR选项配合使用。
ACL_MDL_INPUTQ_NUM_SIZET, //模型输入队列大小 ,带队列加载模型时,该选项必选,与ACL_MDL_INPUTQ_ADDR_PTR选项配合使用。
ACL_MDL_INPUTQ_ADDR_PTR, //模型输入队列ID的指针,带队列加载模型时,该选项必选,一个模型输入对应一个队列ID。
ACL_MDL_OUTPUTQ_NUM_SIZET, //模型输出队列大小,带队列加载模型时,该选项必选,与ACL_MDL_OUTPUTQ_ADDR_PTR选项配置使用。
ACL_MDL_OUTPUTQ_ADDR_PTR //模型输出队列ID的指针,带队列加载模型时,该选项必选,一个模型输出对应一个队列ID。
} aclmdlConfigAttr;
ACL_MDL_LOAD_TYPE_SIZET(表示模型加载方式)的取值使用如下宏:
- ACL_MDL_LOAD_FROM_FILE
#define ACL_MDL_LOAD_FROM_FILE 1
- ACL_MDL_LOAD_FROM_FILE_WITH_MEM
#define ACL_MDL_LOAD_FROM_FILE_WITH_MEM 2
- ACL_MDL_LOAD_FROM_MEM
#define ACL_MDL_LOAD_FROM_MEM 3
- ACL_MDL_LOAD_FROM_MEM_WITH_MEM
#define ACL_MDL_LOAD_FROM_MEM_WITH_MEM 4
- ACL_MDL_LOAD_FROM_FILE_WITH_Q
#define ACL_MDL_LOAD_FROM_FILE_WITH_Q 5
关于如何获取om文件,请参见模型构建。
对om模型文件大小有限制的场景下,如果使用ATC工具生成om文件时,将--external_weight参数设置为1(1表示将原始网络中的Const/Constant节点的权重保存在单独的文件中,且该文件保存在与om文件同级的weight目录下),那么在使用本接口加载om文件时,需将weight目录与om文件放在同级目录下,这时AscendCL会自行到weight目录下查找权重文件,否则可能会导致单独的权重文件加载不成功。
父主题: 数据类型及其操作接口