[Mlir-commits] [mlir] [MLIR][NVVM] Add S2G and Reduce override NVVM Dialect ops (PR #216481)
Durgadoss R
llvmlistbot at llvm.org
Mon Aug 17 04:35:06 PDT 2026
================
@@ -4652,6 +4761,109 @@ def NVVM_CpAsyncBulkTensorReduceOp :
}];
}
+def NVVM_CpAsyncBulkTensorReduceOverrideAddrOp :
+ NVVM_VoidIntrinsicOp<"cp.async.bulk.tensor.reduce.override",
+ [AttrSizedOperandSegments]> {
+ let arguments = (ins
+ LLVM_AnyPointer:$tmaDesc,
+ LLVM_PointerShared:$srcMem,
+ LLVM_PointerGlobal:$overrideAdrr,
+ Variadic<I32>:$coordinates,
+ Variadic<I16>:$tensorSize,
+ Variadic<I32>:$lowerStride,
+ Optional<I16>:$upperStride,
+ Optional<I64>:$l2CacheHint,
+ TMAReduxKindAttr:$redKind,
+ DefaultValuedAttr<TMAStoreModeAttr, "TMAStoreMode::TILE">:$mode
+ );
+
+ let summary = "Async bulk tensor reduction from shared::cta to global memory with "
+ "tensor-map field overrides";
+ let description = [{
+ Initiates an asynchronous reduction of tensor data in global memory with the tensor
+ data in shared::cta memory, while overriding specific fields of the opaque tensor-map
+ object with explicit operands. It corresponds to the
+ `cp.reduce.async.bulk.tensor.[1-5]d.global.shared::cta.*` PTX instructions qualified
+ with `.override::*`.
+
+ The `mode` attribute selects the store mode and `redKind` selects the reduction
+ operation (`ADD`, `MIN`, `MAX`, `INC`, `DEC`, `AND`, `OR`, `XOR`) that combines the
+ source data in shared memory with the destination data in global memory. The override
+ variant is selected by which optional operands are provided:
----------------
durga4github wrote:
For the below section, can we refer to the same S2G Op and state that the behvior of these override-fields are similar to the S2G Op. (to not repeat the full docs again)
https://github.com/llvm/llvm-project/pull/216481
More information about the Mlir-commits
mailing list