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

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

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


背景技术:

1、近年来,人工智能(artificial intelligence,ai)的研究及落地正在如火如荼地展开,ai应用正在进入人们的日常生活。ai模型需要大规模的矩阵运算,因此通常使用擅长矩阵运算的图形处理器(graphics processing unit,gpu)来加速ai应用。想要提高ai模型在gpu上运行的性能,需要获取ai模型的运行数据,给出性能分析报告,然后结合报告针对性优化ai模型在gpu上运行的性能。

2、ai领域通常涵盖视觉、自然语言处理、推荐系统、医疗影像、语音识别等多个方向。而每个方向都有大量的ai模型,业界常用的模型也有数百到数千个。第一,如果每个模型都需要算法工程师手动进行性能分析,那么工作量将非常庞大;第二,每个算法工程师开发水平,编码习惯相差很大,导致性能分析报告风格多样,内容参差不齐,也无法保证报告的质量,非常不利于性能优化;第三,手动产生的报告一般都是一些文本或命令行打印的数据,无法直观的展示数据,不能进行有效的分析。

3、综上所述,现有技术尚不能实现自动化、标准化的ai性能分析方案。


技术实现思路

1、有鉴于此,本公开提出了一种性能分析方法、装置、系统、计算设备及存储介质,根据本公开实施例的性能分析方法,只需用户提交配置信息即可实现一键式、自动化性能分析,并且性能分析结果是结构化、标准化的结果,使基于性能分析结果确定性能优化方式更便捷。

2、根据本公开的一方面,提供了一种性能分析方法,所述方法应用于计算设备,所述计算设备上设置有实体的图形处理器和虚拟的容器,所述方法包括:从云端平台接收配置信息,所述配置信息由用户设备上传,所述配置信息指示待分析的模型及所述模型的运行参数;从所述云端平台拷贝代码仓库文件,所述代码仓库文件指示所述计算设备分析所述模型在所述图形处理器上运行的性能的方式以及预设的数据结构;根据所述代码仓库文件指示的方式,从所述云端平台下载运行所述模型所需的资源,基于所述资源使用所述图形处理器运行所述模型,使用所述容器获取所述模型运行的性能原始数据并分析所述性能原始数据得到性能展示数据,所述性能展示数据符合所述预设的数据结构;上传所述性能展示数据到所述云端平台,所述性能展示数据由所述用户设备从所述云端平台下载并展示给用户。

3、在一种可能的实现方式中,所述从所述云端平台下载运行所述模型所需的资源之前,所述方法还包括:检查所述容器和所述图形处理器是否具备满足条件的运行环境;所述从所述云端平台下载运行所述模型所需的资源,包括:在具备满足条件的运行环境时,从所述云端平台下载运行所述模型所需的资源,所述运行所述模型所需的资源包括运行所述模型所需的模型文件、库文件、数据集文件中的一种或多种。

4、在一种可能的实现方式中,基于所述资源使用所述图形处理器运行所述模型之前,所述方法还包括:从所述云端平台拷贝与所述模型相关的深度神经网络库文件和框架文件;编译所述深度神经网络库文件,安装所述框架文件;所述基于所述资源使用所述图形处理器运行所述模型,包括:所述深度神经网络库文件编译好且所述框架文件安装好后,基于所述资源使用所述图形处理器运行所述模型。

5、在一种可能的实现方式中,所述图形处理器的软件栈包括计算层、框架层和模型层,所述性能原始数据包括与所述模型层对应的模型端到端性能数据、与所述框架层对应的痕迹数据、与所述计算层对应的核函数数据,所述模型的运行阶段包括预处理阶段、内存到显存的数据拷贝阶段、推理阶段、显存到内存的数据拷贝阶段、后处理阶段,所述模型端到端性能数据包括所述模型各运行阶段的耗时和所述模型各运行阶段的吞吐量;所述模型包括多个算子,所述痕迹数据包括每一算子的算子执行耗时;所述算子在运行时调用所述深度神经网络库文件中的核函数,所述核函数数据包括所述核函数的吞吐量和所述核函数的带宽。

