中文 英语
首页
技术论文

向量Runahead

预取整个负载链的技术,并将多个循环迭代中的标量操作重新排序为矢量格式,以便一次引入许多独立的负载

受欢迎程度

摘要

“内存墙对许多现代工作负载的性能有很大的限制。这些应用程序具有依赖的、间接的内存访问的复杂链,即使是最先进的微架构预取器也无法拾取。结果是当前无序超标量处理器大部分时间都处于停滞状态。虽然可以构建特殊用途的体系结构来利用基本的内存级并行性,但在传统处理器中自动提高其性能的微体系结构技术仍然是难以捉摸的。提前执行是隐藏程序执行延迟的诱人提议。但是,要实现高内存级别的并行性,标准的预运行执行会在缓存丢失之前跳过。在现代工作负载中,这意味着它只预取每个依赖链中第一个缓存缺失的负载。我们认为这不是一个基本的限制。如果预先运行在缓存丢失时暂停,从而产生依赖的链负载,那么如果它可以同时在多个缓存上暂停,那么它就可以恢复性能。基于这种见解,我们提出了Vector Runahead技术,该技术可以预取整个负载链,并将多个循环迭代中的标量操作重新排序为矢量格式,从而一次引入许多独立的负载。 Vectorization of the runahead instruction stream increases the effective fetch/decode bandwidth with reduced resource requirements, to achieve high degrees of memory-level parallelism at a much faster rate. Across a variety of memory-latency-bound indirect workloads, Vector Runahead achieves a 1.79× performance speedup on a large out-of-order superscalar system, significantly improving on state-of-the-art techniques.”

找到技术论文链接通过IEEE Xplore

A. Naithani, S. Ainsworth, T. M. Jones和L. Eeckhout,“Vector Runahead”,2021 ACM/IEEE第48届计算机体系结构国际研讨会(ISCA), 2021, pp. 195-208, doi: 10.1109/ISCA52012.2021.00024。



留下回复


(注:此名称将公开显示)

Baidu