An Efficient Profile-Analysis Framework for Data-Layout Optimizations By Shai Rubin, Rastislav Bodik, Trishul Chilimbi
Data-Layout Optimization To improve memory hierarchy performance by exploiting spatial locality –Group the data that is accessed together –Minimizing cache conflicts Optimizations –Field rearrangement in an object –Object rearrangement in the heap –Object inlining
Motivation A solution to find the optimal layout is NP- hard and also poorly approximable All these techniques are actually heuristics and no guarantee of effectiveness and robustness A naïve approach is tedious
Solution A generalized framework to determine the best layout for a given program –Unifying existing profile-based data layout optimizations A very efficient way of evaluating a candidate layout with simulation
Optimization Evaluation Memoization –Dynamic programming Whole Program Misses –The representation omits references that can never suffer any memory fault Ex. abba On demand Cache simulation
Results
Discussion How many applications really use this kind of optimizations? Some of the optimizations are already automated (ex. Object inlining)