6、在一种可能的实现方式中,所述运行参数包括多种批尺寸,使用所述容器获取所述模型运行的性能原始数据并分析所述性能原始数据得到性能展示数据,包括:在所述核函数并行运行的情况下,针对所述模型的每一批尺寸,分别获取至少一次所述模型端到端性能数据;重新编译所述深度神经网络库,并在所述核函数串行运行的情况下,基于所述模型各运行阶段的吞吐量最高时对应的批尺寸,获取所述痕迹数据和所述核函数数据。

7、在一种可能的实现方式中,使用所述容器获取所述模型运行的性能原始数据并分析所述性能原始数据得到性能展示数据,包括:分析所述性能原始数据,得到所述模型的运行环境数据和所述模型的属性数据;调整所述模型端到端性能数据、所述痕迹数据、所述核函数数据、所述运行环境数据以及所述属性数据的数据结构,使其符合所述预设的数据结构。

8、在一种可能的实现方式中,所述方法还包括:上传所述性能原始数据到所述云端平台;从所述云端平台接收来自用户设备的历史数据分析指示时,从所述云端平台处下载所述性能原始数据,重新执行分析所述性能原始数据得到性能展示数据及之后的步骤。

9、根据本公开的另一方面,提供了一种性能分析装置,所述装置应用于计算设备,所述计算设备上设置有实体的图形处理器和虚拟的容器,所述装置包括:接收模块,用于从云端平台接收配置信息,所述配置信息由用户设备上传,所述配置信息指示待分析的模型及所述模型的运行参数;第一拷贝模块,用于从所述云端平台拷贝代码仓库文件,所述代码仓库文件指示所述计算设备分析所述模型在所述图形处理器上运行的性能的方式以及预设的数据结构;分析模块,用于根据所述代码仓库文件指示的方式,从所述云端平台下载运行所述模型所需的资源,基于所述资源使用所述图形处理器运行所述模型,使用所述容器获取所述模型运行的性能原始数据并分析所述性能原始数据得到性能展示数据,所述性能展示数据符合所述预设的数据结构;第一上传模块,用于上传所述性能展示数据到所述云端平台,所述性能展示数据由所述用户设备从所述云端平台下载并展示给用户。

10、在一种可能的实现方式中,所述装置还包括:检查模块,用于检查所述容器和所述图形处理器是否具备满足条件的运行环境;所述从所述云端平台下载运行所述模型所需的资源,包括:在具备满足条件的运行环境时,从所述云端平台下载运行所述模型所需的资源,所述运行所述模型所需的资源包括运行所述模型所需的模型文件、库文件、数据集文件中的一种或多种。

11、在一种可能的实现方式中,所述装置还包括:第二拷贝模块,用于从所述云端平台拷贝与所述模型相关的深度神经网络库文件和框架文件;编译安装模块,用于编译所述深度神经网络库文件,安装所述框架文件;所述基于所述资源使用所述图形处理器运行所述模型,包括:所述深度神经网络库文件编译好且所述框架文件安装好后,基于所述资源使用所述图形处理器运行所述模型。

12、在一种可能的实现方式中,所述图形处理器的软件栈包括计算层、框架层和模型层,所述性能原始数据包括与所述模型层对应的模型端到端性能数据、与所述框架层对应的痕迹数据、与所述计算层对应的核函数数据,所述模型的运行阶段包括预处理阶段、内存到显存的数据拷贝阶段、推理阶段、显存到内存的数据拷贝阶段、后处理阶段,所述模型端到端性能数据包括所述模型各运行阶段的耗时和所述模型各运行阶段的吞吐量;所述模型包括多个算子,所述痕迹数据包括每一算子的算子执行耗时;所述算子在运行时调用所述深度神经网络库文件中的核函数,所述核函数数据包括所述核函数的吞吐量和所述核函数的带宽。

