Beyond Do Loops: Data Transfer Generation with Convex Array Regions


Automatic data transfer generation is a critical step for guided or automatic code generation for accelerators using distributed memories. Although good results have been achieved for loop nests, more complex control ows such as switches or while loops are generally not handled. This paper shows how to leverage the convex array regions abstraction to generate data transfers. The scope of this study ranges from inter-procedural analysis in simple loop nests with function calls, to inter-iteration data reuse optimization and arbitrary control ow in loop bodies. Generated transfers are approximated when an exact solution cannot be found. Array regions are also used to extend redundant load store elimination to array variables. The approach has been successfully applied to GPUs and domain-speci c hardware accelerators.

DOI: 10.1007/978-3-642-37658-0_17
View Slides

Extracted Key Phrases

1 Figure or Table

Cite this paper

@inproceedings{Guelton2012BeyondDL, title={Beyond Do Loops: Data Transfer Generation with Convex Array Regions}, author={Serge Guelton and Mehdi Amini and B{\'e}atrice Creusillet}, booktitle={LCPC}, year={2012} }