This is an archive of the discontinued LLVM Phabricator instance.

[mlir] Transform op for multitile size generation
ClosedPublic

Authored by ftynse on Jul 7 2022, 6:39 AM.

Details

Summary

Introduce a structured transform op that emits IR computing the multi-tile
sizes with requested parameters (target size and divisor) for the given
structured op. The sizes may fold to arithmetic constant operations when the
shape is constant. These operations may then be used to call the existing
tiling transformation with a single non-zero dynamic size (i.e. perform
strip-mining) for each of the dimensions separately, thus achieving multi-size
tiling with optional loop interchange. A separate test exercises the entire
script.

Depends On D129217

Diff Detail

Event Timeline

ftynse created this revision.Jul 7 2022, 6:39 AM
Herald added a project: Restricted Project. · View Herald TranscriptJul 7 2022, 6:39 AM
ftynse requested review of this revision.Jul 7 2022, 6:39 AM
Herald added a project: Restricted Project. · View Herald TranscriptJul 7 2022, 6:39 AM
ftynse updated this revision to Diff 442899.Jul 7 2022, 6:56 AM

Add Python bindings.

ftynse updated this revision to Diff 442915.Jul 7 2022, 7:33 AM

Rebase.

ftynse updated this revision to Diff 443206.Jul 8 2022, 4:41 AM

Rebase.

nicolasvasilache accepted this revision.Jul 12 2022, 3:00 AM

Very cool!

mlir/include/mlir/Dialect/Linalg/TransformOps/LinalgTransformOps.td
159

nit: operation

This revision is now accepted and ready to land.Jul 12 2022, 3:00 AM
ftynse marked an inline comment as done.Jul 12 2022, 5:24 AM
This revision was automatically updated to reflect the committed changes.