This changes adds infrastructure to distribute the loops generated in
Linalg to processors at the time of generation. This addresses use
case where the instantiation of loop is done just to distribute
them. The option to distribute is added to TilingOptions for now and
will allow specifying the distribution as a transformation option,
just like tiling and promotion are specified as options.
Details
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
mlir/lib/Dialect/Linalg/Utils/Utils.cpp | ||
---|---|---|
187–189 | Does this need to be an affine expression? Nicolas has some patch in flight to allow folding the affine.min created by tiling, I'm not sure if it needs it. Hopefully Nicolas can comment. |
Look great Mahesh, thanks for working on this !
mlir/lib/Dialect/Linalg/Utils/Utils.cpp | ||
---|---|---|
187–189 | +1 | |
268 | nit: I would reformat this under a // clang-format off to make it "look more like loops". | |
290 | Nit: while we're still under EDSC here, it should look quite nicer to use: Value slt(Value, Value) etc. | |
296 | same nit re "look more like loops" | |
309 | same nit re "look more like loops" |
Does this need to be an affine expression? Nicolas has some patch in flight to allow folding the affine.min created by tiling, I'm not sure if it needs it. Hopefully Nicolas can comment.