TY - GEN
T1 - Optimizing inter-nest data locality
AU - Kandemir, M.
AU - Kadayif, I.
AU - Choudhary, Alok Nidhi
AU - Zambreno, J. A.
PY - 2002/12/1
Y1 - 2002/12/1
N2 - By examining data reuse patterns of four array-intensive embedded applications, we found that these codes exhibit a significant amount of inter-nest reuse (i. e., the data reuse that occurs between different nests). While traditional compiler techniques that target array-intensive applications can exploit intra-nest data reuse, there has not been much success in the past in taking advantage of internest data reuse. In this paper, we present a compiler strategy that optimizes inter-nest reuse using loop (iteration space) transformations. Our approach captures the impact of execution of a nest on cache contents using an abstraction called footprint vector. Then, it transforms a given nest such that the new (transformed) access pattern reuses the data left in cache by the previous nest in the code. In optimizing inter-nest locality, our approach also tries to achieve good intra-nest locality. Our simulation results indicate large performance improvements. In particular, inter-nest loop optimization generates competitive results with intra-nest loop and data optimizations.
AB - By examining data reuse patterns of four array-intensive embedded applications, we found that these codes exhibit a significant amount of inter-nest reuse (i. e., the data reuse that occurs between different nests). While traditional compiler techniques that target array-intensive applications can exploit intra-nest data reuse, there has not been much success in the past in taking advantage of internest data reuse. In this paper, we present a compiler strategy that optimizes inter-nest reuse using loop (iteration space) transformations. Our approach captures the impact of execution of a nest on cache contents using an abstraction called footprint vector. Then, it transforms a given nest such that the new (transformed) access pattern reuses the data left in cache by the previous nest in the code. In optimizing inter-nest locality, our approach also tries to achieve good intra-nest locality. Our simulation results indicate large performance improvements. In particular, inter-nest loop optimization generates competitive results with intra-nest loop and data optimizations.
KW - Array-intensive codes
KW - Cache locality
KW - Data reuse
KW - Embedded applications
KW - Inter-nest optimization
UR - http://www.scopus.com/inward/record.url?scp=18844390869&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=18844390869&partnerID=8YFLogxK
U2 - 10.1145/581630.581650
DO - 10.1145/581630.581650
M3 - Conference contribution
AN - SCOPUS:18844390869
SN - 1581135750
SN - 9781581135756
T3 - Proceedings of the 2002 International Conference on Compilers, Architecture, and Synthesis for Embedded Systems, CASES '02
SP - 127
EP - 135
BT - Proceedings of the 2002 International Conference on Compilers, Architecture, and Synthesis for Embedded Systems, CASES '02
T2 - 2002 International Conference on Compilers, Architecture, and Synthesis for Embedded Systems, CASES '02
Y2 - 8 October 2002 through 11 October 2002
ER -