性能分析方法、装置、存储介质及程序产品制造方法及图纸

技术编号:38746197 阅读:10 留言:0更新日期:2023-09-08 23:28
本公开涉及一种性能分析方法、装置、存储介质及程序产品,所述方法包括:分别获取第一模型在目标图形处理器和基准图形处理器上运行时的性能原始数据;分析性能原始数据,分别得到第一模型在目标图形处理器和基准图形处理器上运行时的性能展示数据;根据目标图形处理器和基准图形处理器的硬件性能比对参数,以及性能原始数据、性能展示数据中的至少一个,确定第一模型在目标图形处理器和基准图形处理器上运行时,目标图形处理器的软件栈与基准图形处理器的软件栈的性能差距。根据本公开实施例的性能分析方法,通过获取对应于软件栈的多种层次的性能原始数据并进行分析,实现从软件栈的不同层次定位性能瓶颈,提高性能分析效果。果。果。

【技术实现步骤摘要】
性能分析方法、装置、存储介质及程序产品


[0001]本公开涉及人工智能领域,尤其涉及一种性能分析方法、装置、存储介质及程序产品。

技术介绍

[0002]近年来,基于深度学习的人工智能应用落地正在如火如荼的展开。人工智能应用通常需要使用图形处理器(graphics processing unit,GPU)运行,而想要高性能的运行这些应用,就需要对图形处理器的软件栈进行深度调优。软件栈主要包括多个层次:驱动层,计算层,框架层,模型层,应用层。通常,这些层次是串行的调用关系,一旦某个层次性能较差,就会影响到软件栈整体的性能。那么就需要从不同的层次对软件栈的性能进行分析,从而找到软件栈性能瓶颈,然后针对性地调优,以提高人工智能应用的运行效果。
[0003]目前业界已有的分析工具基本都是从模型层或者驱动层进行分析,支持的层次较少,不能有效的找到软件栈性能瓶颈。

技术实现思路

