TY - GEN
T1 - Parameterized tiled loops for free
AU - Renganarayanan, Lakshminarayanan
AU - Kim, Daegon
AU - Rajopadhye, Sanjay
AU - Strout, Michelle Mills
PY - 2007
Y1 - 2007
N2 - Parameterized tiled loops-where the tile sizes are not fixed at compile time, but remain symbolic parameters until later - are quite useful for iterative compilers and "auto-tuners" that produce highly optimized libraries and codes. Tile size parameterization could also enable optimizations such as register tiling to become dynamic optimizations. Although it is easy to generate such loops for (hyper) rectangular iteration spaces tiled with (hyper) rectangular tiles, many important computations do not fall into this restricted domain. Parameterized tile code generation for the general case of convex iteration spaces being tiled by (hyper) rectangular tiles has in the past been solved with bounding box approaches or symbolic Fourier Motzkin approaches. However, both approaches have less than ideal code generation efficiency and resulting code quality. We present the theoretical foundations, implementation, and experimental validation of a simple, unified technique for generating parameterized tiled code. Our code generation efficiency is comparable to all existing code generation techniques including those for fixed tile sizes, and the resulting code is as efficient as, if not more than, all previous techniques. Thus the technique provides parameterized tiled loops for free! Our "one-size-fits-all" solution, which is available as open source software can be adapted for use in production compilers.
AB - Parameterized tiled loops-where the tile sizes are not fixed at compile time, but remain symbolic parameters until later - are quite useful for iterative compilers and "auto-tuners" that produce highly optimized libraries and codes. Tile size parameterization could also enable optimizations such as register tiling to become dynamic optimizations. Although it is easy to generate such loops for (hyper) rectangular iteration spaces tiled with (hyper) rectangular tiles, many important computations do not fall into this restricted domain. Parameterized tile code generation for the general case of convex iteration spaces being tiled by (hyper) rectangular tiles has in the past been solved with bounding box approaches or symbolic Fourier Motzkin approaches. However, both approaches have less than ideal code generation efficiency and resulting code quality. We present the theoretical foundations, implementation, and experimental validation of a simple, unified technique for generating parameterized tiled code. Our code generation efficiency is comparable to all existing code generation techniques including those for fixed tile sizes, and the resulting code is as efficient as, if not more than, all previous techniques. Thus the technique provides parameterized tiled loops for free! Our "one-size-fits-all" solution, which is available as open source software can be adapted for use in production compilers.
KW - Bounding box
KW - Code generation
KW - Fourier-Motzkin elimination
KW - Parameterized tiling
UR - http://www.scopus.com/inward/record.url?scp=35448985754&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=35448985754&partnerID=8YFLogxK
U2 - 10.1145/1250734.1250780
DO - 10.1145/1250734.1250780
M3 - Conference contribution
AN - SCOPUS:35448985754
SN - 1595936335
SN - 9781595936332
T3 - Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI)
SP - 405
EP - 414
BT - PLDI'07
T2 - PLDI'07: 2007 ACM SIGPLAN Conference on Programming Language Design and Implementation
Y2 - 10 June 2007 through 13 June 2007
ER -