Compiler Optimizations for Eliminating Cache Conflict Misses
Files
Publication or External Link
Date
Authors
Advisor
Citation
DRUM DOI
Abstract
Limited set-associativity in hardware caches can cause
conflict misses when multiple data items map to the
same cache locations. Conflict misses have been found
to be a significant source of poor cache performance in
scientific programs, particularly within loop nests.
We present two compiler transformations to
eliminate conflict misses: 1) modifying variable
base addresses, 2) padding inner array dimensions.
Unlike compiler transformations that restructure the
computation performed by the program, these two techniques
modify its data layout. Using cache simulations
of a selection of kernels and benchmark programs, we show
these compiler transformations can eliminate conflict
misses for applications with regular memory access patterns.
Cache miss rates for a 16K, direct-mapped cache are reduced
by 35% on average for each program. For some programs,
execution times on a DEC Alpha can be improved up to 60%.
(Also cross-referenced as UMIACS-TR-97-59)