[Mlir-commits] [mlir] [MLIR] Add continuous tiling to TileUsingForOp (PR #82792)
Oleksandr Alex Zinenko
llvmlistbot at llvm.org
Thu Mar 21 06:14:52 PDT 2024
ftynse wrote:
SGTM in principle. I'm not quite sure how this tiling would work for multiple dimensions though.
> transform.structured.split is changed such that it performs a multiway split at once. The above assumes that split would still produce only two outputs, though the second handle (%tail_linalgs) would collect all but the first split-off part.
Nit: I'd rather just have one result, and your example merges the two results anyway. If the two distinct results are necessary, we can either use `transform.split_handle` or have an attribute controlling this.
> transform.foreach is changed to take multiple handles by making target variadic and iterates over all handles at once by "zipping" the lists associated with the handles. The enclosed block would take as many arguments as there are targets.
Nit: make sure to define behavior when lengths don't match, e.g. `zip_shortest` vs. `zip` (produces failure on mismatch). Making it visible in the syntax is also nice.
> @ftynse, you mentioned an approach whereby the transform dialect would itself be subject to rewrites. Do you have a reference for us to look at?
I don't think something was committed upstream because there was no pressing need for that. However, transform dialect is a just a dialect. One should be able to write a pass based that applies patterns rewriting transform dialect operations quite easily. One of these patterns may expand a hypothetical high-level op into the actual implementation as proposed above.
https://github.com/llvm/llvm-project/pull/82792
More information about the Mlir-commits
mailing list