性能分析方法、装置、系统、计算设备及存储介质制造方法及图纸

技术编号:38751287 阅读:13 留言:0更新日期:2023-09-09 11:17
本公开涉及一种性能分析方法、装置、系统、计算设备及存储介质,所述方法包括:获取图形处理器运行目标核函数时的核函数性能数据;根据核函数性能数据确定图形处理器运行目标核函数时的计算强度和实际算力最大值;根据计算强度和实际算力最大值,在屋顶线模型中增加表示图形处理器运行目标核函数的性能的点,在该点的位置落在屋顶线模型中的性能瓶颈区域时,指示该目标核函数存在性能瓶颈,将该目标核函数设置为待优化核函数。本公开实施例的性能分析方法,借助屋顶线模型分析确定目标核函数的性能是否出现瓶颈,在保证性能分析结果的准确度的同时,便于根据性能分析结果确定性能优化方式。方式。方式。

【技术实现步骤摘要】
性能分析方法、装置、系统、计算设备及存储介质


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

技术介绍

[0002]近年来,人工智能(artificial intelligence,AI)的研究及落地正在如火如荼地展开,AI应用正在进入人们的日常生活。AI应用需要大规模的矩阵运算,因此通常使用擅长矩阵运算的图形处理器(graphics processing unit,GPU)来加速应用使用的AI模型。GPU运行AI模型的性能与AI软件栈的性能紧密相关,AI软件栈中的深度神经网络(deep neural networks,DNN)库是一个帮助GPU加速的深度神经网络基元库,能够以高度优化的方式实现标准例程(如前向和反向卷积、池化层、归一化和激活层)。而DNN库中算子的核函数(kernel)是在GPU上执行的数据并行处理程序,它的性能大大决定了DNN库的表现,进而决定AI软件栈和AI模型的性能。想要这些核函数能高性能的运行,就需要分析核函数是否出现性能瓶颈,然后对出现性能瓶颈的核函数针对性调优。
[0003]现有技术中的性能分析方法更多的是专注于模型层面和算子层面,无法直接确定核函数层面的性能。如何准确确定图形处理器运行核函数的性能成为本领域的研究热点。

技术实现思路

