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

#### 产品支持情况

| 产品 | 是否支持 |
| --- | --- |
| 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 aclmdlLoadWithConfig(const aclmdlConfigHandle *handle, uint32_t *modelId)
```


#### 参数说明

| 参数名 | 输入/输出 | 说明 |
| --- | --- | --- |
| handle | 输入 | 模型加载的配置对象的指针。类型定义请参见aclmdlConfigHandle。 需提前调用aclmdlCreateConfigHandle接口创建该对象，与aclmdlSetConfigOpt中的handle保持一致。 |
| modelId | 输出 | 模型ID的指针。 系统成功加载模型后会返回的模型ID。 |


#### 返回值说明

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


#### 参考资源

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

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

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