功能介绍
功能
该章节描述使用订阅算子信息的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接口
- 建议的接口调用顺序如下: