Details
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
Sorry for the slow review. Why are we adding it without any lowering? The goal is to lower to SPIRV that has those semantics?
mlir/include/mlir/Dialect/GPU/IR/GPUOps.td | ||
---|---|---|
690 | I wonder if the flag should be reverted and be uniform instead. non_uniform should be the default as it is the most conservative case. This way unless specified the op is created without the uniform assumption. | |
mlir/lib/Dialect/GPU/Transforms/AllReduceLowering.cpp | ||
399 | Should this be an error? |
I was planning to add spirv lowering in separate review.
mlir/include/mlir/Dialect/GPU/IR/GPUOps.td | ||
---|---|---|
690 | The idea itself is ok to me, but:
| |
mlir/lib/Dialect/GPU/Transforms/AllReduceLowering.cpp | ||
399 | There is no good way to return error from rewrite, I think. Even if we use emitError it will only change error message, but won't propagate it. |
mlir/include/mlir/Dialect/GPU/IR/GPUOps.td | ||
---|---|---|
690 | using non-uniform version should be conservative and correct at the GPU level. The part that does break is the lowering and there should be an explicit lowering failure there.
I wonder if this is due to the order in which those got added. If there were added at the same time and/or we didn't have to keep compatibility I would guess that's not how they would have been done. | |
mlir/lib/Dialect/GPU/Transforms/AllReduceLowering.cpp | ||
399 | Yes, in general we should just fail the pattern, here because this pattern tries to convert the whole function this is a bit awkward. |
I wonder if the flag should be reverted and be uniform instead. non_uniform should be the default as it is the most conservative case. This way unless specified the op is created without the uniform assumption.
What do you think?