该章节描述通过Profiling AscendCL API采集并落盘性能数据,实现将采集到的Profiling数据写入文件,再使用Profiling工具解析该文件(请参见《性能分析工具使用指南》下的“高级功能>数据解析与导出”),并展示性能分析数据。
一个进程内,可以根据需求多次调用这些接口,基于不同的Profiling采集配置,采集数据。
一个进程内,只能调用一次aclInit接口,如果要修改Profiling采集配置,需修改*.json文件中的配置。详细使用说明请参见aclInit接口处的说明,不在本章节描述。
不能与Profiling AscendCL API for Subscription(订阅算子信息的Profiling AscendCL API)的接口交叉调用:aclprofInit接口和aclprofFinalize接口之间不能调用aclprofModelSubscribe接口、aclprofGet*接口、aclprofModelUnSubscribe接口。
如果已经通过aclInit接口配置了Profiling信息,则调用aclprofInit接口、aclprofStart接口、aclprofStop接口、aclprofFinalize时,会返回报错。
如果没有调用aclprofInit接口,调用aclprofStart接口、aclprofStop接口、aclprofFinalize时,会返回报错。
调用aclprofStart接口时,可以指定从一个Device上采集性能数据,也可以指定从多个Device上采集性能数据。
一个用户APP进程内,如果连续调用多次aclprofStart接口,指定重复的Profiling配置,或指定的Device重复,会返回报错。
aclInit接口-->aclprofInit接口-->aclprofStart接口(指定Device 0和Device 1)-->模型1加载-->模型1执行-->aclprofStop接口(与aclprofStart接口的aclprofConfig数据保持一致)-->aclprofStart接口(指定Device 1和Device 2)-->模型2加载-->模型2执行-->aclprofStop接口(与aclprofStart接口的aclprofConfig数据保持一致)-->aclprofFinalize接口-->执行其它任务-->模型卸载-->aclFinalize接口
aclInit接口-->aclprofInit接口-->aclprofStart接口(指定Device 0和Device 1)-->aclprofStart接口(指定Device 1和Device 2)-->模型1加载-->模型1执行-->模型2加载-->模型2执行-->aclprofStop接口-->aclprofStop接口-->aclprofFinalize-->执行其它任务-->模型卸载-->aclFinalize接口