[论文解读] Holistic Management of the GPGPU Memory Hierarchy to Manage Warp-level Latency Tolerance
本文提出了一种硬件感知技术——内存差异校正(MeDiC),该技术通过动态分类GPGPU线程束(warp)的内存差异行为(高缓存效用或低缓存效用),并据此优化缓存旁路、插入及内存调度。MeDiC在15个GPGPU工作负载上,相较于最先进的GPU缓存管理机制,实现了平均21.8%的加速比和20.1%更高的能效比,通过减少缓存排队延迟并提升有益线程束的命中率,显著改善了性能表现。
In a modern GPU architecture, all threads within a warp execute the same instruction in lockstep. For a memory instruction, this can lead to memory divergence: the memory requests for some threads are serviced early, while the remaining requests incur long latencies. This divergence stalls the warp, as it cannot execute the next instruction until all requests from the current instruction complete. In this work, we make three new observations. First, GPGPU warps exhibit heterogeneous memory divergence behavior at the shared cache: some warps have most of their requests hit in the cache, while other warps see most of their request miss. Second, a warp retains the same divergence behavior for long periods of execution. Third, requests going to the shared cache can incur queuing delays as large as hundreds of cycles, exacerbating the effects of memory divergence. We propose a set of techniques, collectively called Memory Divergence Correction (MeDiC), that reduce the negative performance impact of memory divergence and cache queuing. MeDiC delivers an average speedup of 21.8%, and 20.1% higher energy efficiency, over a state-of-the-art GPU cache management mechanism across 15 different GPGPU applications.
研究动机与目标
- 为解决GPGPU线程束中因内存差异导致的性能下降问题,即由于SIMD执行模式下最慢的内存请求会阻塞整个线程束。
- 利用线程束之间在内存访问模式上的异构性——特别是缓存命中/未命中行为的差异——实现优化。
- 通过基于实时线程束分类,智能管理缓存旁路、插入与内存调度,减轻L2缓存中的高排队延迟影响。
- 通过优先处理高效益线程束并最小化对共享内存资源的竞争,同时提升性能与能效比。
提出的方法
- 在线硬件采样线程束级别的内存差异行为,将线程束分类为高缓存效用或低缓存效用类型。
- 设计一种缓存旁路机制,将来自低效用线程束(多数未命中)的请求绕过L2缓存,以减少排队延迟并释放带宽。
- 采用一种缓存插入策略,保留来自高效益线程束(多数命中)的数据,防止过早淘汰,从而提升命中率。
- 设计一种内存控制器优先级机制,加速高效益线程束的请求处理,以最小化停顿时间。
- 基于实时线程束分类,对缓存与内存层次结构组件进行整体协同设计,以降低整体延迟。
- 利用线程束差异行为在时间上的稳定性,实现可靠且长期的优化决策,无需频繁重新分类。
实验结果
研究问题
- RQ1能否利用L2缓存层级中线程束间内存差异行为的异构性,来提升GPU的性能与能效比?
- RQ2如何通过将线程束动态划分为高效益与低效益类别,来减轻缓存排队延迟的影响?
- RQ3基于线程束级别的差异特性,缓存旁路、插入与内存调度在多大程度上可实现联合优化?
- RQ4能否通过将多数命中线程束转化为全命中,多数未命中线程束转化为全未命中,来减少整体停顿时间并提升资源利用率?
主要发现
- MeDiC通过基于缓存效用的线程束分类,并实施针对性优化,有效缓解了内存差异带来的性能影响。
- 该技术在15个多样化的GPGPU应用中,相较于最先进的GPU缓存管理机制,实现了平均21.8%的加速比。
- MeDiC相比同一基线实现了20.1%更高的能效比,主要得益于缓存流量与排队延迟的降低。
- 线程束差异行为在时间上的稳定性,使得无需频繁重新分类即可实现可靠且长期的优化。
- 对低效用线程束实施缓存旁路,可减少资源竞争并释放L2带宽,从而提升高效用线程束的性能。
- 优先处理高效用线程束的请求,显著减少了停顿时间,即使在高内存压力下亦能保持良好表现。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。