论文部分内容阅读
GPU是用来加速图形渲染的专用芯片,是现代PC的重要组成单元。在3D渲染应用场景下,GPU中主要存在Shader Engine Pipeline和Texture Cache Pipeline两条流水线。本文的研究目标就是在3D渲染的应用场景下,对Aruba芯片的Texture Cache Pipeline进行优化。本文的研究内容主要分为两个方面:Texture Cache Pipeline的流水线缺陷诊断和根据诊断结果对流水线做出性能优化。流水线缺陷诊断分为两个步骤:首先使用系统级仿真模型PPM对GPU的性能以及瓶颈模块进行分析,对缺陷模块进行初步定位,同时为PVA诊断选取实验对象;然后将使用模块级仿真模型PVA进行更加细化的定位和分析。在第一步的PPM仿真中,本文选取了11个主流游戏的41个典型应用场景作为实验对象,在3代不同的GPU模型上进行仿真,初步定位流水线的缺陷模块位于TCC及其以下的模块中。在第二步的PVA仿真中,我们选取高TC Bottleneck的22个关键帧进行分析,发现流水线中效率最低的模块是TCR。缺陷诊断中使用的两个模型属于不同的抽象层次,两者的结论相互印证,增强了诊断结果的可信度。对诊断结果进行分析,我们发现TCR低效的原因是TCR之间使用ID映射的方式进行通讯。由于TCR之间缺少统一的指令仲裁和分配单元,所以在很多情况下会造成指令Stall。从分析结果出发,我们提出如下优化方案:在TCP和TCR之间插入新的单元TCD(Texture Cache Distributor),即纹理缓存指令分配器。TCD将接受来自TCP的Miss指令,经过仲裁和分配,将其送到存储数据量最少的TCR,从而最大程度的降低TCR的Stall率。使用PVA对优化方案进行验证,结果发现TCD的加入使得TCR的平均Stall率降低,而其余Block的Stall率均有升高,整个Texture Cache Pipeline的Stall率趋于均衡。使用PPM对优化方案进行验证,尚未流片的Aruba芯片在其默认工作频率下的性能平均提升了3.18%,达到了预期的优化要求。本文的第一个创新点在于优化cache结构电路时,没有采用增加cache size的传统策略,不会影响cache电路的成本,尺寸以及成品率等指标;第二个创新点是没有通过帧率来选择关键帧,而采用瓶颈信息作为关键帧的选择标准。