  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%.
