DocumentCode
2789426
Title
Optimizing Inter-Nest Data Locality Using Loop Splitting and Reordering
Author
Naci, Sofiane
Author_Institution
Comput. Lab., Cambridge Univ.
fYear
2007
fDate
26-30 March 2007
Firstpage
1
Lastpage
8
Abstract
With the increasing gap between processor speed and memory latency, the performance of data-dominated programs are becoming more reliant on fast data access, which can be improved using data locality optimization. Most studies in this area focus on optimizing data locality in individual loop nests. However in many embedded applications, data access patterns exhibit a significant amount of inter-nest reuse. In this paper, we present a compiler strategy that optimizes inter-nest data locality using code restructuring and loop transformations. Our approach captures data reuse between all loop nests in the program and then splits and reorders the nests so that those sharing arrays are closer together. The transformed program is then further optimized using loop transformations. We improve on previous studies by using global program analysis and integer linear programming to find the best nest ordering. The approach has been tested on many data-intensive embedded kernels and our simulation results indicate promising performance improvements.
Keywords
integer programming; linear programming; optimising compilers; program control structures; code restructure; compiler strategy; global program analysis; integer linear programming; inter-nest data locality optimization; loop transformation; memory latency; Algorithm design and analysis; Delay; Greedy algorithms; Integer linear programming; Kernel; Laboratories; Optimizing compilers; Performance analysis; Testing;
fLanguage
English
Publisher
ieee
Conference_Titel
Parallel and Distributed Processing Symposium, 2007. IPDPS 2007. IEEE International
Conference_Location
Long Beach, CA
Print_ISBN
1-4244-0910-1
Electronic_ISBN
1-4244-0910-1
Type
conf
DOI
10.1109/IPDPS.2007.370399
Filename
4228127
Link To Document