## 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.