一种分析GPU性能的方法、装置及计算机存储介质制造方法及图纸

技术编号:32862122 阅读:21 留言:0更新日期:2022-03-30 19:45
本发明专利技术实施例公开了一种分析GPU性能的方法、装置及计算机存储介质;该方法可以包括:获取目标程序在设定环境下运行所得到指令列表、需启动的线程数量及每个线程对所述指令列表中的每个指令的执行结果;通过待分析GPU性能模型中的模拟调度器根据所述需启动的线程数量启动所述待分析GPU性能模型中的线程模拟器;每个线程模拟器均遍历所述指令列表中的每个指令,并在遍历过程中根据每个指令的指令执行控制值执行指令,以计量执行被遍历指令的时长;当所述指令列表中的所有指令均遍历完毕,获取所有线程模拟器执行所述指令列表中的所有指令的总执行时长。有指令的总执行时长。有指令的总执行时长。

【技术实现步骤摘要】
一种分析GPU性能的方法、装置及计算机存储介质


[0001]本专利技术实施例涉及图形处理器(GPU,Graphics Processing Unit)
,尤其涉及一种分析GPU性能的方法、装置及计算机存储介质。

技术介绍

[0002]在GPU性能统计中,每周期指令数(IPC,Instructions Per Cycle)是一项比较重要的GPU性能指标,其代表GPU在每个时钟周期内总共能处理多少条指令;通常情况下,可以根据线程执行时间以及系统的主频进行计算来获得IPC。
[0003]在对GPU进行性能统计过程中,通常需要对GPU性能进行建模。具体来说,通常采用两种方式对GPU的性能进行建模:其一是仿真建模,比如使用软件模拟构建GPU的仿真模型,并根据仿真模型进行真实的执行过程以获取GPU真实性能数据;其二是分析建模,比如通过构建一定的映射函数(也可称之为分析模型)分析处理GPU的输入,从而计算得出相应性能结果。
[0004]对于仿真建模方式来说,虽然能够真实的模拟硬件执行过程,并且获取真实的仿真数据;但是,由于仿真模型需要模拟真实GPU的执行,所以运行效率低下,如果需要对GPU架构进行调整,那么就需要针对架构调整后的GPU重建仿真模型,因此,采用仿真建模的方式进行GPU性能统计,存在可扩展性相对较差,开发周期长的缺陷。对于分析建模方式来说,分析模型由于不用仿真指令的真实运行过程,只需要针对输入指令信息进行建模分析运算就可得到性能结果数据,所以采用分析建模方式进行GPU性能统计的运行效率非常高,结构设计简单,可扩展性强;但是,在具体实施过程中,如果分析模型对输出指令的处理不够精细,那就会造成最终所得到的GPU性能统计结果的误差率较大。

技术实现思路

