copy_async#
Asynchronous copy. Every variant emits the transfer’s issue instruction; the
caller supplies the matching completion protocol. ldgsts uses cp.async
commit/wait, TMA loads and distributed-shared-memory copies signal an mbarrier,
TMA stores use the bulk async-group commit/wait operations, and tensor-memory
paths use their tcgen05 commit/wait operations. Selection is by the
source/destination memory pair and scope. CUDA currently registers six variant
names; the TMA page below covers two of them.
Variant |
Pair |
Prio |
Issue instruction |
|---|---|---|---|
global → shared |
20 |
|
|
copy_async → tma_auto / tma_explicit ( |
global ↔ shared |
10 |
|
shared → shared (cross-CTA) |
10 |
|
|
copy_async → smem->tmem (tcgen05.cp) ( |
shared → tmem |
10 |
one of the registered |
copy_async → tmem<->local (tcgen05.ld/st) ( |
tmem ↔ register |
10 |
|