[llvm] [docs][AMDGPU] move DMA operations to a separate file (PR #206917)
via llvm-commits
llvm-commits at lists.llvm.org
Wed Jul 1 07:42:24 PDT 2026
================
@@ -0,0 +1,145 @@
+(amdgpu-dma-operations)=
+
+# AMDGPU DMA Operations
+
+```{contents}
+:local:
+```
+
+## Introduction
+
+DMA operations transfer data between different kinds of memory directly without
+occupying registers in the invoking wave. They are usually
+{ref}`asynchronous<amdgpu-async-operations>` asynchronous, and require the user
+to explicitly track completion using {ref}`asyncmarks<amdgpu-async-operations>`.
+
+All DMA operations support the same cache modifiers as ordinary load/store
+operations from registers. They cannot be performed atomically.
----------------
joalsop wrote:
We might want to clarify "they cannot be performed atomically" a bit. For example, if I have the following, is it possible for me to perform the signal as an atomic, although it is asynchronous (i.e., ensure it is only guaranteed to be ordered after the tensor store)? I'm not sure if this is currently possible, but I suspect we will want the ability to do something like this...
tensor.store.from.lds(data_lds, data_global, scope=sys) // or another async op
<possibly some form of sync, depending on ordering guarantees of async ops>
async.store.from.lds(signal_lds, signal_global, scope=sys) // not issued immediately, but after data xfer completes
https://github.com/llvm/llvm-project/pull/206917
More information about the llvm-commits
mailing list