论文部分内容阅读
GPGPU的主要目标是利用GPU强大的并行计算能力进行通用目的的计算。为了支持通用计算,GPU的结构也开始针对通用计算优化,但GPU固有的SIMD工作方式依然是限制其性能发挥的巨大障碍。其主要的问题是SIMD及其类似结构所面临的控制分离和存储分离问题。而目前在控制分离上的研究往往没有考虑其对存储系统造成的影响,从而可能导致其性能不稳定,甚至出现性能下降。
本文总结了GPGPU线程调度的研究现状,指出了其中存在的问题。其中,PDOM机制不能调度其所有分支路径;DWS的分支机制虽然能调度所有的分支路径却存在则由于缺少子恢复点信息而面临warp过度细分的问题。针对PDOM机制和DWS机制的优缺点,本文提出了一种子恢复点感知的混合栈式机制,该栈式机制通过增加叶子节点表和附加的数据通道。该混合栈式机制能对任意路径的节点进行正常的PDOM机制的恢复操作,且具备DWS机制的所有分支路径的调度能力,在这基础上还能防止DWS过度细分,具备了更强的调度灵活性。
为了充分发挥本文混合栈式机制的延迟覆盖潜力,本文通过分析发现,如果能让一部分warp先于其他warp先行执行,就能让后续的warp利用其计算周期覆盖前面先跑warp的计算周期,强化GPGPU的延迟覆盖能力。由此出发本文提出了一种基于窗口的调度机制,该机制通过引入调度窗口和等待队列,让调度窗口中的warp先于等待队列中的warp先运行,并在调度窗口内的warp遇到长周期存储访问时切换warp,并通过先行发射混合栈式机制中存在存储指令的分支来进一步强化存储延迟覆盖能力。本文对调度器窗口的大小、子warp调度优先级以及存储节流等调度策略和实现细节进行了讨论。
本文通过GPGPU-SIM模拟器对该栈式机制及基于窗口的调度算法进行了验证。通过对12种组合进行性能对比测试和敏感性测试,其结果表明,最佳的性能是在本文提出的两种机制的组合下取得的,其相对于基准测试平台平均性能提高10.5%,相对于DWS平均性能提高6.8%,相对于PDOM和基于窗口调度机制的最佳性能提高2%,而DWF方式由于破坏了访存合并模式出现了较大的性能下降。WARP饱和度数据测试与分析表明,本文的两种机制的组合确实能防止过度细分。在代价方面,本文相对于DWS机制的硬件面积代价的增加不超过1.33%。