总体介绍
该章节提供AscendCL API接口用于Profiling采集性能数据,实现方式支持以下三种:
- Profiling AscendCL API(通过Profiling AscendCL API采集并落盘性能数据):将采集到的Profiling数据写入文件,再使用Profiling工具解析该文件,并展示性能分析数据。
aclprofInit、aclprofFinalize、aclprofStart、aclprofStop接口配合使用,实现该方式的性能数据采集。该方式可获取AscendCL的接口性能数据、AI Core上算子的执行时间、AI Core性能指标数据等。
- Profiling AscendCL API for Extension(Profiling AscendCL API扩展接口):当用户需要定位应用程序或上层框架程序的性能瓶颈时,可在Profiling采集进程内(aclprofStart接口、aclprofStop接口之间)调用Profiling AscendCL API扩展接口(统称为msproftx接口),开启记录应用程序执行期间特定事件发生的时间跨度,并将数据写入Profiling数据文件,再使用Profiling工具解析该文件,并导出展示性能分析数据。
在aclprofStart和aclprofStop接口之间调用aclprofCreateStamp、aclprofSetStampTraceMessage、aclprofMark、aclprofPush、aclprofPop、aclprofRangeStart、aclprofRangeStop、aclprofDestroyStamp接口,获取应用程序执行期间特定时间发生的事件并记录事件发生的时间跨度。
msproftx:msprof tool extension,MindStudio系统调优工具扩展。
- Profiling AscendCL API for Subscription(订阅算子信息的Profiling AscendCL API):将采集到的Profiling数据解析后写入管道,由用户读入内存,再由用户调用AscendCL的接口获取性能数据。
aclprofModelSubscribe接口、aclprofGet*接口、aclprofModelUnSubscribe接口配合使用,实现该方式的性能数据采集,当前支持获取网络模型中算子的性能数据,包括算子名称、算子类型名称、算子执行时间等。
以上两种方式接口详细使用方法及约束请参见《应用软件开发指南 (C&C++)》手册“AscendCL API参考”章节下“Profiling数据采集”章节相关内容。
