Simplify the lowering of warp_execute_on_lane0 of scf.if by making the
logic more generic. Also remove the assumption that the most inner
dimension is the dimension distributed.
Details
Diff Detail
Event Timeline
Nice!
Please check no regressions in IREE and add new tests if something flares up.
Thanks!
mlir/lib/Dialect/Vector/Transforms/VectorDistribute.cpp | ||
---|---|---|
36 | perm.reserve(...) | |
37 | There is no yield value here, just use seq and dist types plz. | |
46 | Shouldn't there be some sanity checks here and described in the doc? I.e. things that divide modulo warp size, size(perm) == rank || size(perm) == rank - 1 etc ? |
mlir/lib/Dialect/Vector/Transforms/VectorDistribute.cpp | ||
---|---|---|
58 | nit: inferred |
mlir/lib/Dialect/Vector/Transforms/VectorDistribute.cpp | ||
---|---|---|
46 | The checks are already there in the verifier so duplicating it wouldn't make a lot of sense. I added an assert checking that only one dim is distributed since this code wouldn't work otherwise. |
perm.reserve(...)