Compiler Optimizations for Eliminating Cache Conflict Misses

Loading...
Thumbnail Image

Files

CS-TR-3819.ps (273.64 KB)
No. of downloads: 753
CS-TR-3819.pdf (107.03 KB)
No. of downloads: 1474

Publication or External Link

Date

1998-10-15

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)

Notes

Rights