Modern memory hierarchies work well with applications that have good spatial locality. Evolving (dynamic) graphs are important applications widely used to model graphs and networks with edge and vertex changes. They exhibit irregular memory access patterns and suffer from a high miss ratio and long miss penalty. Prefetching can be employed to predict and fetch future demand misses. However, current hardware prefetchers can not efficiently predict for applications with irregular memory accesses. In evolving graph applications, vertices that do not change during graph changes exhibit the same access correlation patterns. Current temporal prefetchers use one-to-one or one-to-many correlation to exploit these patterns. Similar patterns are recorded in the same entry, which causes aliasing and can lead to poor prefetch accuracy and coverage. This work proposes a software-assisted hardware prefetcher for evolving graphs. The key idea is to record the correlations between a sequence of vertex accesses and the following misses and then prefetch when the same vertex access sequence occurs in the future. The proposed Access-to-Miss Correlation (AMC) prefetcher provides a lightweight programming interface to identify the data structures of interest and sets the iteration boundary to update the correlation table. For the evaluated applications, AMC achieves a geomean speedup of 1.5x as compared to the best-performing prefetcher in prior work (VLDP). AMC can achieve an average of 62% accuracy and coverage, whereas VLDP has an accuracy of 31% and coverage of 23%.
翻译:现代内存层次结构对于具有良好空间局部性的应用程序表现优异。演化(动态)图作为一类重要应用,广泛用于建模边与顶点发生变化的图与网络。这类应用表现出不规则的内存访问模式,并受高缺失率与长缺失延迟的困扰。预取技术可用于预测并获取未来的需求缺失。然而,当前硬件预取器难以有效预测具有不规则内存访问的应用。在演化图应用中,在图结构变化期间未发生改变的顶点呈现出相同的访问相关性模式。现有时序预取器利用一对一或一对多相关性来挖掘这些模式。相似的模式被记录在同一表项中,这会导致别名混淆,进而造成预取准确率与覆盖率低下。本文提出一种面向演化图的软件辅助硬件预取器。其核心思想是记录顶点访问序列与后续缺失之间的相关性,当未来出现相同顶点访问序列时触发预取。所提出的访问-缺失相关性(AMC)预取器提供轻量级编程接口,用于标识目标数据结构并设置迭代边界以更新相关性表。在评估应用中,相较于先前工作中性能最优的预取器(VLDP),AMC实现了1.5倍的几何平均加速比。AMC平均可获得62%的准确率与覆盖率,而VLDP的准确率为31%,覆盖率为23%。