Portland, Oregon, USA
Nov. 13, 1999 to Nov. 18, 1999
Gabriel Rivera , University of Maryland
Chau-Wen Tseng , University of Maryland
DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/SC.1999.10063
Compiler transformations can significantly improve data locality of scientific programs. In this paper, we examine the impact of multi-level caches on data locality optimizations. We find nearly all the benefits can be achieved by simply targeting the L1 (primary) cache. Most locality transformations are unaffected because they improve reuse for all levels of the cache; however, some optimizations can be enhanced. Inter-variable padding can take advantage of modular arithmetic to eliminate conflict misses and preserve group reuse on multiple cache levels. Loop fusion can balance increasing group reuse for the L2 (secondary) cache at the expense of losing group reuse at the smaller L1 cache. Tiling for the L1 cache also exploits locality available in the L2 cache. Experiments show enhanced algorithms are able to reduce cache misses, but performance improvements are rarely significant. Our results indicate existing compiler optimizations are usually sufficient to achieve good performance for multi-level caches.
Gabriel Rivera, Chau-Wen Tseng, "Locality Optimizations for Multi-Level Caches", SC, 1999, SC Conference, SC Conference 1999, pp. 2, doi:10.1109/SC.1999.10063