【技术实现步骤摘要】
本专利技术大体上涉及计算机处理单元。具体地说,本专利技术涉及一种用于评估和预测并行处理单元性能的方法,尤其是涉及一种用于评估和预测图形处理单元(GPU)性能的方法以及相应的计算机系统。
技术介绍
GPU性能评估和预测对于芯片架构设计来说非常关键。芯片架构设计人员、片上系统(SOC)团队、市场团队、驱动器团队和游戏开发人员都需要快速准确识别GPU芯片中的瓶颈并且针对不同芯片配置和不同实际应用程序例如游戏台标志、典型游戏以及工作站迹线预测芯片性能。不同的利益相关者对GPU芯片有特定的要求。例如,GPU架构团队必须识别GPU瓶颈并且在IP(知识产权)设计之前评估针对新的架构特征的性能增益,SOC团队必须在芯片设计之前针对不同芯片配置评估性能和功率,市场团队必须在流片(Tapeout)之前评估性能和功率,而驱动器团队/游戏开发人员必须在流片之后识别瓶颈并且评估目标性能。但是,尽管RTL(RegisterTransferLevel:寄存器传输级)和AM(ArchitectureModel:架构模型)能够针对简单测试准确地预测GPU性能,但是它对于针对实际应用程序(数百帧)评价性能来说太慢了(1帧花费大约1周时间)。一些可用的方法能够针对实际应用程序预测性能,但是这些方法都不准确。这些可用的方法提供大于20%的预测误差,这不能满足GPU设计人员的要求。例如,一种公知的评估方法基于下列假设:(ⅰ)GPU流水线是完全平行的。实际上,出于各种原因,所述GPU流水线可能被阻塞。(ⅱ)绘制(draw)时间等于由瓶颈区块(bottleneckblock)所花费的区块时间。(ⅲ) ...
【技术保护点】
一种用于评估和预测GPU性能的方法,其包括:‑在有待评估的GPU芯片中运行一组测试应用程序;‑捕获一组标量性能计数器和向量性能计数器;‑基于所捕获的标量性能计数器和向量性能计数器针对不同芯片配置创建用于评估和预测GPU性能的模型;以及‑预测GPU芯片的性能分数并且识别GPU流水线中的瓶颈。
【技术特征摘要】
1.一种用于评估和预测GPU性能的方法,其包括:-在有待评估的GPU芯片中运行一组测试应用程序;-捕获一组标量性能计数器和向量性能计数器;-基于所捕获的标量性能计数器和向量性能计数器针对不同芯片配置创建用于评估和预测GPU性能的模型;以及-预测GPU芯片的性能分数并且识别GPU流水线中的瓶颈。2.根据权利要求1所述的方法,其中,所述基于所捕获的标量性能计数器和向量性能计数器针对不同芯片配置创建用于评估和预测GPU性能的模型包括:(ⅰ)在通过GPU流水线的多个区块执行绘制的时候,对GPU流水线中每个区块所花费的周期进行模型化,其中,一个测试应用程序包括多个绘制;(ⅱ)对每个绘制所花费的周期进行模型化,并且识别GPU芯片的不同层级中的瓶颈;(ⅲ)通过累加一个指令缓存器中每个绘制所花费的周期来获得执行一个指令缓存器中的所有绘制所花费的总的绘制周期,其中,在运行所述测试应用程序时,测试应用程序的绘制存储在多个指令缓存器中;(ⅳ)将所述执行一个指令缓存器中的所有绘制所花费的总的绘制周期关联到针对GPU芯片的每个指令缓存器的per-CMB周期;(ⅴ)通过累加所述针对GPU芯片的每个指令缓存器的per-CMB周期来获得执行一个测试应用程序的存储在多个指令缓存器中的所有绘制所花费的总的per-CMB周期;(ⅵ)将所述执行一个测试应用程序的存储在多个指令缓存器中的所有绘制所花费的总的per-CMB周期关联到针对在GPU芯片中运行的一个测试应用程序的per-Test周期;(ⅶ)计算GPU芯片的性能分数。3.根据权利要求2所述的方法,其中,所述对GPU流水线中每个区块所花费的周期进行模型化包括:基于性能计数器、寄存器状态、Ttrace和GPU的芯片配置参数中的至少一个来创建针对每个区块的参数周期模型。4.根据权利要求2所述的方法,其中,所述GPU流水线的多个区块至少包括固定功能区块、前端着色器、后端着色器和内存控制器。5.根据权利要求2所述的方法,其中,所述对每个绘制所花费的周期进行模型化包括:-将所述GPU流水线分成前端流水线和后端流水线;-将所述前端流水线所花费的时间描述为:Bottleneck_FE=Max(Block_time[0],Block_time[1],…,Block_time[FE_Block_num-1]),其中,FE_Block_num-1代表了所述前端流水线中所包含的区块的数量;-将所述后端流水线所花费的时间描述为:Bottleneck_BE=Max(Block_time[0],Block_time[1],…,Block_time[BE_Block_num-1]),其中,BE_Block_num-1代表了所述后端流水线中所包含的区块的数量;-基于每个绘制的不同组的参数对绘制周期进行模型化。6.根据权利要求2所述的方法,其中,所述识别GPU芯片的不同层级中的瓶颈包括:-将所述瓶颈识别为所述GPU流水线中具有最大周期的区块;以及-假设所述GPU流水线由n个区块组成,那么针对瓶颈区块的周期将会是:Bottleneck_time=Max(block_0,block_1,block_2,…,block_n-1)。7.根据权利要求2所述的方法,其中,所述将所述执行一个指令缓存器中的所有绘制所花费的总的绘制周期关联到针对GPU芯片的每个指令缓存器的per-CMB周期包括:-通过累加一个指令缓存器中每个绘制所花费的周期来导出执行一个指令缓存器中的所有绘制所花费的总的绘制周期;-通过使用映射函数,将所述执行一个指令缓存器中的所有绘制所花费的总的绘制周期关联到针对GPU芯片的每个指令缓存器的per-CMB周期。8.根据权利要求5所述的方法,其中,所述基于每个绘制的不同组的参数对绘制周期进行模型化包括:基于向量性能计数器导出下列变量:(ⅰ)vs_vs1_ratio=vs_latency/vs_1st_wave_latency;(ⅱ)front_end_shader_time=ls_1st_wave_latency+hs_1st_wave_latency+es_1st_wave_latency+gs_1st_wave_latency+vs_latency;(ⅲ)fe_draw_ratio=front_end_shader_time/total_draw_ttrace_latency;(ⅳ)out_perf_ratio=(Bottleneck_FE+Bottleneck_BE)/total_draw_ttrace_latency;(ⅴ)febe_ratio=(Bottleneck_FE+Bottleneck_BE)/perDraw_logged_cycles;其中,Ttrace代表了在所述前端着色器中用来描述针对每个着色器类型和波阵面的延迟的向量性能计数器,并且Ttrace记录了对每个波的处理,其包括开始时间和结束时间。9.根据权利要求8所述的方法,其中,所述基于每个绘制的不同组的参数对绘制周期进行模型化进一步包括:如果所述前端与所述后端没有重叠,那么在满足下列条件之一的情况下将运用等式Time_perdraw=Bottleneck_FE+Bottleneck_BE:(ⅰ)每个SE中前端着色器的波数小于2;(ⅱ)vs_vs1_ratio<1.1;(ⅲ)febe_ratio<1.1;如果所述前端与所述后端有重叠,那么在满足下列条件之一的情况下将运用等式Time_perdraw=Max(Bottleneck_FE,Bottleneck_BE+FE_Fill_Latency):(ⅰ)vs_vs1_ratio>1.1和fe_draw_ratio>=0.9;(ⅱ)fe_draw_ratio>0.9或者Bottleneck_BE>0.8*total_draw_ttrace_latency;如果未满足上述条件中的任一条件,那么能够从下列等式中导出per-draw时间:Time_perdraw=(Bottleneck_FE+Bottleneck_BE)/out_perf_ratio。10.根据权利要求2所述的方法,其中,所述将所述执行一个指令缓存器中的所有绘制所花费的总的绘制周期关联到针对GPU芯片的每个指令缓存器的per-CMB周期包括:-将执行一个指令缓存器中的所有绘制所花费的总时间导出为:Sum_percmb[cmb_id]=Σ0draw_num-1Time_perdraw[cmb_id][draw_id]]]>,其中,Time_perdraw[cmb_id][draw_id]代表了执行一个指令缓存器中每个绘制所花费的时间或者周期,draw_num代表了一个指令缓存器中绘制的数量,cmb_id代表了一个指令缓存器的标识;-通过使用映射函数,将所述执行一个指令缓存器中的所有绘制所花费的总的绘制周期映射到针对GPU芯片的每个指令缓存器的per-CMB周期。11.根据权利要求10所述的方法,其中,以如下方式通过使用映射函数将所述执行一个指令缓存器中的所有绘制所花费的总的绘制周期映射到针对GPU芯片的每个指令缓存器的per-CMB周期:Sum_percmb_correlated=Sum_percmb[cmb_id]*Function[mapping],其中,Sum_percmb_correlated代表了当一个指令缓存器中的所有绘制都并行运行时针对GPU芯片的每个指令缓存器的经关联的per-CMB周期,Sum_percmb[cmb_id]代表了串行执行一个指令缓存器中的所有绘制所花费的总的绘制周期,Fu...
【专利技术属性】
技术研发人员:杨建,罗忠祥,王国锦,汪磊,闫丽霞,邵平平,
申请(专利权)人:超威半导体上海有限公司,
类型:发明
国别省市:上海;31
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。