[0004]有鉴于此,本公开提出了一种性能分析方法、装置、系统、计算设备及存储介质,本公开的性能分析方法,借助屋顶线模型分析确定目标核函数的性能是否出现瓶颈,在保证性能分析结果的准确度的同时,便于根据性能分析结果确定性能优化方式。
[0005]根据本公开的第一方面,提供了一种性能分析方法,所述方法用于分析图形处理器运行的目标核函数是否需进行优化,所述方法包括:获取所述图形处理器运行所述目标核函数时的核函数性能数据;根据所述核函数性能数据确定所述图形处理器运行所述目标核函数时的计算强度和实际算力最大值,所述计算强度表示所述目标核函数运行时每单位内存交换所完成的浮点运算个数,所述实际算力表示所述目标核函数的吞吐量;根据所述计算强度和所述实际算力最大值,在屋顶线模型中增加表示所述图形处理器运行所述目标核函数的性能的点,在该点的位置落在所述屋顶线模型中的性能瓶颈区域时,指示该目标核函数存在性能瓶颈,将该目标核函数设置为待优化核函数。
[0006]在一种可能的实现方式中,所述屋顶线模型的横轴为计算强度,纵轴为算力,所述在屋顶线模型中增加表示所述图形处理器运行所述目标核函数的性能的点之前,所述方法还包括:根据所述图形处理器的理论算力最大值和理论带宽最大值,确定所述屋顶线模型中的第一折线;将所述第一折线与所述横轴之间的区域确定为所述性能瓶颈区域。
[0007]在一种可能的实现方式中,所述性能瓶颈区域包括带宽瓶颈区域和计算瓶颈区域,所述方法还包括:根据所述图形处理器在运行基准核函数时的计算强度和实际算力最大值,确定所述屋顶线模型中的第二折线,所述第二折线在所述第一折线下方;在该点的位
置落在所述带宽瓶颈区域且位于所述第二折线下方时,对所述待优化函数调用的访存函数进行优化;在该点的位置落在所述计算瓶颈区域且位于所述第二折线下方时,对所述待优化函数调用的计算函数进行优化;在该点的位置落在所述带宽瓶颈区域且位于所述第二折线上方时,对所述待优化函数运行时使用的计算方法、所述待优化函数运行时输入数据的传输时间和所述待优化函数运行时输出数据的传输时间进行优化。
[0008]在一种可能的实现方式中,所述核函数性能数据包括所述目标核函数的索引、名称、运行耗时、访存量、计算量、带宽中的一种或多种。
[0009]在一种可能的实现方式中,所述获取所述图形处理器运行所述目标核函数时的核函数性能数据,包括:获取所述目标核函数的输入矩阵大小和所述图形处理器中并行计算的分块大小;根据所述输入矩阵大小和所述分块大小确定所述访存量和所述计算量;根据所述访存量、所述运行耗时确定所述带宽;将所述索引、所述名称、所述运行耗时、所述计算量、所述访存量、所述带宽中的一种或多种存储为所述核函数性能数据。
[0010]在一种可能的实现方式中,所述计算量表示所述图形处理器运行所述目标核函数时所完成的浮点运算个数,所述访存量表示所述图形处理器运行所述目标核函数时针对单个输入样本所完成的内存交换量;所述根据所述核函数性能数据确定所述图形处理器运行所述目标核函数时的计算强度和实际算力最大值,包括:根据所述计算量和所述访存量的比值确定所述图形处理器运行所述目标核函数时的计算强度;根据所述计算量、所述运行耗时的比值确定所述图形处理器运行所述目标核函数时的实际算力最大值。
[0011]根据本公开的第二方面,提供了一种性能分析方法,所述方法应用于计算设备,所述计算设备上设置有实体的图形处理器和虚拟的容器,所述方法包括:从云端平台接收配置信息,所述配置信息由用户设备上传,所述配置信息指示待分析的模型及所述模型的运行参数;从所述云端平台拷贝代码仓库文件,所述代码仓库文件指示所述计算设备分析所述模型在所述图形处理器上运行的性能的方式以及预设的数据结构;根据所述代码仓库文件指示的方式,从所述云端平台下载运行所述模型所需的资源,基于所述资源使用所述图形处理器运行所述模型,使用所述容器获取所述模型运行的性能原始数据并分析所述性能原始数据得到性能展示数据,所述性能展示数据符合所述预设的数据结构;上传所述性能展示数据到所述云端平台,所述性能展示数据由所述用户设备从所述云端平台下载并展示给用户;其中,所述待分析的模型被运行时调用的核函数作为目标核函数,所述性能原始数据包括所述图形处理器运行所述目标核函数时的核函数性能数据,所述性能展示数据包括所述图形处理器运行所述目标核函数时的计算强度和实际算力最大值,所述计算强度表示所述目标核函数运行时每单位内存交换所完成的浮点运算个数,所述实际算力表示所述目标核函数的吞吐量;所述性能展示数据展示为屋顶线模型中表示所述图形处理器运行所述目标核函数的性能的点,在该点的位置落在所述屋顶线模型中的性能瓶颈区域时,指示该目标核函数存在性能瓶颈,将该目标核函数设置为待优化核函数。
[0012]在一种可能的实现方式中,使用所述容器获取所述模型运行的性能原始数据并分析所述性能原始数据得到性能展示数据,包括:根据本公开的第一方面或该第一方面的任意一种可能的实现方式记载的性能分析方法,得到所述性能展示数据。
[0013]根据本公开的第三方面,提供了一种性能分析系统,所述系统用于分析图形处理器运行的目标核函数是否需进行优化,所述系统包括:第一获取模块,用于获取所述图形处
理器运行所述目标核函数时的核函数性能数据;第一确定模块,用于根据所述核函数性能数据确定所述图形处理器运行所述目标核函数时的计算强度和实际算力最大值,所述计算强度表示所述目标核函数运行时每单位内存交换所完成的浮点运算个数,所述实际算力表示所述目标核函数的吞吐量;第二确定模块,用于根据所述计算强度和所述实际算力最大值,在屋顶线模型中增加表示所述图形本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种性能分析方法,其特征在于,所述方法用于分析图形处理器运行的目标核函数是否需进行优化,所述方法包括:获取所述图形处理器运行所述目标核函数时的核函数性能数据;根据所述核函数性能数据确定所述图形处理器运行所述目标核函数时的计算强度和实际算力最大值,所述计算强度表示所述目标核函数运行时每单位内存交换所完成的浮点运算个数,所述实际算力表示所述目标核函数的吞吐量;根据所述计算强度和所述实际算力最大值,在屋顶线模型中增加表示所述图形处理器运行所述目标核函数的性能的点,在该点的位置落在所述屋顶线模型中的性能瓶颈区域时,指示该目标核函数存在性能瓶颈,将该目标核函数设置为待优化核函数。2.根据权利要求1所述的方法,其特征在于,所述屋顶线模型的横轴为计算强度,纵轴为算力,所述在屋顶线模型中增加表示所述图形处理器运行所述目标核函数的性能的点之前,所述方法还包括:根据所述图形处理器的理论算力最大值和理论带宽最大值,确定所述屋顶线模型中的第一折线;将所述第一折线与所述横轴之间的区域确定为所述性能瓶颈区域。3.根据权利要求2所述的方法,其特征在于,所述性能瓶颈区域包括带宽瓶颈区域和计算瓶颈区域,所述方法还包括:根据所述图形处理器在运行基准核函数时的计算强度和实际算力最大值,确定所述屋顶线模型中的第二折线,所述第二折线在所述第一折线下方;在该点的位置落在所述带宽瓶颈区域且位于所述第二折线下方时,对所述待优化函数调用的访存函数进行优化;在该点的位置落在所述计算瓶颈区域且位于所述第二折线下方时,对所述待优化函数调用的计算函数进行优化;在该点的位置落在所述带宽瓶颈区域且位于所述第二折线上方时,对所述待优化函数运行时使用的计算方法、所述待优化函数运行时输入数据的传输时间和所述待优化函数运行时输出数据的传输时间进行优化。4.根据权利要求1

