---
title: aclmdlConfigAttr
description: "```"
url: https://www.hiascend.com/document/detail/zh/Atlas200IDKA2DeveloperKit/latest/Application%20Development%20Guide/aadgc/aclcppdevg_03_1682.html
sourcePath: /source/zh/Atlas200IDKA2DeveloperKit/23.0.RC2/Application Development Guide/aadgc/aclcppdevg_03_1682.html
indexId: 36961f8ffd60a3d6f07373ee3f686ee71253ae1537b874beea0555d022dbad29105
---
# aclmdlConfigAttr

```
typedef enum {
ACL_MDL_PRIORITY_INT32 = 0,
ACL_MDL_LOAD_TYPE_SIZET,
ACL_MDL_PATH_PTR,
ACL_MDL_MEM_ADDR_PTR,
ACL_MDL_MEM_SIZET,
ACL_MDL_WEIGHT_ADDR_PTR,
ACL_MDL_WEIGHT_SIZET,
ACL_MDL_WORKSPACE_ADDR_PTR,
ACL_MDL_WORKSPACE_SIZET,
ACL_MDL_INPUTQ_NUM_SIZET,
ACL_MDL_INPUTQ_ADDR_PTR,
ACL_MDL_OUTPUTQ_NUM_SIZET,
ACL_MDL_OUTPUTQ_ADDR_PTR，
ACL_MDL_WORKSPACE_MEM_OPTIMIZE
} aclmdlConfigAttr;
```


**表1 模型加载选项配置**

| 选项 | 取值说明 |
| --- | --- |
| ACL\_MDL\_PRIORITY\_INT32 | 模型执行的优先级，数字越小优先级越高，取值[0,7]，可选项。默认值为0。 |
| ACL\_MDL\_LOAD\_TYPE\_SIZET | 模型加载方式，必选项。 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 |
| 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。 |
| ACL\_MDL\_WORKSPACE\_MEM\_OPTIMIZE | 是否开启模型工作内存优化功能，1开启，0不开启。 若关注内存规划或内存资源有限时，建议在模型加载前，开启工作内存优化功能，此时工作内存中不包含存放模型输入、输出数据的内存，工作内存大小会减小，达到节省内存的目的。 在模型执行前，还需要由用户申请存放模型输入、输出数据的内存，因此即使在模型加载时开启工作内存优化功能，也不会影响后续的模型执行。 |


- 关于如何获取om文件，请参见《ATC工具使用指南(https://www.hiascend.com/document/detail/zh/canncommercial/700/inferapplicationdev/atctool/atlasatc_16_0001.html)》。

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