You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- Control helpers: `T.clear`/`T.fill`, `T.reshape`/`T.view`
@@ -33,14 +33,13 @@ Semantics
33
33
- Safety: the LegalizeSafeMemoryAccess pass inserts boundary guards when an
34
34
access may be out‑of‑bounds and drops them when proven safe.
35
35
36
-
### `T.copy`vs `T.async_copy`
36
+
### Lowering `T.copy`to variants of copy mechanisms
37
37
38
38
TileLang supports both synchronous and explicitly-asynchronous copies.
39
39
40
40
`T.copy(src, dst, ...)` (synchronous semantics)
41
41
- Intended default for most TileLang programs.
42
-
- The compiler is free to lower it to different mechanisms (SIMT copy, `ldmatrix`,
43
-
TMA, `cp.async`, etc.) depending on target/hints, but the observable semantics
42
+
- The compiler is free to lower it to different mechanisms (synchronous SIMT copy `ld.global`, warp-level copy `ldmatrix`, async copy via TMA `cp.async.bulk`, old async copy `cp.async`, etc.) depending on target/hints, but the observable semantics
44
43
are *synchronous*: after the statement, it is safe to use `dst`.
45
44
- If `T.copy` lowers to `cp.async`, TileLang will still preserve synchronous
46
45
semantics by emitting the required `commit`/`wait` (and any required
@@ -145,6 +144,7 @@ signatures, behaviors, constraints, and examples, refer to API Reference
145
144
Data movement
146
145
-`T.copy(src, dst, ...)`: Move tiles between Global/Shared/Fragment.
147
146
-`T.async_copy(src, dst, ...)`: Explicit async global→shared copy via `cp.async`.
147
+
-`T.tma_copy(src, dst, ...)`: Explicit async global→shared copy via `cp.async.bulk`
0 commit comments