[0004]有鉴于此,本公开提出了一种性能分析方法、装置、存储介质及程序产品,根据本公开实施例的性能分析方法,通过获取对应于软件栈的多种层次的性能原始数据并进行分析,实现从软件栈的不同层次定位性能瓶颈,提高性能分析效果。
[0005]根据本公开的一方面,提供了一种性能分析方法,所述方法包括:分别获取第一模型在目标图形处理器和基准图形处理器上运行时的性能原始数据,所述目标图形处理器的软件栈和所述基准图形处理器的软件栈具有相同的多个层次,所述性能原始数据包括与所述多个层次对应的多种类型的数据,每个层次对应至少一个类型;分析所述性能原始数据,分别得到所述第一模型在所述目标图形处理器和所述基准图形处理器上运行时的性能展示数据,所述性能展示数据包括算子执行耗时、算子调用次数和显卡利用率中的至少一种;根据所述目标图形处理器和所述基准图形处理器的硬件性能比对参数,以及所述性能原始数据、所述性能展示数据中的至少一个,确定所述第一模型在所述目标图形处理器和所述基准图形处理器上运行时,所述目标图形处理器的软件栈与所述基准图形处理器的软件栈的性能差距。
[0006]在一种可能的实现方式中,所述方法还包括:展示所述性能展示数据和所述性能差距,并接收反馈信息,所述反馈信息指示至少一种优化所述目标图形处理器的软件栈的方式;根据所述反馈信息优化所述目标图形处理器的软件栈;重新执行分别获取第一模型在目标图形处理器和基准图形处理器上运行时的性能原始数据及之后的步骤。
[0007]在一种可能的实现方式中,所述第一模型是计算密集类型时,所述目标图形处理器和所述基准图形处理器的硬件性能对比参数包括计算性能对比参数,所述方法还包括:从预设的计算任务库中选择计算密集类型的第一计算任务;按照所述基准图形处理器的软件栈的配置方式,对所述目标图形处理器的软件栈进行相同的配置;分别获取所述第一计
算任务在所述目标图形处理器和所述基准图形处理器上运行的耗时,根据所述耗时,确定所述目标图形处理器和所述基准图形处理器的软件栈的效率;根据所述目标图形处理器的理论算力和所述目标图形处理器的软件栈的效率得到所述目标图形处理器的实测性能参数;根据所述基准图形处理器的理论算力和所述基准图形处理器的软件栈的效率得到所述基准图形处理器的实测性能参数;根据所述目标图形处理器的实测性能参数和所述基准图形处理器的实测性能参数得到所述目标图形处理器和所述基准图形处理器的计算性能对比参数。
[0008]在一种可能的实现方式中,所述第一模型是输入输出密集类型时,所述目标图形处理器和所述基准图形处理器的硬件性能对比参数包括带宽对比参数,所述方法还包括:从预设的计算任务库中选择输入输出密集类型的第二计算任务;按照所述基准图形处理器的软件栈的配置方式,对所述目标图形处理器的软件栈进行相同的配置;分别获取所述第二计算任务在所述目标图形处理器和所述基准图形处理器上运行的耗时,根据所述耗时,确定所述目标图形处理器和所述基准图形处理器的实测带宽参数;根据所述目标图形处理器的实测带宽参数和所述基准图形处理器的实测带宽参数得到所述目标图形处理器和所述基准图形处理器的带宽对比参数。
[0009]在一种可能的实现方式中,所述多个层次包括计算层、框架层和模型层,所述性能原始数据包括的第一类型数据是所述模型层对应的模型端到端性能数据,第二类型数据是所述模型层对应的模型不同运行阶段性能数据,第三类型数据是所述框架层对应的痕迹数据,第四类型数据是所述计算层对应的核函数数据,所述不同运行阶段包括预处理阶段、内存到显存的数据传输阶段、推理阶段、显存到内存的数据传输阶段、后处理阶段。
[0010]在一种可能的实现方式中,所述第一模型的参数包括批尺寸,所述模型端到端性能数据包括吞吐量,所述分别获取第一模型在目标图形处理器和基准图形处理器上运行时的性能原始数据,包括:分别获取所述第一模型在所述目标图形处理器和所述基准图形处理器上运行的耗时;根据所述第一模型在所述目标图形处理器上运行的耗时与所述批尺寸的比值,得到所述第一模型在所述目标图形处理器上运行的吞吐量;根据所述第一模型在所述基准图形处理器上运行的耗时与所述批尺寸的比值,得到所述第一模型在所述基准图形处理器上运行的吞吐量。
[0011]在一种可能的实现方式中,所述第一模型包括多个算子,所述痕迹数据包括每一算子的算子执行耗时,所述分别获取第一模型在目标图形处理器和基准图形处理器上运行时的性能原始数据,包括:使用所述框架层提供的分析器,分别分析所述第一模型在目标图形处理器和基准图形处理器上运行时每一算子的性能,得到每一算子的算子执行耗时。
[0012]在一种可能的实现方式中,所述第一模型包括多个算子,所述算子调用所述计算层的核函数,所述核函数数据包括所述核函数的吞吐量和带宽,所述分别获取第一模型在目标图形处理器和基准图形处理器上运行时的性能原始数据,还包括:分别获取第一模型在目标图形处理器和基准图形处理器上运行时所述核函数的运行耗时、计算量以及访存大小;根据所述第一模型在所述目标图形处理器上运行时所述核函数的计算量与所述核函数的运行耗时的比值,得到所述第一模型在所述目标图形处理器上运行时所述核函数的吞吐量;根据所述第一模型在所述目标图形处理器上运行时所述核函数的访存大小与所述核函数的运行耗时的比值,得到所述第一模型在所述目标图形处理器上运行时所述核函数的带
宽;根据所述第一模型在所述基准图形处理器上运行时所述核函数的计算量与所述核函数的运行耗时的比值,得到所述第一模型在所述基准图形处理器上运行时所述核函数的吞吐量;根据所述第一模型在所述基准图形处理器上运行时所述核函数的访存大小与所述核函数的运行耗时的比值,得到所述第一模型在所述基准图形处理器上运行时所述核函数的带宽。
[0013]在一种可能的实现方式中,所述优化所述目标图形处理器的软件栈的方式包括以下至少一种:在所述框架层中增加显存池,针对所述第一模型包括的占用显存大小固定的算子,分配固定的显存地址;根据算子执行耗时大于第一阈值的至少一个算子的输入尺寸,调整该至少一个算子调用的核函数的参数;对所述第本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种性能分析方法,其特征在于,所述方法包括:分别获取第一模型在目标图形处理器和基准图形处理器上运行时的性能原始数据,所述目标图形处理器的软件栈和所述基准图形处理器的软件栈具有相同的多个层次,所述性能原始数据包括与所述多个层次对应的多种类型的数据,每个层次对应至少一个类型;分析所述性能原始数据,分别得到所述第一模型在所述目标图形处理器和所述基准图形处理器上运行时的性能展示数据,所述性能展示数据包括算子执行耗时、算子调用次数和显卡利用率中的至少一种;根据所述目标图形处理器和所述基准图形处理器的硬件性能比对参数,以及所述性能原始数据、所述性能展示数据中的至少一个,确定所述第一模型在所述目标图形处理器和所述基准图形处理器上运行时,所述目标图形处理器的软件栈与所述基准图形处理器的软件栈的性能差距。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:展示所述性能展示数据和所述性能差距,并接收反馈信息,所述反馈信息指示至少一种优化所述目标图形处理器的软件栈的方式;根据所述反馈信息优化所述目标图形处理器的软件栈;重新执行分别获取第一模型在目标图形处理器和基准图形处理器上运行时的性能原始数据及之后的步骤。3.根据权利要求1或2所述的方法,其特征在于,所述第一模型是计算密集类型时,所述目标图形处理器和所述基准图形处理器的硬件性能对比参数包括计算性能对比参数,所述方法还包括:从预设的计算任务库中选择计算密集类型的第一计算任务;按照所述基准图形处理器的软件栈的配置方式,对所述目标图形处理器的软件栈进行相同的配置;分别获取所述第一计算任务在所述目标图形处理器和所述基准图形处理器上运行的耗时,根据所述耗时,确定所述目标图形处理器和所述基准图形处理器的软件栈的效率;根据所述目标图形处理器的理论算力和所述目标图形处理器的软件栈的效率得到所述目标图形处理器的实测性能参数;根据所述基准图形处理器的理论算力和所述基准图形处理器的软件栈的效率得到所述基准图形处理器的实测性能参数;根据所述目标图形处理器的实测性能参数和所述基准图形处理器的实测性能参数得到所述目标图形处理器和所述基准图形处理器的计算性能对比参数。4.根据权利要求1或2所述的方法,其特征在于,所述第一模型是输入输出密集类型时,所述目标图形处理器和所述基准图形处理器的硬件性能对比参数包括带宽对比参数,所述方法还包括:从预设的计算任务库中选择输入输出密集类型的第二计算任务;按照所述基准图形处理器的软件栈的配置方式,对所述目标图形处理器的软件栈进行相同的配置;分别获取所述第二计算任务在所述目标图形处理器和所述基准图形处理器上运行的耗时,根据所述耗时,确定所述目标图形处理器和所述基准图形处理器的实测带宽参数;
根据所述目标图形处理器的实测带宽参数和所述基准图形处理器的实测带宽参数得到所述目标图形处理器和所述基准图形处理器的带宽对比参数。5.根据权利要求1

4中任一项所述的方法,其特征在于,所述多个层次包括计算层、框架层和模型层,所述性能原始数据包括的第一类型数据是所述模型层对应的模型端到端性能数据,第二类型数据是所述模型层对应的模型不同运行阶段性能数据,第三类型数据是所述框架层对应的痕迹数据,第四类型数据是所述计算层对应的核函数数据,所述不同运行阶段包括预处理阶段、内存到显存的数据传输阶段、推理阶段、显存到内存的数据传输阶段、后处理阶段。6.根据权利要求5所述的方法,其特征在于,所述第一模型的参数包括批尺寸,所述模型端到端性能数据包括吞吐量,所述分别获取第一模型在目标图形处理器和基准图形处理器上运行时的性能原始数据,包括:分别获取所述第一模型在所述目标图形处理器和所述基准图形处理器上运行的耗时;根据所述第一模型在所述目标图形处理器上运行的耗时与所述批尺寸的比值,得到所述第一模型在所述目标图形处理器上运行的吞...

【专利技术属性】
技术研发人员:请求不公布姓名
申请(专利权)人:摩尔线程智能科技北京有限责任公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1