Monoparametric Tiling of Polyhedral Programs
Tuilage monoparamétré de programmes polyédriques
Résumé
Tiling is a crucial program transformation, adjusting the ops-to-bytes balance of codes to improve
locality. Like parallelism, it can be applied at multiple levels. Allowing tile sizes to be symbolic
parameters at compile time has many benefits, including ecient autotuning, and run-time adaptability to
system variations. For polyhedral programs, parametric tiling in its full generality is known to be non-linear,
breaking the mathematical closure properties of the polyhedral model. Most compilation tools therefore
either perform fixed size tiling, or apply parametric tiling in only the final, code generation step. We introduce
monoparametric tiling, a restricted parametric tiling transformation. We show that, despite being
parametric, it retains the closure properties of the polyhedral model. We first prove that applying monoparametric
partitioning (i) to a polyhedron yields a union of polyhedra, and (ii) to an ane function produces a
piecewise-ane function. We then use these properties to show how to tile an entire polyhedral program.
Our monoparametric tiling is general enough to handle tiles with arbitrary tile shapes that can tesselate the
iteration space (e.g., hexagonal, trapezoidal, etc). This enables a wide range of polyhedral analyses and
transformations to be applied.
Origine | Fichiers produits par l'(les) auteur(s) |
---|
Loading...