Quantifying loop nest locality using SPEC'95 and the perfect benchmarks
Authors:
Open Access
- 1 November 1999
- journal article
- Published by Association for Computing Machinery (ACM) in ACM Transactions on Computer Systems
- Vol. 17 (4) , 288-336
Abstract
This article analyzes and quantifies the locality characteristics of numerical loop nests in order to suggest future directions for architecture and software cache optimizations. Since most programs spend the majority of their time in nests, the vast majority of cache optimization techniques target loop nests. In contrast, the locality characteristics that drive these optimizations are usually collected across the entire application rather than at the nest level. Researchers have studied numerical codes for so long that a number of commonly held assertions have emerged on their locality characteristics. In light of these assertions, we use the SPEC'95 and Perfect Benchmarks to take a new look at measuring locality on numerical codes based on references, loop nests, and program locality properties. Our results show that several popular assertions are at best overstatements. For example, although most reuse is within a loop nest, in line with popular assertions, most misses are internest capacity misses, and they correspond to potential reuse between nearby loop nests. In addition, we find that temporal and spatial reuse have balanced roles within a loop nest and that most reuse across nests and the entire program is temporal. These results are consistent with high hit rates (80% or more hits), but go against the commonly held assumption that spatial reuse dominates. Our locality measurements reveal important differences between loop nests and programs, refute some popular assertions, and provide new insights for the compiler writer and the architect.Keywords
This publication has 37 references indexed in Scilit:
- Precise miss analysis for program transformations with caches of arbitrary associativityACM SIGPLAN Notices, 1998
- Memory bandwidth limitations of future microprocessorsACM SIGARCH Computer Architecture News, 1996
- Tile size selection using cache organization and data layoutACM SIGPLAN Notices, 1995
- Effective hardware-based data prefetching for high-performance processorsIEEE Transactions on Computers, 1995
- Column-associative cachesACM SIGARCH Computer Architecture News, 1993
- Access normalizationACM SIGPLAN Notices, 1992
- Software prefetchingACM SIGARCH Computer Architecture News, 1991
- An architecture for software-controlled data prefetchingACM SIGARCH Computer Architecture News, 1991
- Improving register allocation for subscripted variablesACM SIGPLAN Notices, 1990
- Supercomputer performance evaluation and the Perfect BenchmarksACM SIGARCH Computer Architecture News, 1990