Cache Programming for Scientific Loops Using Leases

Benjamin Reber, Matthew Gould, Alexander H. Kneipp, Fangzhou Liu, Ian R. Prechtl, Chen Ding, Linlin Chen, Dorin Patru · ACM Transactions on Architecture and Code Optimization · 2023

Cache management is important in exploiting locality and reducing data movement. This article studies a new type of programmable cache called the lease cache. By assigning leases, software exerts the primary control on when and how long data stays in the cache. Previous work has shown an optimal solution for an ideal lease cache. This article develops and evaluates a set of practical solutions for a physical lease cache emulated in FPGA with the full suite of PolyBench benchmarks. Compared to automatic caching, lease programming can further reduce data movement by 10% to over 60% when the data size is 16 times to 3,000 times the cache size, and the techniques in this article realize over 80% of this potential. Moreover, lease programming can reduce data movement by another 0.8% to 20% after polyhedral locality optimization.

Read the paper · More papers on PaperTik