Skip to main content

b200-tmem-lifecycle-planner

Use when the user is using `tcgen05` on Blackwell/B200 and needs to plan TMEM accumulators, block-scale factors, TMEM column allocation, the `tcgen05.ld/st/cp` paths, epilogue readback, and safe deallocation. Produces a TMEM region map, column budget, and lifecycle. Not for Hopper/Ampere or code that treats TMEM as ordinary shared memory.

Aller à l'installation

Informations de source

Dépôt
mirage-project/mirage
Dernière activité de la source
28 juillet 2026 à 02:04
Langue détectée de SKILL.md
anglais
Étoiles
2 505
Forks
256

Options d'installation

Le prompt qui vérifie d'abord la source est sélectionné par défaut. Vous pouvez passer à une commande directe ou télécharger une copie locale.

Vérifiez les fichiers source

Lisez SKILL.md et les fichiers associés affichés par SkillsMP avant de décider de l'installer.

Explorateur de fichiers
2 fichiers

Affichage de SKILL.md

SKILL.md
Instructions source · Aperçu en lecture seule
name
b200-tmem-lifecycle-planner
description
Use when the user is using `tcgen05` on Blackwell/B200 and needs to plan TMEM accumulators, block-scale factors, TMEM column allocation, the `tcgen05.ld/st/cp` paths, epilogue readback, and safe deallocation. Produces a TMEM region map, column budget, and lifecycle. Not for Hopper/Ampere or code that treats TMEM as ordinary shared memory.
source_book
Modern GPU Programming For MLSys (MLC Community) + NVIDIA Blackwell Tuning/Compatibility Guides
source_chapter
S8; S7; S14
tags
["b200","blackwell"]
related_skills
["b200-layout-contract-auditor","b200-tcgen05-mma-contract-builder","b200-mbarrier-protocol-auditor","b200-flash-attention4-planner"]
version
0.1.0
<!-- Distilled from "Modern GPU Programming for MLSys" — https://mlc.ai/modern-gpu-programming-for-mlsys/ --> # B200 TMEM Lifecycle Planner ## R — Source evidence (Reading, paraphrased) - [S8] TMEM is a Blackwell-only, CTA-scoped two-dimensional `Lane × Col` scratchpad, with 128 Lane rows and up to 512 32-bit Cols. - [S8] TMEM must be explicitly allocated and freed in 32-column units; ordinary shared load/store cannot access it. - [S8] `tcgen05.ld/st/cp` are all dedicated asynchronous paths, each with its own completion rules. - [S7] Both the accumulator and the block-scale factors may live in TMEM, but their layouts and lifecycles differ. > Source: distilled from "Modern GPU Programming for MLSys" (https://mlc.ai/modern-gpu-programming-for-mlsys/) and the NVIDIA Blackwell tuning/compatibility guides. Short paraphrases only; no long passages are reproduced. --- ## I — Methodology skeleton (Interpretation) TMEM planning resembles an "explicitly managed accumulator heap", not compiler-allocated registers: 1. First compute the columns and alignment each object class needs; 2. then map the logical tiles onto `TLane/TCol`; 3. annotate who writes, who reads, and when each completes; 4. arrange region reuse and the final free; 5. ensure the epilogue's register fragments are consistent with the TMEM mapping used at write time. A larger tile reducing register pressure does not mean the resources are free; it shifts the pressure onto the TMEM column budget and readback bandwidth. --- ## A1 — Applications in the source (Past Application) ### Case 1: dense MMA accumulator - `tcgen05.mma` writes the fp32 accumulator to TMEM. - After the compute phase, the full warpgroup uses `tcgen05.ld` to read its fragments back into registers for cast/epilogue/store. ### Case 2: block-scaled MMA - A/B data live in SMEM. - Scale factors first go to SMEM, then enter the dedicated TMEM scale layout via `tcgen05.cp`. - The scale region and the accumulator region must not reuse the same mapping just because both are in TMEM. --- ## A2 — Trigger scenarios (Future Trigger) ★ ### In what situations will the user need this skill? 1. "How many TMEM columns does this tcgen05 kernel need to allocate?" 2. "Help me plan the TMEM reuse of S/P/O in FlashAttention." 3. "How should the completion and free ordering of tcgen05.ld/st/cp be written?" ### Language signals - "How many TMEM columns does this tcgen05 kernel need to allocate?" - "Help me plan the TMEM reuse of S/P/O in FlashAttention." - "How should the completion and free ordering of tcgen05.ld/st/cp be written?" ### Distinction from adjacent skills Versus `b200-tcgen05-mma-contract-builder`: this skill focuses on TMEM resources, layout, and lifecycle; the MMA contract builder additionally decides the tile shape, cta_group, dtype, and operand placement. --- ## E — Executable steps (Execution) Once the skill is activated, the agent must execute the following procedure: 1. **List the TMEM objects** - Accumulators, score/prob/output tiles, scale factors, temporary regions. - For each object, record its dtype, logical shape, and the number simultaneously live. 2. **Compute the column budget** - Map the objects onto 32-bit Cols; round up to the 32-column allocation unit. - Include the replication factors for pipeline stages, dual Q stages, or multiple consumers. 3. **Define the 2D layout** - Give explicit `TLane`, `TCol` formulas; "so many bytes off the base" alone is not enough. - For `cta_group::2`, write out each CTA's fragment in its own TMEM separately. 4. **Define the write paths** - MMA accumulator: `tcgen05.mma`. - Scale: `tcgen05.cp` from SMEM→TMEM. - register→TMEM: `tcgen05.st`. 5. **Define the readback path** - Choose the `tcgen05.ld` shape/repeat; write out the fragment each warp/lane receives. - After readback, wait on the corresponding `wait::ld` before consuming the registers. 6. **Draw the lifecycle** - allocate → producer writes → completion → consumers read/modify → completion → reuse/free. - Annotate every reuse edge with its barrier or wait. 7. **Check region reuse** - Overlay only when all old consumers have completed and the new layout does not conflict. 8. **Produce the resource report** - Total columns, peak simultaneously-live columns, alignment waste, the riskiest reuse edge, and the epilogue readback cost. ### Required outputs 1. **Conclusion**: the current choice/diagnosis, without vague "could be any of them" hedging. 2. **Evidence or assumptions**: which come from user data, and which are hypotheses awaiting verification. 3. **Contract/table/timeline**: the auditable intermediate artifacts corresponding to this skill. 4. **Minimal validation**: correctness tests, boundary tests, and one falsifiable experiment. 5. **Risks and fallback**: alternative paths when hardware, version, or resource conditions are not met. --- ## B — Boundaries (Boundary) ★ ### Do not use when - The target is not Blackwell, or the kernel does not use `tcgen05`/TMEM. - The user only needs ordinary shared memory tiling. ### Failure modes - Accessing TMEM with `ld.shared/st.shared`. - Forgetting to allocate in 32-column units, or forgetting to free. - Consuming registers before `tcgen05.ld` has completed. - Mixing the accumulator layout with the scale-factor layout. ### Limitations - The exact available column count, supported load shapes, and lowering depend on the toolchain version; verify against the target compiler and the generated PTX. --- ## Related skills - **depends-on**: `b200-layout-contract-auditor` - **contrasts-with**: none - **composes-with**: `b200-tcgen05-mma-contract-builder`, `b200-mbarrier-protocol-auditor`, `b200-flash-attention4-planner` --- ## Audit info - **Validation passed**: V1 ✓ / V2 ✓ / V3 ✓ - **Test definitions**: 6 (3 should_trigger / 2 should_not_trigger / 1 edge_case) - **Hardware validation**: not performed; must be verified on a target B200 - **Distilled**: 2026-06-25
Voir sur GitHub