---
title: 功能介绍
description: "该章节描述使用订阅算子信息的Profiling AscendCL API采集性能数据，实现将采集到的Profiling数据解析后写入管道，由用户读入内存，再由用户调用AscendCL的接口获取性能数据。"
url: https://www.hiascend.com/document/detail/zh/Atlas200IDKA2DeveloperKit/latest/Application%20Development%20Guide/aadgc/aclcppdevg_03_1593.html
sourcePath: /source/zh/Atlas200IDKA2DeveloperKit/23.0.RC2/Application Development Guide/aadgc/aclcppdevg_03_1593.html
indexId: 95660742534858849bf7991ad9a78204e6b4062b4e695e8105f53c3d563cf51f105
---
# 功能介绍

#### 功能

该章节描述使用订阅算子信息的Profiling AscendCL API采集性能数据，实现将采集到的Profiling数据解析后写入管道，由用户读入内存，再由用户调用AscendCL的接口获取性能数据。

接口调用方式：aclprofModelSubscribe接口、aclprofGet*接口、aclprofModelUnSubscribe接口配合使用，实现该方式的性能数据采集，当前支持获取网络模型中算子的性能数据，包括算子名称、算子类型名称、算子执行时间等。


#### 总体约束

不能与Profiling AscendCL API（通过Profiling AscendCL API采集并落盘性能数据）的接口交叉调用：aclprofModelSubscribe接口和aclprofModelUnSubscribe接口之间不能调用aclprofInit接口、aclprofStart接口、aclprofStop接口和aclprofFinalize接口。


#### 接口约束说明

- 接口调用要求：

  -     aclprofModelSubscribe
接口在模型执行之前调用，若在模型执行过程中调用    aclprofModelSubscribe
接口，Profling采集到的数据为调用    aclprofModelSubscribe
接口之后的数据，可能导致数据不完整。
  -     aclprofModelSubscribe
接口需与    aclprofModelUnSubscribe
接口配对使用，不能在调用    aclprofModelUnSubscribe
接口前，多次调用
    aclprofModelSubscribe接口重复订阅相同的模型。

  - 不能调用    aclprofModelSubscribe
接口订阅不存在的模型ID。
  - 不能调用    aclprofModelUnSubscribe
接口取消订阅不存在的模型ID或未订阅过的模型ID。
  - 如果在同一个Device上加载了多个模型，只能对多个模型下发同样的订阅配置。
- 接口调用顺序：

  - 建议的接口调用顺序如下：
    模型加载-->aclprofModelSubscribe接口-->aclprofGetOpDescSize接口-->aclprofGetOpNum接口-->aclprofGetOpType/aclprofGetOpName/aclprofGetOpStart/aclprofGetOpEnd/aclprofGetOpDuration/aclprofGetModelId接口-->aclprofModelUnSubscribe接口

  - 错误的接口调用顺序示例如下，以重复定义同一个模型为例：
    模型1加载-->aclprofModelSubscribe接口(指定模型1)-->aclprofModelSubscribe接口(指定模型1)-->aclprofModelUnSubscribe接口
