Litcius/Paper detail

APT-GET

Saba Jamilan, Tanvir Ahmed Khan, Grant Ayers, Baris Kasikci, Heiner Litz

202224 citationsDOIOpen Access PDF

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.

Topics & Concepts

Instruction prefetchComputer scienceSpeedupOverhead (engineering)Context (archaeology)CompilerSoftwareState (computer science)Parallel computingEmbedded systemOperating systemDistributed computingComputer architectureProgramming languageCachePaleontologyBiologyParallel Computing and Optimization TechniquesAdvanced Data Storage TechnologiesCloud Computing and Resource Management
APT-GET | Litcius