[0005]有鉴于此,本专利技术实施例期望提供一种分析GPU性能的方法、装置及计算机存储介质;能够降低基于分析建模方式进行GPU性能统计结果的误差率,提供更加准确的关于GPU的性能数据。
[0006]本专利技术实施例的技术方案是这样实现的:第一方面,本专利技术实施例提供了一种分析GPU性能的方法,所述方法包括:获取目标程序在设定环境下运行所得到指令列表、需启动的线程数量及每个线程对所述指令列表中的每个指令的执行结果;其中,所述执行结果包括对每个指令的指令执行控制值;通过待分析GPU性能模型中的模拟调度器根据所述需启动的线程数量启动所述待分析GPU性能模型中的线程模拟器;每个线程模拟器均遍历所述指令列表中的每个指令,并在遍历过程中根据每个指令的指令执行控制值执行指令,以计量执行被遍历指令的时长;当所述指令列表中的所有指令均遍历完毕,获取所有线程模拟器执行所述指令列
表中的所有指令的总执行时长。
[0007]第二方面,本专利技术实施例提供了一种分析GPU性能的装置,所述装置包括:获取部分、模拟调度器、线程模拟器和统计部分;其中,所述获取部分,经配置为获取目标程序在设定环境下运行所得到指令列表、需启动的线程数量及每个线程对所述指令列表中的每个指令的执行结果;其中,所述执行结果包括对每个指令的指令执行控制值;所述模拟调度器,经配置为根据所述需启动的线程数量启动所述待分析GPU性能模型中的线程模拟器;每个所述线程模拟器,均经配置为遍历所述指令列表中的每个指令,并在遍历过程中根据每个指令的指令执行控制值以及指令类型执行当前被遍历指令,以计量执行所述当前被遍历指令的时长;所述统计部分,经配置为当所述指令列表中的所有指令均遍历完毕,获取所有线程模拟器执行所述指令列表中的所有指令的总执行时长。
[0008]第三方面,本专利技术实施例提供了一种计算机存储介质,所述计算机存储介质存储有分析GPU性能的程序,所述分析GPU性能的程序被至少一个处理器执行时实现第一方面所述分析GPU性能的方法步骤。
[0009]本专利技术实施例提供了一种分析GPU性能的方法、装置及计算机存储介质;在进行性能分析过程中,计量GPU性能模型中的每个模拟线程执行目标程序的指令列表中各类型指令的执行时长,并统计执行总时长,从而能够覆盖模拟目前所有GPU指令类型的处理,降低基于分析建模方式进行GPU性能统计结果的误差率,提供更加准确的关于GPU的性能数据。
附图说明
[0010]图1为本专利技术实施例提供的SIMT方式下多线程执行顺序指令的示意图。
[0011]图2为本专利技术实施例提供的一种分析GPU性能的方法流程示意图。
[0012]图3为本专利技术实施例提供的获取目标程序的指令列表以及执行结果的流程示意图。
[0013]图4为本专利技术实施例提供的每个线程模拟器在遍历指令列表过程中计量执行被遍历指令的时长并获取所有线程模拟器执行所述指令列表中的所有指令的总执行时长的具体实施流程示意图。
[0014]图5为本专利技术实施例提供的一种分析GPU性能的装置结构示意图。
具体实施方式
[0015]下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述。
[0016]目前,GPU所能处理的指令一般可被划分为三种类型,即算数逻辑指令、访存指令以及分支跳转指令。目前常规的采用分析建模的方式进行GPU性能统计方案均涉及了算数逻辑指令和访存指令,能够准确地计算获得每条算数逻辑指令以及访存指令的执行时长。而对于分支跳转指令来说,一方面,目前现有的常规方案均没有考虑到关于分支跳转指令的处理,另一方面,分支跳转指令对指令的执行性能影响非常大。因此,本专利技术实施例期望
提供一种分析GPU性能的方案,能够准确获知每个线程关于分支跳转指令的执行情况,从而相较于常规方案能够更加准确地分析得到GPU运行指令的性能。
[0017]需要说明的是,GPU采用单指令多线程(SIMT,Single Instruction Multiple Threads)的方式运行指令,即每取指一条指令然后调度多个线程同时执行。基于SIMT方式,如果在执行过程中遇到分支跳转指令时,就会根据每个线程处理的数据不同从而进入不同的分支处理过程,通常来说,当GPU执行分支跳转指令时,仍然会继续顺序取指,同时每个线程则会通过设置mask位来控制自身当前指令是否需要执行,如果线程当前的mask位为true,则执行当前指令;如果mask位为false,则当前指令不进入执行流水线执行,从而控制SIMT的分支跳转指令的处理与执行。以图1为例,设定GPU包括n+1个线程,分别标识为Thread0、Thread1、Thread2、
……
、Threadn。指令顺序如图1中左侧所示,依次为:ADD、SUB、IF A、ADD、SUB、ELSE、MUL、DIV、ENDIF、ADD和SUB。由此可知,分支跳转指令为IF A和ELSE,那么GPU在通过SIMT方式执行上述指令过程中,当出现分支跳转指令时,会调度不同的线程执行不同的指令段,图1中线程Thread1与Thread2在执行分支跳转指令IF A的指令段过程中,其mask位为false,因此,分支跳转指令IF A的指令段不进入线程Th本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种分析GPU性能的方法,其特征在于,所述方法包括:获取目标程序在设定环境下运行所得到指令列表、需启动的线程数量及每个线程对所述指令列表中的每个指令的执行结果;其中,所述执行结果包括对每个指令的指令执行控制值;通过待分析GPU性能模型中的模拟调度器根据所述需启动的线程数量启动所述待分析GPU性能模型中的线程模拟器;每个线程模拟器均遍历所述指令列表中的每个指令,并在遍历过程中根据每个指令的指令执行控制值以及指令类型执行当前被遍历指令,以计量执行所述当前被遍历指令的时长;当所述指令列表中的所有指令均遍历完毕,获取所有线程模拟器执行所述指令列表中的所有指令的总执行时长。2.根据权利要求1所述的方法,其特征在于,所述获取目标程序在设定环境下运行所得到指令列表、需启动的线程数量及每个线程对所述指令列表中的每个指令的执行结果,包括:通过真实环境或者仿真环境运行所述目标程序,并在运行过程中获取所述目标程序的指令列表、所需启动的线程数量、每个线程执行每个指令的执行结果;其中,所述执行结果包括操作数寄存器值以及指令执行控制值。3.根据权利要求1所述的方法,其特征在于,所述每个线程模拟器均遍历所述指令列表中的每个指令,并在遍历过程中根据每个指令的指令执行控制值以及指令类型执行当前被遍历指令,以计量执行所述当前被遍历指令的时长,包括:对于每个所述线程模拟器,判断所述当前被遍历指令的执行结果中指令执行控制值是否表示执行所述当前被遍历指令;相应于所述指令执行控制值表示不执行所述当前被遍历指令,将执行固定的NOP指令的时长作为执行所述当前被遍历指令的时长;相应于所述指令执行控制值表示执行所述当前被遍历指令,确定所述当前被遍历指令的指令类型;相应于所述当前被遍历指令的指令类型为访存指令,按照执行访存指令的方式计量执行所述当前被遍历指令的时长;相应于所述当前被遍历指令的指令类型为算数逻辑指令,将执行算数逻辑指令的固定时长作为执行所述当前被遍历指令的时长。4.根据权利要求3所述的方法,其特征在于,所述按照执行访存指令的方式计量执行所述当前被遍历指令的时长,包括:根据所述当前被遍历指令的执行结果中的操作数寄存器值所对应的访存地址,按照设定的Cache访问分析模型计量执行所述当前被遍历指令的时长。5.根据权利要求3所述的方法,其特征在于,所述方法还包括:对于每个所述线程模拟器,在遍历过程中,判断所述当前被遍历指令是否为所述指令列表中的结束指令:若不是,则判断所述当前被遍历指令的执行结果中指...

【专利技术属性】
技术研发人员:齐航空张竞丹李亮
申请(专利权)人:西安芯瞳半导体技术有限公司
类型:发明
国别省市:

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

1