3中任一项所述的方法,其特征在于,所述核函数性能数据包括所述目标核函数的索引、名称、运行耗时、访存量、计算量、带宽中的一种或多种。5.根据权利要求4所述的方法,其特征在于,所述获取所述图形处理器运行所述目标核函数时的核函数性能数据,包括:获取所述目标核函数的输入矩阵大小和所述图形处理器中并行计算的分块大小;根据所述输入矩阵大小和所述分块大小确定所述访存量和所述计算量;根据所述访存量、所述运行耗时确定所述带宽;将所述索引、所述名称、所述运行耗时、所述计算量、所述访存量、所述带宽中的一种或多种存储为所述核函数性能数据。6.根据权利要求4或5所述的方法,其特征在于,所述计算量表示所述图形处理器运行所述目标核函数时所完成的浮点运算个数,所述访存量表示所述图形处理器运行所述目标核函数时针对单个输入样本所完成的内存交换量,
所述根据所述核函数性能数据确定所述图形处理器运行所述目标核函数时的计算强度和实际算力最大值,包括:根据所述计算量和所述访存量的比值确定所述图形处理器运行所述目标核函数时的计算强度;根据所述计算量、所述运行耗时的比值确定所述图形处理器运行所述目标核函数时的实际算力最大值。7.一种性能分析方法,其特征在于,所述方法应用于计算设备,所述计算设备上设置有实体的图形处理器和虚拟的容器,所述方法包括:从云端平台接收配置信息,所述配置信息由用户设备上传,所述配置信息指示待分析的模型及所述模型的运行参数;从所述云端平台拷贝代码仓库文件,所述代码仓库文件指示所述计算设备分析所述模型在所述图形处理器上运行的性能的方式以及预设的数据结构;根据所述代码仓库文件指示的方式,从所述云端平台下载运行所述模型所需的资源,基于所述资源使用所述图形处理器运行所述模型,使用所述容器获取所述模型运行的性能原始数据并分析所述性能原始数据得到性能展示数据,所述性能展示数...

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

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

1