13、在一种可能的实现方式中,所述运行参数包括多种批尺寸,使用所述容器获取所述模型运行的性能原始数据并分析所述性能原始数据得到性能展示数据,包括:在所述核函数并行运行的情况下,针对所述模型的每一批尺寸,分别获取至少一次所述模型端到端性能数据;重新编译所述深度神经网络库,并在所述核函数串行运行的情况下,基于所述模型各运行阶段的吞吐量最高时对应的批尺寸,获取所述痕迹数据和所述核函数数据。

14、在一种可能的实现方式中,使用所述容器获取所述模型运行的性能原始数据并分析所述性能原始数据得到性能展示数据,包括:分析所述性能原始数据,得到所述模型的运行环境数据和所述模型的属性数据;调整所述模型端到端性能数据、所述痕迹数据、所述核函数数据、所述运行环境数据以及所述属性数据的数据结构,使其符合所述预设的数据结构。

15、在一种可能的实现方式中,所述装置还包括:第二上传模块,用于上传所述性能原始数据到所述云端平台;下载模块,用于从所述云端平台接收来自用户设备的历史数据分析指示时,从所述云端平台处下载所述性能原始数据,驱动分析模块重新执行分析所述性能原始数据得到性能展示数据及之后的步骤。

16、根据本公开的另一方面,提供了一种计算设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为在执行所述存储器存储的指令时,实现上述方法。

17、根据本公开的另一方面,提供了一种性能分析系统,所述系统包括用户设备、至少一个计算设备和至少一个存储设备,所述用户设备和所述至少一个计算设备通过云端平台交互,所述至少一个计算设备和所述至少一个存储设备通过所述云端平台交互,所述计算设备上设置有实体的图形处理器和虚拟的容器,所述用户设备用于上传配置信息到所述云端平台,所述配置信息指示待分析的模型及所述模型的运行参数;所述至少一个存储设备用于上传代码仓库文件以及运行所述模型所需的资源到所述云端平台,所述代码仓库文件指示所述计算设备分析所述模型在所述图形处理器上运行的性能的方式以及预设的数据结构;所述计算设备用于从所述云端平台接收来自所述用户设备的配置信息并从所述云端平台拷贝所述代码仓库文件,根据所述代码仓库文件指示的方式,从所述云端平台下载运行所述模型所需的资源,基于所述资源使用所述图形处理器运行所述模型,使用所述容器获取所述模型运行的性能原始数据并分析所述性能原始数据得到性能展示数据,上传所述性能展示数据到所述云端平台,所述性能展示数据符合所述预设的数据结构;所述用户设备还用于从所述云端平台下载所述性能展示数据并展示给用户。

18、根据本公开的另一方面,提供了一种非易失性计算机可读存储介质,其上存储有计算机程序指令,其中,所述计算机程序指令被处理器执行时实现上述方法。

19、根据本公开的另一方面,提供了一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当所述计算机可读代码在电子设备的处理器中运行时,所述电子设备中的处理器执行上述方法。

20、根据本公开实施例的性能分析方法,从云端平台接收配置信息,配置信息由用户设备上传,配置信息指示待分析的模型及模型的运行参数,可以确定用户的性能分析需求;从云端平台拷贝代码仓库文件,代码仓库文件指示计算设备分析模型在图形处理器上运行的性能的方式以及预设的数据结构,使得计算设备能够具备分析模型在图形处理器上运行的性能的能力;根据代码仓库文件指示的方式,从云端平台下载运行模型所需的资源,基于资源使用图形处理器运行模型,使用容器获取模型运行的性能原始数据并分析性能原始数据得到性能展示数据,使得性能展示数据可以是满足用户的性能分析需求的性能分析结果,性能展示数据符合预设的数据结构,因此实现了标准化、结构化的数据处理;通过上传性能展示数据到云端平台,性能展示数据由用户设备从云端平台下载并展示给用户,使得用户可以随时查看性能展示数据。本公开的性能分析方法,只需用户提交配置信息即可实现一键式、自动化性能分析,并且性能分析结果是结构化、标准化的结果,使基于性能分析结果确定性能优化方式更便捷。

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

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