[Mlir-commits] [mlir] [mlir][shard, mpi] Adding Shard/MPI reduce_scatter (PR #184189)
Frank Schlimbach
llvmlistbot at llvm.org
Tue Mar 3 02:50:03 PST 2026
================
@@ -333,6 +333,40 @@ def MPI_AllReduceOp : MPI_Op<"allreduce", []> {
"(`->` type($retval)^)?";
}
+//===----------------------------------------------------------------------===//
+// ReduceScatterBlockOp
+//===----------------------------------------------------------------------===//
+
+def MPI_ReduceScatterBlockOp : MPI_Op<"reduce_scatter_block", []> {
+ let summary = "Equivalent to `MPI_Reduce_scatter_block(sendbuf, recvbuf, "
+ "recvcount, dtype, op, comm)`";
+ let description = [{
+ MPI_Reduce_scatter_block first performs an element-wise reduction on the
+ sendbuf across all processes in the communicator, then scatters the result
+ by distributing equal-sized blocks to each process into recvbuf.
+
+ The `op` attribute specifies the reduction operation to be performed.
+ Currently only the `MPI_Op` predefined in the standard (e.g. `MPI_SUM`) are
+ supported.
+
+ This operation can optionally return an `!mpi.retval` value that can be used
+ to check for errors.
+ }];
+
+ let arguments = (
+ ins AnyNon0RankedMemRef : $sendbuf,
+ AnyNon0RankedMemRef : $recvbuf,
+ MPI_ReductionOpEnum : $op,
+ MPI_Comm : $comm
+ );
----------------
fschlimb wrote:
done
https://github.com/llvm/llvm-project/pull/184189
More information about the Mlir-commits
mailing list