论文部分内容阅读
目前GPU的作用不仅限于图形图像处理,作为GPGPU已是高性能计算任务、大规模数据处理等任务的首选计算核心。实际应用中的主流架构为CPU-GPU异构架构,其中GPGPU作为运算主体,而CPU的作用更加偏向控制。因此一方面需要极力提高GPU的计算能力,另一方面需要提升GPU与CPU之间的快速数据交换性能。为了有效充分发挥异构架构的计算能力,目前的研究热点是将CPU与GPGPU,通过共享LLC的方式进行紧密耦合,而紧耦合异构架构带来了存储系统的巨大优化潜力尚未发挥,需要对架构的存储的各个方面进行深入的优化。 本文对两个架构的访存行为进行了测试,包括GPGPU架构和LLC共享的CPU-GPU异构架构。数据表明,来自GPGPU的访存行为特征,包括访存频度、访存读写比、私有缓存缺失率、访存延时敏感性、共享LLC空间占有率、DRAM的行缓存命中率等,与传统CPU的访存行为均有较大差异。因此对GPU访存的优化成为该架构能发挥其性能优势的关键。而原有的访存优化技术往往不适用于GPU,其原因在于GPU核心与CPU核心的流水线差异、线程并行度差异以及访存融合等,这些体系结构上的差异,使得传统访存优化技术在这些架构下面临一系列独有挑战。 本文对GPU的访存行为特征进行了多方面的分析,并结合CPU访存和编译时信息,发现在现有的GPGPU架构以及CPU-GPU异构架构上,存在访存方面的一些问题与缺陷,包括warp调度算法没有利用好GPU程序的同步信息、GPU私有缓存容量利用率低;GPU与CPU的访存请求关键性指标差异在LLC调度设计时没有获得恰当的解决,传统图形处理任务的GPU程序与CPU在共享LLC上的交互没有得到关注与分析;Memory调度器没有充分挖掘GPU的同步代价,也未有效应对旁路机制产生的旁路请求。为了解决上述问题,本文从三个层次对现有架构或技术进行了设计与改进,从而提高框架的综合访存性能: 在SM层次,本文发现不同的GPU程序的线程同步需求与线程同步代价有很大差异性,而当前的warp调度算法没有有效应对这种情况对GPU的影响。因此本文提出了一种同步感知的warp调度算法,降低了GPU程序的同步代价。通过分析GPU程序对不同存储空间的访存需求以及需求变化情况,本文设计了一种可融合的GPU私有缓存结构,使GPU充分发挥它的私有缓存容量。 在共享LLC层次,本文首先对CPU-GPU异构架构上的共享LLC的功能和作用进行了测试和分析,包括对CPU程序、GPGPU程序及其综合性能的影响。其次,对GPU访存请求的关键性指标进行了分析,并基于此设计了GPU访存请求在共享LLC级的服务顺序调度算法。该算法通过提高关键的GPU访存请求的调度优先级以及优先级轮转设计,提高了GPU的可调度性与性能。接着,通过把CPU访存请求折算到GPU的关键性指标,本文把上述LLC调度算法扩展到了CPU-GPU异构架构。最后,为了分析传统的Graphic GPU程序与CPU程序在共享LLC上的交互行为,本文设计了一个CPU-Graphic GPU异构仿真平台,并在该架构上对TAP-UCP算法进行了分析。 与warp调度算法一样,本文在存储控制器层次同样设计了同步感知的Memory调度算法,用来降低GPU程序的同步代价。此外,针对CPU-GPU异构架构中共享LLC经常使用的旁路优化技术,本文还设计了一个三步骤的Memory调度优化方法。该方法通过对旁路请求与正常请求执行不同的调度优先级来弥补LLC旁路技术的缺陷,从而提高了系统的整体性能以及CPU和GPU程序间的公平性。 最后,本文使用GPGPU-Sim以及gem5-gpu以及其他辅助工具如Pinpoint等,分别对上述的优化设计进行了实验验证。实验结果表明:在SM层次上,同步感知的warp调度算法降低了GPU程序平均17.34%的同步代价,并最高提升了GPU程序16.89%的性能;可融合GPU私有缓存结构有效利用了所有的GPU私有缓存结构,同时提升了14.92%的平均性能。在共享LLC层次上,LLC的使用提高了GPGPU程序2.13倍的性能提升,而对CPU只有5%左右的性能提升,综合性能的提升1.7倍;对LLC访存调度算法的改进降低了最关键的访存请求19.17%的平均等待时间并提高了10.8%的可调度性;扩展到CPU-GPU异构架构后的LLC调度算法普遍提升了CPU访存请求的调度优先级,提升了CPU-GPU架构的综合性能达15.4%;本文设计的CPU-Graphic GPU仿真平台具有较高的准确性和可靠性,在其上的TAP-UCP测试和分析对未来CPU-GraphicGPU的共享LLC优化具有一定的借鉴意义。在Memory层次上,同步感知的Memory调度算法提升了系统最高11.31%的整体性能;通过在SMS和FR-RR-FCFS上应用三步骤的Memory调度优化方法,优化后的3-step SMS和3-step FR-RR-FCFS都提升了系统的综合性能,并改进了CPU与GPU程序之间7.3%和19.0%的公平性。实验证明,这些优化措施从不同的层次和角度提升了GPU访存下的缓存结构性能。