Fully Symbolic Analysis of Loop Locality: Using Imaginary Reuse to Infer Real Performance
Yifan Zhu, Yekai Pan, Chen Ding, Yanghui Wu
TL;DR
The theory is fully symbolic and derives locality as polynomials, and the compiler analysis supports affine loop nests, which derive cache-performance scaling in quadratic and reciprocal expressions and are more general and precise than empirical scaling rules.
Abstract
This paper presents a new theory of locality and its compiler support. The theory is fully symbolic and derives locality as polynomials, and the compiler analysis supports affine loop nests. They derive cache-performance scaling in quadratic and reciprocal expressions and are more general and precise than empirical scaling rules. Evaluated on a benchmark suite of 41 scientific kernels and tensor operations, the compiler requires an average of 41 seconds to derive the locality polynomials. After derivation, predicting the cache miss count for any given input size and cache configuration takes less than a millisecond. Across all tests--with and without loop fusion--the accuracy in the data movement prediction is 99.6\%, compared to simulated set-associative L1 data cache.
