tensorflow / mlir

"Multi-Level Intermediate Representation" Compiler Infrastructure
1.73k stars 257 forks source link

[Linalg] Change attribute n_loop_types to iterator_types. #270

Closed nicolasvasilache closed 4 years ago

nicolasvasilache commented 4 years ago

PR 5614db039b28026b5fe38aa96a21c4e6835d352b introduces the attributes "indexing_maps" and "iterator_types" in the vector.contraction op.

The goal is to unify this with linalg.generic and linalg.indexed_generic.

Linalg is still using an older, more rigid, encoding that just specifies the number of loops with the implicit constraint that parallel loops come first followed by reduction loops (and window loops which are a special type of reduction).

Linalg should be updated to take the same form of iterator_types and code should be factored out in some reusable utils.

These utils will also be used in the future for a Linalg-style dialect on tensor values.

This PR will also involve modifying the Linalg traits to support this change.

Once this change is effective, we can add new Linalg transformations.

jsetoain commented 4 years ago

FYI: Working on this!