论文部分内容阅读
近些年来,GPU已经发展成为一种多线程、高性能的计算平台,在一些具有并行特征的应用程序中得到了广泛的应用。在GPU中,多个线程可以并行运行,并且执行同一条指令。然而,在一些具有不规则数据结构的应用程序中,线程之间的行为并不一定完全相同。例如,当一组线程访问GPU中的cache时,这些线程所产生的访存请求访问的是不同的cache-line,这种现象叫做多样访存。当一组线程到达一个分支点的时候,一部分线程跳转到一条路径,而其余的线程则跳转到另一条路径,这种现象叫做多样分支。多样访存会使访存请求的大小远小于GPU中cache-line的大小,从而降低了cache的利用率。而多样分支不仅仅会使GPU中的硬件资源得不到充分的利用,也会浪费存储系统的带宽。另外,随着GPU对存储系统的带宽要求越来越高,GPU主存的功耗也随之增加,并且在不久的将来将会到达一个极限。为了解决多样访存造成的cache利用率较低的问题,本文提出了一种同时支持细粒度和粗粒度cache-line管理的L1 data cache结构。细粒度的cache-line管理适用于具有不规则访存形式的应用程序,而粗粒度的cache-line管理则适用于具有规则访存形式的应用程序。本文将细粒度的cache-line所对应的标签信息存储在GPU片内未被使用的共享存储器中。这种cache结构提高了cache的工作效率以及存储系统的带宽利用率,从而使得性能得到了提升。为了解决多样分支造成的GPU硬件资源利用率较低的问题,本文提出了一种基于压缩机制的线程-通道混排压缩技术。当发生多样分支时,一个路径中的空闲通道可以被任意通道的活动线程填充,从而减小了空闲通道的数量,提高的GPU的硬件资源利用率。此外,本文还设计了一种调度策略来减少由压缩引入的栅栏同步的代价。为了支持这种压缩技术以及调度策略,本文对GPU中的寄存器文件和用于存储分支信息的栈结构进行了改进。通过这种压缩技术,GPU的硬件资源利用率得到了提高,同时性能也得到了提升。为了应对GDDR5将要面临的挑战,DRAM制造商设计了一种新型的存储技术,HBM。HBM是一种3D存储器,它比GDDR5具有更高的带宽,更低的功耗和更大的容量。此外,HBM还具有两个新的特征:行列命令双发射和pseudo通道模式。然而,实验证明,这两种特征并不能够对GPU的性能提升有明显的贡献。因此,本文提出将pseudo通道模式与支持细粒度和粗粒度cache-line管理的cache结构相结合,来发挥pseudo通道模式在具有不规则访存的应用程序中的优势,进一步提高这些应用程序的性能。