本公开涉及人工智能领域,尤其涉及一种性能分析方法、装置、计算设备及存储介质。
背景技术:
1、近年来,人工智能(artificial intelligence,ai)的研究及落地正在如火如荼地展开,ai应用正在进入人们的日常生活。ai模型需要大规模的矩阵运算,通常使用擅长矩阵运算的图形处理器(graphics processing unit,gpu)来加速ai应用。
2、gpu运行ai模型的性能与ai软件栈的性能紧密相关,ai软件栈中的深度神经网络(deep neural networks,dnn)库是一个帮助gpu加速的深度神经网络基元库,能够以高度优化的方式实现标准例程(如前向和反向卷积、池化层、归一化和激活层)。而dnn库中算子的核函数(英文:kernel)是在gpu上执行的数据并行处理程序,它的性能大大决定了dnn库的表现,进而决定ai软件栈和ai模型的性能。想要这些核函数能高性能的运行,就需要对dnn库中的核函数进行调优。
3、核函数调优的问题在于如何准确的了解核函数当前的性能,以及优化的目标。并且,开发者通常都是在一个具体的环境下分析性能,需要一个简单易用的工具,而这也是相关技术中所或缺的。
技术实现思路
1、有鉴于此,本公开提出了一种性能分析方法、装置、计算设备及存储介质。所述技术方案包括:
2、根据本公开的一方面,提供了一种性能分析方法,所述方法包括:
3、接收通过命令行工具输入的测试命令,所述测试命令用于指示待分析的模型;
4、根据所述测试命令对所述模型进行性能分析,得到性能展示数据,所述性能展示数据用于指示目标核函数的性能,所述目标核函数为所述模型被图形处理器运行时调用的核函数;
5、通过所述命令行工具输出目标地址,所述目标地址用于指示所述性能展示数据。
6、在一种可能的实现方式中,所述根据所述测试命令对所述模型进行性能分析,得到性能展示数据,包括:
7、根据所述测试命令,通过所述图形处理器运行所述模型;
8、获取所述模型运行的性能原始数据,并分析所述性能原始数据得到所述性能展示数据,所述性能展示数据符合预设的数据结构。
9、在另一种可能的实现方式中,所述通过所述命令行工具输出目标地址之后,还包括:
10、当所述目标地址被打开时,使用可视化工具以图表的形式展示所述性能展示数据。
11、在另一种可能的实现方式中,所述方法还包括:
12、预先配置镜像文件,并在所述镜像文件中配置所述可视化工具、所述可视化工具的数据源和对应的初始仪表盘页面。
13、在另一种可能的实现方式中,所述当所述目标地址被打开时,使用可视化工具以图表的形式展示所述性能展示数据,包括:
14、当所述目标地址被打开时,展示所述目标核函数对应的目标仪表盘页面,所述目标仪表盘页面包括第一图表、第二图表、第三图表中的一种或多种;
15、其中,第一图表用于筛选并展示所述模型的算子名称、算子类型和对应的所述目标核函数,所述第二图表用于展示历史的性能分析任务和所述历史的性能分析任务的任务信息,所述第三图表用于屋顶线模型中表示所述图形处理器运行所述目标核函数的性能的点,当所述点的位置落在所述屋顶线模型中的性能瓶颈区域时,用于指示所述目标核函数存在性能瓶颈。
16、在另一种可能的实现方式中,所述性能展示数据包括所述目标核函数的索引、名称、运行耗时、吞吐量、计算效率、带宽、带宽效率、运行环境信息中的一种或多种;
17、其中,所述吞吐量用于指示所述目标核函数的计算性能,所述计算效率为所述吞吐量与所述图形处理器的第一硬件参数之间的比值,所述带宽用于指示所述目标核函数的数据传输性能、所述带宽效率为所述带宽与所述图形处理器的第二硬件参数之间的比值,所述运行环境信息用于指示所述目标核函数在所述图形处理器上运行的运行环境。
18、在另一种可能的实现方式中,所述方法还包括:
19、获取所述图形处理器的目标型号;
20、在预设参数库中根据所述图形处理器的目标型号获取对应的目标硬件参数,所述预设参数库包括多个图形处理器型号与多个硬件参数之间的对应关系,所述目标硬件参数用于对所述模型进行性能分析。
21、在另一种可能的实现方式中,所述模型包括多个算子,所述目标核函数包括所述算子在运行时调用深度神经网络库文件中的核函数。
22、在另一种可能的实现方式中,所述命令行工具包括上下文管理器,所述上下文管理器用于保存并更新通过所述命令行工具输入的配置信息,所述配置信息用于指示所述模型的运行参数。
23、根据本公开的另一方面,提供了一种性能分析装置,所述装置包括:
24、接收模块,用于接收通过命令行工具输入的测试命令,所述测试命令用于指示待分析的模型;
25、分析模块,用于根据所述测试命令对所述模型进行性能分析,得到性能展示数据,所述性能展示数据用于指示目标核函数的性能,所述目标核函数为所述模型被图形处理器运行时调用的核函数;
26、输出模块,用于通过所述命令行工具输出目标地址,所述目标地址用于指示所述性能展示数据。
27、根据本公开的另一方面,提供了一种计算设备,所述计算设备包括:处理器;用于存储处理器可执行指令的存储器;
28、其中,所述处理器被配置为:
29、接收通过命令行工具输入的测试命令,所述测试命令用于指示待分析的模型;
30、根据所述测试命令对所述模型进行性能分析,得到性能展示数据,所述性能展示数据用于指示目标核函数的性能,所述目标核函数为所述模型被图形处理器运行时调用的核函数;
31、通过所述命令行工具输出目标地址,所述目标地址用于指示所述性能展示数据。
32、根据本公开的另一方面,提供了一种非易失性计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现第一方面或第一方面的任意一种可能的实现方式提供的方法。
33、本公开实施例提供了一种性能分析方法,可接收通过命令行工具输入的测试命令,测试命令用于指示待分析的模型;根据测试命令对模型进行性能分析,得到性能展示数据,性能展示数据用于指示目标核函数的性能,目标核函数为模型被图形处理器运行时调用的核函数;通过命令行工具输出目标地址,目标地址用于指示性能展示数据;即提供了一个命令行工具,可以在本地通过命令行工具运行测试,从而自动进行性能分析得到目标核函数的性能展示数据,无需额外配置,轻巧且简单易用。
1.一种性能分析方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述根据所述测试命令对所述模型进行性能分析,得到性能展示数据,包括:
3.根据权利要求1所述的方法,其特征在于,所述通过所述命令行工具输出目标地址之后,还包括:
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
5.根据权利要求3所述的方法,其特征在于,所述当所述目标地址被打开时,使用可视化工具以图表的形式展示所述性能展示数据,包括:
6.根据权利要求1至5任一所述的方法,其特征在于,所述性能展示数据包括所述目标核函数的索引、名称、运行耗时、吞吐量、计算效率、带宽、带宽效率、运行环境信息中的一种或多种;
7.根据权利要求1至5任一所述的方法,其特征在于,所述方法还包括:
8.根据权利要求1至5任一所述的方法,其特征在于,所述模型包括多个算子,所述目标核函数包括所述算子在运行时调用深度神经网络库文件中的核函数。
9.根据权利要求1至5任一所述的方法,其特征在于,所述命令行工具包括上下文管理器,所述上下文管理器用于保存并更新通过所述命令行工具输入的配置信息,所述配置信息用于指示所述模型的运行参数。
10.一种性能分析装置,其特征在于,所述装置包括:
11.一种计算设备,其特征在于,所述计算设备包括:处理器;用于存储处理器可执行指令的存储器;
12.一种非易失性计算机可读存储介质,其上存储有计算机程序指令,其特征在于,所述计算机程序指令被处理器执行时实现权利要求1至9中任意一项所述的方法。