This is an archive of the discontinued LLVM Phabricator instance.

[mlir][linalg] Control dimensions to pad.
ClosedPublic

Authored by gysit on Mar 28 2022, 12:50 AM.

Details

Summary

This revision supports padding only a subset of the iteration dimensions via an additional padding-dimensions parameter. This control allows us to pad an operation in multiple steps. For example, one may want to pad only the output dimensions of a producer matmul fused into a consumer loop nest, before tiling and padding its reduction dimension.

Depends On D122309

Diff Detail

Event Timeline

gysit created this revision.Mar 28 2022, 12:50 AM
Herald added a project: Restricted Project. · View Herald TranscriptMar 28 2022, 12:50 AM
gysit requested review of this revision.Mar 28 2022, 12:50 AM
gysit updated this revision to Diff 418526.Mar 28 2022, 2:28 AM

Prevent hoisting if an operand is only partially padded.

nicolasvasilache accepted this revision.Mar 28 2022, 4:52 AM
nicolasvasilache added inline comments.
mlir/lib/Dialect/Linalg/Transforms/Transforms.cpp
188

can we use ShapedType::isDynamicDim instead of testing specifically against an implementation detail?

This revision is now accepted and ready to land.Mar 28 2022, 4:52 AM
gysit updated this revision to Diff 418553.Mar 28 2022, 5:26 AM

Address comment.

gysit edited the summary of this revision. (Show Details)Mar 28 2022, 6:53 AM
This revision was landed with ongoing or failed builds.Mar 28 2022, 7:41 AM
This revision was automatically updated to reflect the committed changes.