Title :
Defensive loop tiling for shared cache
Author :
Bin Bao ; Chen Ding
Abstract :
Loop tiling is a compiler transformation that tailors an application´s working set to fit in a cache hierarchy. On today´s multicore processors, part of the hierarchy especially the last level cache (LLC) is shared. The available cache space in shared cache changes depending on co-run applications. Furthermore on machines with an inclusive cache hierarchy, the interference in the shared cache can cause evictions in the private cache, a problem known as the inclusion victims. This paper presents defensive tiling, a set of compiler techniques to estimate the effect of cache sharing and then choose the tile sizes that can provide robust performance in co-run environments. The goal of the transformation is to optimize the use of the cache while at the same time guarding against interference. It is entirely a static technique and does not require program profiling. The paper shows how it can be integrated into a production-quality compiler and evalutes its effect on a set of tililing benchmarks for both program co-run and solo-run performance, using both simulation and testing on real systems.
Keywords :
cache storage; data privacy; program compilers; shared memory systems; LLC hierarchy; cache sharing; compiler technique; compiler transformation; defensive loop tiling; inclusion victims problem; inclusive cache hierarchy; last level cache hierarchy; multicore processor; private cache; program co-run performance; program solo-run performance; tile size; Computational modeling; Cost function; Interference; Mathematical model; Measurement; Multicore processing; Program processors; Cache sharing; Loop tiling; Multicore;
Conference_Titel :
Code Generation and Optimization (CGO), 2013 IEEE/ACM International Symposium on
Conference_Location :
Shenzhen
Print_ISBN :
978-1-4673-5524-7
DOI :
10.1109/CGO.2013.6495008