内存预取是一种性能优化技术,广泛应用于现代计算机系统的多个硬件和软件层。预取主动将数据从较慢的内存层带到较快的内存层,以预测其未来的用途。尽管对预取进行了充分研究,但仍在不断探索,尤其是随着新兴的内存层次结构包含异构性 [ 22 ]、分解 [ 27 ]、垂直 / 水平分层 [31] 和内存计算 [48]。早期的预取器针对易于捕获的模式(如步幅),并且足以满足易于理解的应用程序(如 SPEC 中的应用程序)的需求 [ 4 ]。然而,当今的系统和应用程序要复杂得多,动态性更强,简单的方法变得无效。人们对开发能够通过学习内存访问模式而不是检测预编程规则来适应动态执行的预取器的兴趣日益浓厚 [11, 18, 40]。最近的研究已经开始探索深度学习 (DL) 用于预取的可行性 [ 11 , 18 , 30 , 40 ]。理论上,DL 应该可以改善预取,因为它本质上是数据驱动的,并且应该自然地适应应用程序及其环境。事实上,这些研究表明,在理想的模拟中,DL 在准确性方面优于非学习预取方法。然而,所有这些方法都有三个主要缺点,阻碍了它们在现实世界中的应用。
主要关键词