性能分析方法、装置、系统、计算设备及存储介质与流程

文档序号:35381189发布日期:2023-09-09 06:52阅读:26来源:国知局
性能分析方法、装置、系统、计算设备及存储介质与流程

本公开涉及人工智能领域,尤其涉及一种性能分析方法、装置、系统、计算设备及存储介质。


背景技术:

1、近年来,人工智能(artificial intelligence,ai)的研究及落地正在如火如荼地展开,ai应用正在进入人们的日常生活。ai应用需要大规模的矩阵运算,因此通常使用擅长矩阵运算的图形处理器(graphics processing unit,gpu)来加速应用使用的ai模型。gpu运行ai模型的性能与ai软件栈的性能紧密相关,ai软件栈中的深度神经网络(deep neuralnetworks,dnn)库是一个帮助gpu加速的深度神经网络基元库,能够以高度优化的方式实现标准例程(如前向和反向卷积、池化层、归一化和激活层)。而dnn库中算子的核函数(kernel)是在gpu上执行的数据并行处理程序,它的性能大大决定了dnn库的表现,进而决定ai软件栈和ai模型的性能。想要这些核函数能高性能的运行,就需要分析核函数是否出现性能瓶颈,然后对出现性能瓶颈的核函数针对性调优。

2、现有技术中的性能分析方法更多的是专注于模型层面和算子层面,无法直接确定核函数层面的性能。如何准确确定图形处理器运行核函数的性能成为本领域的研究热点。


技术实现思路

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、根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1