APT-GET: profile-guided timely software prefetching

Appeared in Proceedings of the Seventeenth European Conference on Computer Systems (EuroSys '22).

Abstract

Prefetching which predicts future memory accesses and preloads them from main memory, is a widely-adopted technique to overcome the processor-memory performance gap. Unfortunately, hardware prefetchers implemented in today's processors cannot identify complex and irregular memory access patterns exhibited by modern data-driven applications and hence developers need to rely on software prefetching techniques. We investigate the challenges of enabling effective, automated software data prefetching. Our investigation reveals that the state-of-the-art compiler-based prefetching mechanism falls short in achieving high performance due to its static nature. Based on this insight, we design APT-GET, a novel profile-guided technique that ensures prefetch timeliness by leveraging dynamic execution time information. APT-GET leverages efficient hardware support such as Intel's Last Branch Record (LBR), for collecting application execution profiles with negligible overhead to characterize the execution time of loads. APT-GET then introduces a novel analytical model to find the optimal prefetch-distance and prefetch injection site based on the collected profile to enable timely prefetches. We study APT-GET in the context of 10 real-world applications and demonstrate that it achieves a speedup of up to 1.98× and of 1.30× on average. By ensuring prefetch timeliness, APT-GET improves the performance by 1.25× over the state-of-the-art software data prefetching mechanism.

Publication date:
March 2022

Authors:
Saba Jamilan
Tanvir Ahmed Khan
Grant Ayers
Baris Kasikci
Heiner Litz

Projects:

Available media

Full paper text: PDF

Bibtex entry

@inproceedings{apt-get-jamilan22,
  author       = {Saba Jamilan and Tanvir Ahmed Khan and Grant Ayers and Baris Kasikci and Heiner Litz},
  title        = {{APT}-{GET}: profile-guided timely software prefetching},
  booktitle    = {Proceedings of the Seventeenth European Conference on Computer Systems (EuroSys '22)},
  pages        = {747–764},
  month        = mar,
  year         = {2022},
}
Last modified 21 Feb 2023