---
title: aclmdlSetConfigOpt
description: "| 产品 | 是否支持 |"
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/API/ascendgraphapi/aclcppdevg_03_0289.html
sourcePath: /source/zh/canncommercial/900/API/ascendgraphapi/aclcppdevg_03_0289.html
indexId: ee9875cf9dc4ee7f7f20c54a9e479431fa57085deff8ad4bcf32b7d2ca21abd572
---
# aclmdlSetConfigOpt

#### 产品支持情况

| 产品 | 是否支持 |
| --- | --- |
| Atlas 350 加速卡 | √ |
| Atlas A3 训练系列产品 / Atlas A3 推理系列产品 | √ |
| Atlas A2 训练系列产品 / Atlas A2 推理系列产品 | √ |
| Atlas 200I/500 A2 推理产品 | √ |
| Atlas 推理系列产品 | √ |
| Atlas 训练系列产品 | √ |


#### 功能说明

设置模型加载的配置对象中的各属性的取值，包括模型执行的优先级、模型的文件路径或内存地址、内存大小等。

本接口需要与以下其它接口配合，实现模型加载功能：1. 调用  aclmdlCreateConfigHandle
接口创建模型加载的配置对象。
2. （可选）调用  aclmdlSetExternalWeightAddress
接口配置存放外置权重的Device内存。
3. 多次调用  aclmdlSetConfigOpt
接口设置配置对象中每个属性的值。
4. 调用  aclmdlLoadWithConfig
接口指定模型加载时需要的配置信息，并进行模型加载。
5. 模型加载成功后，调用  aclmdlDestroyConfigHandle
接口销毁。


#### 函数原型

```
aclError aclmdlSetConfigOpt(aclmdlConfigHandle *handle, aclmdlConfigAttr attr, const void *attrValue, size_t valueSize)
```


#### 参数说明

| 参数名 | 输入/输出 | 说明 |
| --- | --- | --- |
| handle | 输出 | 模型加载的配置对象的指针。类型定义请参见aclmdlConfigHandle。 需提前调用aclmdlCreateConfigHandle接口创建该对象。 |
| attr | 输入 | 指定需设置的属性。类型定义请参见aclmdlConfigAttr。 |
| attrValue | 输入 | 指向属性值的指针，attr对应的属性取值。 如果属性值本身是指针，则传入该指针的地址。 |
| valueSize | 输入 | attrValue部分的数据长度。 用户可使用C/C++标准库的函数sizeof(\*attrValue)查询数据长度。 |


#### 返回值说明

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


#### 参考资源

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

当前还提供了以下接口实现模型加载的功能，从使用的接口上区分从文件加载，还是从内存加载，以及内存是由系统内部管理，还是由用户管理。

-   aclmdlLoadFromFile
接口
-   aclmdlLoadFromMem
接口
-   aclmdlLoadFromFileWithMem
接口
-   aclmdlLoadFromMemWithMem
接口
-   aclmdlLoadFromFileWithQ
接口
-   aclmdlLoadFromMemWithQ
接口
