# 函数：create_config

| C函数原型 | aclprofConfig \*aclprofCreateConfig(uint32\_t \*deviceIdlist，uint32\_t deviceNums, aclprofAicoreMetrics aicoreMetrics, aclprofAicoreEvents \*aicoreEvents, uint64\_t dataTypeConfig) |
| --- | --- |
| Python函数 | prof\_config = acl.prof.create\_config(device\_list，aicore\_metrics, aicore\_events, data\_type\_config) |
| 函数功能 | 创建aclprofConfig类型的数据，表示创建Profiling配置数据。同步接口。 aclProfConfig类型数据可以只创建一次、多处使用，用户需要保证数据的一致性和准确性。 如需销毁aclprofConfig类型的数据，请参见函数：destroy\_config。 |
| 输入说明 | device\_list：Device ID列表。 aicore\_metrics：表示aclprofAicoreMetrics。 aicore\_events：表示AI Core事件，目前配置为0。 data\_type\_config： 用户选择如下多个值进行逻辑或（例如：ACL\_PROF\_ACL\_API\|ACL\_PROF\_AICORE\_METRICS），作为data\_type\_config参数值。每个值表示某一类性能数据，详细说明如下： ACL\_PROF\_ACL\_API：表示采集pyACL接口的性能数据，包括的同步异步内存复制时延等。 ACL\_PROF\_TASK\_TIME：采集算子下发耗时、算子执行耗时数据以及算子基本信息数据，提供更全面的性能分析数据。 ACL\_PROF\_TASK\_TIME\_L0：采集算子下发耗时、算子执行耗时数据。与ACL\_PROF\_TASK\_TIME相比，由于不采集算子基本信息数据，采集时性能开销较小，可更精准统计相关耗时数据。 ACL\_PROF\_AICORE\_METRICS：表示采集AI Core性能指标数据，逻辑或时必须包括该宏，aicore\_metrics入参处配置的性能指标采集项才有效。 ACL\_PROF\_TASK\_MEMORY：控制CANN算子的内存占用情况采集开关。仅采集GE组件算子。 ACL\_PROF\_AICPU：表示采集AI CPU任务的开始、结束数据。 ACL\_PROF\_L2CACHE：表示采集L2 Cache数据。 ACL\_PROF\_HCCL\_TRACE：控制hccl数据采集开关。 ACL\_PROF\_MSPROFTX：获取用户和上层框架程序输出的性能数据。 ACL\_PROF\_RUNTIME\_API：控制runtime api性能数据采集开关。 |
| 返回值说明 | prof\_config：int。 返回非0值表示成功，返回值为返回aclprofConfig类型的指针地址。 返回0表示失败。 |
| 约束说明 | 使用acl.prof.destroy\_config接口销毁aclprofConfig类型的数据，如不销毁会导致内存未被释放。 与acl.prof.destroy\_config接口配对使用，先调用acl.prof.create\_config接口再调用acl.prof.destroy\_config接口。 |
