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