EN FR
EN FR




Bibliography




Bibliography


Section: New Results

Semantic Program Transformations

Participants : Christophe Alias, Guillaume Iooss, Sanjay Rajopadhye [Colorado State University] .

Traditionally, a program transformation is considered to be correct if each data dependence of the original program is respected. In that case, both original and transformed programs perform exactly the same computation. We can relax this condition by expecting both programs to perform the same computation, modulo the semantic properties of the operators (e.g., associativity, commutativity). Semantic program transformations extend the traditional corpus of program transformations and can reveal new optimization opportunities.

More specifically, we are interested in semantic loop tiling, a special case of loop tiling, where the input arrays are tiled, and the program is restructured to use high-level matrix operations between data tiles, instead of the original scalar operations. Surprisingly, it turns out that in most cases, the semantic tiling is simply obtained by substituting the scalar variables by the tiles (matrices), and the original operators by the corresponding matrix operators (e.g., a/b by MatMul(A,Inv(B))). The approach currently investigated consists in two steps: (i) guess the semantic tiling, and (ii) prove the (semantic) equivalence with the original program.

Our current contribution is an heuristic to check the equivalence of two programs modulo associativity/commutativity so as to achieve the step (ii). The two programs should fit in the polyhedral model but can involve explicit reductions. This work is currently under submission, and is part of the PhD thesis of Guillaume Iooss.