GIT-CERCS-07-03
Subramanian Ramaswamy, Sudhakar Yalamanchili,
Adaptive Cache Placement for Scientific Computation
The central data structures for many applications in scientific computing are large multidimensional
arrays. These arrays dominate memory accesses and are often accessed with strides that vary across
orthogonal dimensions posing a central and critical challenge to develop effective caching strategies. We
propose a novel technique to optimize cache placement for multidimensional arrays with the focus on
minimizing conflict misses in the cache hierarchy. We propose architectural extensions for adaptive cache
placement that are exercised under software control to reduce conflict misses for various access patterns to
array data structures. Adaptive cache placement complements existing compiler optimizations, offering
a new degree of freedom in optimizing the memory system performance and can be used by dynamic
optimizers. Our implementation is compared to traditional caches for a range of common scientific loop
based kernels and applications, and is observed to reduce, and in some cases, eliminate conflict misses in
the L2 cache to array data structures. We explore the effect of cache parameters such as cache size and
associativity on global miss rates, average memory access time, area and power for these benchmarks.