---
title: aclprofCreateConfig
description: "| 产品 | 是否支持 |"
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/API/runtimeapi/aclcppdevg_03_1610.html
sourcePath: /source/zh/canncommercial/900/API/runtimeapi/aclcppdevg_03_1610.html
indexId: 633a4795735f79dac0d1de3401307151912082d7aa8323cbd6007e234a629ca868
---
# aclprofCreateConfig

#### 产品支持情况

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


#### 功能说明

创建aclprofConfig类型的数据，表示创建Profiling配置数据。

aclProfConfig类型数据可以只创建一次、多处使用，用户需要保证数据的一致性和准确性。

如需销毁aclprofConfig类型的数据，请参见aclprofDestroyConfig。


#### 约束说明

- 使用aclprofDestroyConfig接口销毁aclprofConfig类型的数据，如不销毁会导致内存未被释放。

- 与  aclprofDestroyConfig
接口配对使用，先调用aclprofCreateConfig接口再调用aclprofDestroyConfig接口。


#### 函数原型

```
aclprofConfig *aclprofCreateConfig(uint32_t *deviceIdList, uint32_t deviceNums, aclprofAicoreMetrics aicoreMetrics, const aclprofAicoreEvents *aicoreEvents, uint64_t dataTypeConfig)
```


#### 参数说明

| 参数名 | 输入/输出 | 说明 |
| --- | --- | --- |
| deviceIdList | 输入 | Device ID列表。须根据实际环境的Device ID配置。 类型定义请参见aclprofConfig和aclprofAicoreMetrics。 |
| deviceNums | 输入 | Device的个数。需由用户保证deviceIdList中的Device个数与deviceNums参数值一致，否则可能会导致后续业务异常。 |
| aicoreMetrics | 输入 | 表示AI Core性能指标采集项。请参见aclprofAicoreMetrics。 |
| aicoreEvents | 输入 | 表示AI Core事件，目前配置为NULL。 |
| dataTypeConfig | 输入 | 用户选择如下多个宏进行逻辑或（例如：ACL\_PROF\_ACL\_API \| ACL\_PROF\_AICORE\_METRICS），作为dataTypeConfig参数值。每个宏表示某一类性能数据，详细说明如下： ACL\_PROF\_ACL\_API：表示采集接口的性能数据，包括Host与Device之间、Device间的同步异步内存复制时延等。 ACL\_PROF\_TASK\_TIME：采集算子下发耗时、算子执行耗时数据以及算子基本信息数据，提供更全面的性能分析数据。 ACL\_PROF\_TASK\_TIME\_L0：采集算子下发耗时、算子执行耗时数据。与ACL\_PROF\_TASK\_TIME和ACL\_PROF\_TASK\_TIME\_L2相比，由于不采集算子基本信息数据，采集时性能开销较小，可更精准统计相关耗时数据。 ACL\_PROF\_TASK\_TIME\_L2：采集算子下发耗时、算子执行耗时数据、算子基本信息数据（包括attr），提供更全面的性能分析数据。 ACL\_PROF\_GE\_API\_L0：采集动态Shape算子在Host调度主要阶段的耗时数据，可更精准统计相关耗时数据。 ACL\_PROF\_GE\_API\_L1：采集动态Shape算子在Host调度阶段更细粒度的耗时数据，提供更全面的性能分析数据。 ACL\_PROF\_OP\_ATTR：控制采集算子的属性信息，当前仅支持aclnn算子。 ACL\_PROF\_AICORE\_METRICS：表示采集AI Core性能指标数据，逻辑或时必须包括该宏，aicoreMetrics入参处配置的性能指标采集项才有效。 ACL\_PROF\_TASK\_MEMORY：控制CANN算子的内存占用情况采集开关，用于优化内存使用。单算子场景下，按照GE组件维度和算子维度采集算子内存大小及生命周期信息（单算子API执行方式不采集GE组件内存）；静态图和静态子图场景下，在算子编译阶段按照算子维度采集算子内存大小及生命周期信息。 ACL\_PROF\_AICPU：表示采集AI CPU任务的开始、结束数据。 ACL\_PROF\_L2CACHE：表示采集L2 Cache数据和TLB页表缓存命中率。 ACL\_PROF\_HCCL\_TRACE：控制通信数据采集开关。 ACL\_PROF\_MSPROFTX：获取用户和上层框架程序输出的性能数据。可在采集进程内（aclprofStart接口、aclprofStop接口之间）调用msproftx扩展接口或mstx接口开启记录应用程序执行期间特定事件发生的时间跨度，并写入性能数据文件，再使用msprof工具解析该文件，并导出展示性能分析数据。 ACL\_PROF\_TRAINING\_TRACE：控制迭代轨迹数据采集开关。 ACL\_PROF\_RUNTIME\_API：控制runtime api性能数据采集开关。 |


#### 返回值说明

- 返回aclprofConfig类型的指针，表示成功。
- 返回nullptr，表示失败。
