The Hopper & Blackwell async tensor-core paradigm, derived as one chain of forced moves. The engine of the whole track: the tensor core got so fast that feeding it became the entire kernel. A B200 sustains ≈2 PFLOP/s of fp16 but HBM delivers only ≈8 TB/s — so the classic synchronous "load, sync, compute" loop leaves the tensor core idle most of the clock, and every modern feature (TMA, TMEM, mbarriers, warp specialization, clusters) exists to remove one more thing that starves it. We build two kernels that assemble all of it: a GEMM that climbs from 70 ms to cuBLAS parity, and Flash Attention 4.
How to read this track
Strictly linear. Part I (00–02) establishes the forcing function: the roofline, why occupancy stopped feeding the tensor core, and the layout algebra everything else depends on. Part II (03–07) derives the five hardware primitives one at a time — each is the forced answer to a bottleneck the previous one exposed: tensor-core generations → TMA → TMEM → mbarriers → clusters/CLC. Part III (08–10) assembles them into a GEMM, growing it from the smallest correct tile to a warp-specialized, clustered, cuBLAS-parity kernel. Part IV (11–14) does it again for Flash Attention 4 (two MMAs with a softmax wedged between), then teaches how to debug this class of kernel and where the whole paradigm lives in the real toolchain.
Mental stance
This is the advanced sequel to gpu_kernels. That track teaches the classic synchronous SIMT model (load tile → __syncthreads() → compute) and the WMMA-era tensor core; this track is what happens when that model breaks down on Hopper/Blackwell and the kernel must be rebuilt as an asynchronous supply chain. Assume you know warps, shared memory, coalescing, and the roofline. Code is framed vendor-real — CUTLASS/CuTe abstractions and PTX (cp.async.bulk.tensor, wgmma, tcgen05.mma, mbarrier.*) — because that is the toolchain you will actually meet.
The dependency chain
Not a wheel — a directed line. Each primitive is forced by a bottleneck the previous step could not remove, and the two capstones simply assemble the line. If you skip a step, the next one reads like a folk trick instead of the only way out of the wall.
Part I · the forcing function
Why a Blackwell tensor core can't be fed by the classic loop, how to measure it, and the layout algebra every later lesson depends on.
Advanced sequel to gpu_kernels (the classic synchronous model) and triton_kernels (the higher-level DSL). The "how SOTA kernels are built" counterpart to ai_compilers ("how kernels are generated"). The kernels here are what cs336 plugs into the LLM stack, and what vllm / sglang call at serving time. Distilled from MLC.ai's Modern GPU Programming for MLSys, reframed in CUTLASS/CuTe + PTX terms.