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

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

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


背景技术:

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

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

3、综上所述,现有技术尚不能实现自动化、标准化的ai性能分析方案。另外,图形处理器可支持多种框架,现有技术通常一次只能展示图形处理器以一种框架运行ai模型时的性能分析报告,不够全面。


技术实现思路

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

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