Learn: The GPU Engineer’s Roadmap
What you're getting
This is the capstone of gpu-systems-for-llms: a concrete, honest plan for turning the twelve preceding lessons into a hireable track record for a GPU researcher/engineer role at a frontier LLM lab. Not “learn CUDA and apply” — a skill tree, a portfolio, a practice ladder, an interview map, and a phased study plan. By the end you should know exactly what to build, what to read, what interviews test, and roughly how long the path takes.
1. Learning map
graph TD A["The 3 role flavors<br/>kernel / infra / inference"] --> B["Map skills → this curriculum<br/>(what mastery looks like)"] B --> C["Portfolio projects<br/>that prove skill"] C --> D["Practice ladder<br/>books, lectures, puzzles, comps"] D --> E["Interview prep<br/>what actually gets tested"] E --> F["Break in<br/>OSS, benchmarks, blog, track record"] F --> G["Phased study plan<br/>weeks → job-ready"] style A fill:#44a,color:#fff style C fill:#4a4,color:#fff style G fill:#4a4,color:#fff
2. Why this matters (and why it’s learnable)
GPU/ML-systems is one of the few frontier-lab specialties where you can manufacture credible proof of skill from a laptop plus a rented GPU. Unlike, say, pretraining research — which needs a cluster you don’t have — kernel and systems work is verifiable in public: a kernel is either correct and fast or it isn’t, and a profiler tells the truth. That makes the hiring signal unusually legible. A GEMM that hits 90% of cuBLAS, a Triton FlashAttention that matches a reference numerically and beats eager PyTorch, a merged PR in vLLM — these are objective artifacts a hiring manager can inspect in ten minutes.
The trap this lesson exists to prevent: tutorial hell
The single most common failure mode is consuming content — watching every GPU MODE lecture, reading PMPP cover to cover — without producing a single profiled kernel. Passive knowledge is nearly worthless as a hiring signal because everyone claims it and no one can verify it. The unit of progress in this field is a benchmarked artifact, not a finished chapter. If a week goes by where you didn’t run Nsight on something you wrote, you’re in the trap.
The second trap: a "fast" kernel you never measured
“It felt faster” is not a result. Every performance claim in your portfolio must come with: the GPU model, the problem sizes, the baseline you compared against (cuBLAS / eager PyTorch / a reference kernel), the metric (TFLOP/s, GB/s, or latency), and ideally a roofline placement. An unbenchmarked optimization is indistinguishable from a bug — see 03-performance-modeling-roofline.
3. The role, disambiguated
“GPU engineer” at a frontier lab is not one job. There are three overlapping flavors. Most postings lean toward one but expect fluency across the shared core.
graph TD CORE["<b>Shared core</b><br/>SIMT model · memory hierarchy · roofline<br/>profiling (Nsight) · PyTorch internals · Python+C++"] CORE --> K["<b>(a) Kernel / performance engineer</b><br/>write & optimize CUDA/Triton kernels<br/>fusion, tensor cores, FP8, occupancy"] CORE --> I["<b>(b) Distributed-training / ML-infra</b><br/>DP · ZeRO/FSDP · TP/PP/EP · NCCL<br/>frameworks, MFU, cluster reliability"] CORE --> S["<b>(c) Inference / serving engineer</b><br/>latency & throughput · paged KV cache<br/>continuous batching · speculative decoding"] style CORE fill:#44a,color:#fff style K fill:#4a4,color:#fff style I fill:#4a4,color:#fff style S fill:#4a4,color:#fff
(a) Kernel / performance engineer. Day-to-day: profile a model, find the op eating wall-clock, write or tune a CUDA/Triton kernel to beat it, verify numerics, land it. Deep on the memory hierarchy, tensor-core MMA, warp specialization, and precision (BF16/FP8). Reads SASS, lives in Nsight Compute. Curriculum backbone: lessons 01-gpu-architecture-and-simt–07-triton-and-modern-kernels.
(b) Distributed-training / ML-infra engineer. Day-to-day: make a training run scale from 8 to 8,000 GPUs at high MFU without diverging or stalling. Owns the parallelism strategy (data/tensor/pipeline/expert), the collective-communication layer, checkpointing, failure recovery, and the training framework itself (Megatron/TorchTitan/DeepSpeed-class). Curriculum backbone: 08-data-parallelism-and-collectives–11-sota-large-scale-training.
(c) Inference / serving engineer. Day-to-day: serve a model at target latency and cost — paged KV cache, continuous batching, quantization, speculative decoding, disaggregated prefill/decode. Optimizes the p50/p99 latency–throughput frontier under real traffic. Curriculum backbone: 06-memory-wall-and-flashattention and 12-llm-inference-systems.
The overlapping core is the real prerequisite
All three demand the same foundation: the SIMT execution model, the memory hierarchy, roofline reasoning, comfort in a profiler, and enough PyTorch-internals knowledge to know where a tensor actually lives and when a graph breaks. Nail the core (Tiers 1–2) and you can pivot between flavors; skip it and you’ll plateau in all three. When in doubt about which to target: kernel work has the most legible portfolio for breaking in cold, because a single fast kernel is self-contained proof.
4. The skill tree → this curriculum
Below, each competency maps to the lesson(s) that build it and a concrete “mastery” bar — the thing you can do, not recognize.
| Competency | Lessons | Mastery = you can… |
|---|---|---|
| SIMT / warps / occupancy | 01-gpu-architecture-and-simt | explain why a divergent branch halves throughput; reason about occupancy vs. register pressure without guessing |
| Memory hierarchy & coalescing | 02-gpu-memory-hierarchy | predict whether a kernel is memory- or compute-bound before running it; spot uncoalesced access and bank conflicts in code |
| Roofline / arithmetic intensity / MFU | 03-performance-modeling-roofline | place any kernel on a roofline from its FLOPs and bytes; compute MFU for a training run and say what’s leaving performance on the table |
| CUDA fundamentals | 04-first-cuda-kernels | write a correct, grid-strided kernel from scratch; set up launch config sensibly |
| GEMM optimization ladder | 05-optimizing-gemm | take a naive matmul to ~90% of cuBLAS via coalescing → SMEM tiling → register blocking → vectorized loads, and explain each step’s speedup |
| Fusion & FlashAttention | 06-memory-wall-and-flashattention | derive online softmax; explain why FA is IO-bound-aware and reimplement its tiling |
| Triton & modern authoring | 07-triton-and-modern-kernels | write an autotuned Triton kernel; know when torch.compile suffices and when to drop to CUDA |
| Data parallelism & collectives | 08-data-parallelism-and-collectives | explain ring all-reduce bandwidth cost; overlap comms with compute; reason about NCCL/interconnect topology |
| Sharded DP (ZeRO/FSDP) | 09-zero-and-fsdp | do the 16-bytes/param memory accounting; pick ZeRO stage / FSDP config for a given model+cluster |
| Model parallelism (TP/PP/SP/EP) | 10-model-parallelism | derive the pipeline bubble; reason about TP communication volume; compose 3D parallelism |
| SOTA training systems | 11-sota-large-scale-training | reason about FP8, activation recompute, topology-aware config à la Llama 3 / DeepSeek-V3 |
| Inference & serving | 12-llm-inference-systems | explain paged attention + continuous batching; reason about the latency/throughput frontier and KV-cache economics |
Two adjacent skills the table doesn't cover — pick up in passing
(1) RL-systems literacy. Post-training is increasingly RL-heavy, and RL infra (rollout generation, actor/learner splits, long-context serving inside the training loop) is a fast-growing niche that sits exactly on the training↔inference seam. If your lab does RLHF/RLVR, skim 01-mdps-and-the-rl-objective and the PPO/GRPO material so you can speak to why inference throughput is now a training bottleneck. (2) Numerics. BF16 vs FP8 vs FP4, loss scaling, and “why did my kernel match to 1e-2 but not 1e-5” come up constantly — treat numerical-tolerance reasoning as a first-class skill, not an afterthought.
5. Portfolio projects that prove skill
Ordered by difficulty. Do them in order — each assumes the previous. For every project the rule is the same: public repo + short writeup + benchmark table with hardware, sizes, baseline, and metric. A repo with a README that shows a roofline plot and a speedup table beats a repo with 10× the code and no numbers.
Project 1 — The GEMM optimization ladder (vs cuBLAS)
Goal. Reproduce siboehm’s SGEMM ladder: naive → global-memory coalescing → SMEM tiling → 1D/2D register blocking → vectorized (
float4) loads → (stretch) warptiling, benchmarked against cuBLAS on your GPU at FP32.Proves. That you understand the memory hierarchy operationally, not just conceptually — every step is a hypothesis about a bottleneck that the profiler confirms.
Spec / definition of done.
- Each kernel is a separate, correct implementation (validate against cuBLAS output within tolerance).
- A table: kernel → TFLOP/s → % of cuBLAS, for a few square sizes (e.g. 1024, 2048, 4096).
- A roofline plot placing each kernel (03-performance-modeling-roofline).
- A README paragraph per step: what bottleneck did this remove, and how does Nsight Compute confirm it (occupancy, memory throughput, warp stalls).
- Target: ≥85–90% of cuBLAS at FP32 is a strong, honest result.1
How to show it. Pin the repo; lead the README with the results table + roofline. This is the single best “I actually understand GPUs” artifact for a cold application.
Project 2 — FlashAttention in Triton, matching a reference
Goal. Implement FlashAttention (forward, then backward) in Triton with online softmax and tiling; validate numerically against
torch.nn.functional.scaled_dot_product_attention/ the officialflash-attn.2Proves. Fusion + IO-aware kernel design + Triton fluency — the trifecta for kernel roles. This is close to what the job actually is.
Spec / definition of done.
- Forward pass matches reference within a stated tolerance across seq lengths and head dims; document the tolerance and why (numerics discussion).
- Latency/throughput vs. eager PyTorch attention and vs. the reference kernel, plotted over sequence length.
- Handle the causal mask; bonus: varlen (
cu_seqlens) support, as in moonvit.- Writeup: derive the online-softmax recurrence and explain the SRAM tiling.
- Start from the official Triton FlashAttention tutorial, then rebuild without looking.3
Project 3 — A fused kernel beating eager PyTorch, profiled
Goal. Pick a real fusion opportunity (e.g. fused RMSNorm, SwiGLU/GEGLU MLP, RoPE, fused dropout+residual+norm) and write it in Triton or CUDA to beat the eager PyTorch op sequence end-to-end.
Proves. You can find a bottleneck in a real model and remove it — the everyday loop of a performance engineer, framed by Horace He’s compute/bandwidth/overhead taxonomy.4
Spec / definition of done.
- Profile a small transformer, identify a memory-bound op sequence, state the hypothesis.
- Fuse it; validate numerics; benchmark the op and the end-to-end step.
- Show before/after Nsight traces; report the speedup and which regime (compute/bandwidth/overhead) you were in.
- Compare against
torch.compileon the same op — knowing when the compiler already wins is itself a hireable insight.4
Project 4 — DDP/FSDP training run with an honest MFU number
Goal. Train a small transformer (e.g. a nanoGPT-scale model) under DDP, then FSDP, on 2–8 GPUs (rent them). Report MFU and explain the gap to peak.
Proves. The distributed-training core: collectives, sharding, overlap, and the discipline of measuring MFU rather than asserting “it scales.” See 08-data-parallelism-and-collectives, 09-zero-and-fsdp.
Spec / definition of done.
- Single-GPU baseline, then DDP scaling curve (throughput vs. gpus, i.e. scaling efficiency).
- FSDP run with the memory accounting worked out (16 bytes/param, optimizer states) — show you can fit a model that doesn’t fit under DDP.
- Report MFU and a paragraph on where the loss is (comms not overlapped? small batch? dataloader-bound?).
- Bonus: a communication trace showing overlap of all-reduce with backward.
Project 5 — A mini paged-attention / KV-cache inference loop
Goal. Build a minimal decode loop with a paged KV cache and continuous batching for a small model — a “toy vLLM.”5
Proves. The inference core: KV-cache economics, memory fragmentation, batching dynamics, the latency/throughput tradeoff. See 12-llm-inference-systems.
Spec / definition of done.
- Block-based (paged) KV cache with a block allocator; show reduced fragmentation vs. a contiguous cache.
- Continuous batching: requests join/leave the batch mid-generation.
- Measure throughput (tok/s) and per-request latency vs. static batching, over a distribution of prompt/gen lengths.
- Writeup: why PagedAttention reduces waste, and where your toy diverges from real vLLM.
Project 6 — A real contribution to a real project
Goal. Land a merged PR in a production GPU/ML-systems project: a kernel, a perf fix, an op, a bug, or even docs/tests that required reading the internals.
Proves. The thing employers most want to see — that you operate in a real, reviewed codebase to their standards. This is the strongest single signal short of prior job experience.
Where to look (Sept 2026, all active). vLLM and SGLang (inference; lots of kernel + scheduler surface), Triton (
triton-lang/triton), PyTorch (ATen/inductor), Megatron-LM / TorchTitan (training), Liger-Kernel (Triton kernels for LLM training — a famously approachable first-PR target), and the GPU MODEreference-kernels/ KernelBot ecosystem.67Spec / definition of done.
- Start small: reproduce a bug, add a failing test, fix it. Or take a “good first issue.”
- Follow the project’s contribution guide, benchmarking conventions, and review etiquette.
- One good merged PR with a clean benchmark > ten drive-by typo fixes.
Package the portfolio as a story, not a pile
A single pinned GitHub profile with 4–6 of these, each with a results-first README, plus one blog post walking through your best result, is a complete cold-application package for a kernel/infra role. Recruiters and hiring managers pattern-match on exactly this.
6. The practice ladder & resources
Curated, roughly in the order you’d use them. Don’t read them all before starting — interleave reading with the projects above.
Foundations (read while doing Projects 1–2)
- PMPP, 4th ed. — Programming Massively Parallel Processors (Hwu, Kirk, Hajj, 2022). The canonical textbook; the GPU MODE lecture series is organized around it.8
- GPU MODE lectures (formerly CUDA MODE), by Mark Saroufim & Andreas Köpf — weekly recorded lectures + a very active Discord + a
resource-streamlink repo. The best single community for this path.6 - siboehm’s SGEMM worklog — the definitive step-by-step matmul optimization writeup + repo. Do it, don’t just read it.1
- Horace He, “Making Deep Learning Go Brrrr From First Principles” — the compute/bandwidth/overhead mental model that underlies all perf work.4
Hands-on practice (interleave)
- GPU Puzzles (Sasha Rush) — a Colab notebook of NUMBA-based CUDA puzzles from mapping to matmul; a few-hours on-ramp before real CUDA.9
- LeetGPU — “LeetCode for GPUs”: an in-browser CUDA/Triton practice platform with graded problems; good for drilling fundamentals.10
- Triton tutorials — the official
triton-langtutorials (vector add → fused softmax → matmul → FlashAttention); the fastest route to writing modern kernels.3
Reference & tooling (keep open constantly)
- CUDA C++ Programming Guide + CUDA Best Practices Guide — the primary source of truth.11
- Nsight Systems (timeline / whole-program) and Nsight Compute (per-kernel counters, roofline) — learn these early; profiling is the job.12
Papers (the systems canon)
- FlashAttention (and FA-2/3).2 · Megatron-LM tensor parallelism.13 · ZeRO.14 · vLLM / PagedAttention.5
Competitions & benchmarks (proof under pressure)
- GPU MODE Leaderboard / KernelBot — Discord-run kernel competitions with real prize pools (AMD and NVIDIA-sponsored problem sets, e.g. Blackwell NVFP4); the
reference-kernelsrepo holds the official problems. A leaderboard placement is a legible, dated signal.7 - KernelBench (Scaling Intelligence / Stanford) — a benchmark of PyTorch-op → CUDA generation across 4 difficulty levels; excellent as a source of well-specified kernel problems to attempt yourself, even though it targets LLMs.15
Rent the right GPU, and know which one
Your numbers are meaningless without the hardware context. Results differ across A100/H100/H200/Blackwell (and consumer 4090/5090). State the GPU in every benchmark. Rent by the hour (a single modern data-center GPU for a weekend is cheap relative to the signal it buys); for multi-GPU projects (4–6) rent an 8×GPU box briefly rather than owning anything.
7. Interview preparation
GPU/systems interviews are unusually concrete: they test whether you can reason about and manipulate real hardware, live. The rough anatomy:
| What they test | Representative question | How to prepare |
|---|---|---|
| CUDA fundamentals | ”Write a kernel that does X. What’s your launch config and why?” | Project 1 + GPU Puzzles + LeetGPU until launch config is reflex |
| Memory-hierarchy reasoning | ”This kernel is slow. Is it memory- or compute-bound? How do you know?” | Internalize 02-gpu-memory-hierarchy; practice predicting bound before profiling |
| Roofline / perf analysis | ”Given these FLOPs and bytes, what’s the ceiling? Where is this kernel?” | Do the roofline plots in Projects 1–3 by hand (03-performance-modeling-roofline) |
| Live kernel writing/optimizing | ”Optimize this matmul / softmax with me.” | The GEMM ladder from muscle memory — narrate each step’s bottleneck |
| Parallelism tradeoffs | ”You have model M on N GPUs — pick DP/TP/PP/EP and justify.” | Memory accounting + bubble/comm-volume math from 09-zero-and-fsdp, 10-model-parallelism |
| Debugging a slow kernel | ”Here’s an Nsight trace / a code snippet — why is it slow?” | See the self-check below; practice reading traces on your own projects |
| ML-systems design | ”Design a serving stack for a 70B model at p99 < X ms.” | 12-llm-inference-systems; reason out loud about KV cache, batching, TP, quantization |
The meta-skill: think out loud, quantify, name the bottleneck
Interviewers care less about the final number than about your diagnostic loop: form a hypothesis about the bottleneck → predict what the profiler would show → propose the fix → estimate the speedup. The projects train exactly this loop. If you can say “this is memory-bound at ~60% of HBM bandwidth, so tiling into SMEM should help but tensor cores won’t,” you’re demonstrating the job.
Self-check: Diagnose this slow kernel
A CUDA kernel computes
y[i] = a * x[i] + y[i](SAXPY) over 1e8 floats on an H100. You measure ~40% of peak HBM bandwidth and near-zero FLOP utilization. It’s “only” 40% of bandwidth — where’s the performance going, and what do you check first?Answer
SAXPY is purely memory-bound — arithmetic intensity is ~1 FLOP per ~12 bytes moved, so peak FLOP utilization should be near zero; that number is a red herring. The real question is why bandwidth is only 40%. First checks: (1) coalescing — is the access pattern contiguous per warp? (For plain
x[i]it should be; if there’s a stride or AoS layout, that alone explains it.) (2) Occupancy / launch config — too few blocks or a bad grid-stride can leave the memory system under-subscribed; you need enough in-flight warps to saturate HBM (memory-level parallelism). (3) Kernel-launch / measurement overhead — for a single pass over a large array, are you timing warm-up or including H2D transfer by mistake? The correct framing: on a memory-bound kernel the roofline ceiling is bandwidth, so the goal is to approach peak GB/s, and the diagnosis is “why aren’t we saturating HBM,” not “why aren’t we doing more FLOPs.” See 02-gpu-memory-hierarchy, 03-performance-modeling-roofline.
Self-check: Parallelism strategy under a memory constraint
You must train a 70B-parameter model in mixed precision, but each GPU has only enough memory for a fraction of it. You have a 64-GPU cluster with fast intra-node NVLink (8/node) and slower inter-node network. Sketch a parallelism plan and justify the placement.
Answer
Start with the memory accounting (~16 bytes/param for params+grads+Adam states in mixed precision → ~1.1 TB just for state, before activations), which immediately rules out plain DDP (09-zero-and-fsdp). A reasonable plan: tensor parallelism within a node (TP=8) to exploit NVLink for the bandwidth-heavy TP all-reduces, since TP is the most communication-intensive and must stay on the fast link (10-model-parallelism); then pipeline parallelism and/or FSDP/ZeRO across nodes where the network is slower and comms are less frequent. Add activation recompute to trade compute for memory, and consider FP8 for the GEMMs if on Hopper/Blackwell (11-sota-large-scale-training). The key reasoning move interviewers want: match each parallelism dimension’s communication pattern to the interconnect tier — bandwidth-bound comms on NVLink, latency-tolerant comms across the network — and back it with the pipeline-bubble and comm-volume math, not vibes.
8. How to break in
The market rewards visible, verifiable output. In rough order of signal strength:
- A merged PR in a project the lab uses or respects (vLLM, SGLang, Triton, PyTorch, Megatron/TorchTitan, Liger-Kernel). Nothing else says “can do the job in a real codebase” as directly.6
- A public kernel/benchmark that stands up to scrutiny — the GEMM ladder or Triton FlashAttention with honest numbers and a roofline. This is the cold-application workhorse.
- A competition placement — a GPU MODE / KernelBot leaderboard rank is dated, public, and adversarial.7
- A technical blog post / reproduction that teaches something — a worklog in the siboehm mold, or a from-scratch reproduction with a clear result. Writing well about performance is itself a differentiator, and it doubles as interview rehearsal.
- Being useful in the community — answering questions in the GPU MODE Discord, reviewing others’ kernels. This is how you get noticed and referred.
What actually signals hireability
Depth over breadth. One kernel taken to 90% of cuBLAS with a writeup that shows you understood why each step worked beats a dozen half-finished tutorials. Hiring managers are looking for evidence of the diagnostic loop (hypothesis → measure → fix → quantify) and taste (knowing what’s worth optimizing). Referrals matter a lot — the community route (contribute → get known → get referred) is often faster than the résumé route.
Don't fake the numbers, ever
Overstated benchmarks (cherry-picked sizes, no baseline, missing hardware, comparing your optimized kernel to a strawman) are worse than no benchmarks — a competent interviewer will catch it in minutes and it torpedoes trust. Report honestly, including where you didn’t beat the baseline. “I got to 85% of cuBLAS and here’s the 15% I couldn’t close” is a stronger signal than a suspicious 99%.
9. A concrete study plan
A phased path assuming ~10–15 focused hrs/week from a solid ML/software background. Compress or stretch to taste; the sequence matters more than the exact weeks.
timeline title GPU Engineer Study Plan (~6 months, part-time) Phase 1 — Foundations (wk 1-4) : Tier 1 lessons 01-03 : PMPP ch.1-5, GPU Puzzles : first CUDA kernels, learn Nsight Phase 2 — Kernels (wk 5-12) : Tier 2 lessons 04-07 : Project 1 (GEMM ladder) : Project 2 (Triton FlashAttention) : Project 3 (fused kernel) Phase 3 — Scale (wk 13-18) : Tier 3 lessons 08-11 : Project 4 (DDP/FSDP + MFU) : rent multi-GPU, measure scaling Phase 4 — Inference + break-in (wk 19-24) : Lesson 12 + Project 5 : Project 6 (real OSS PR) : blog post, competition, interview drills
Phase 1 — Foundations (weeks 1–4). Lessons 01-gpu-architecture-and-simt–03-performance-modeling-roofline; PMPP early chapters; GPU Puzzles for on-ramp; write your first CUDA kernels (04-first-cuda-kernels) and — critically — learn to run Nsight this phase, not later. Exit criterion: you can predict a kernel’s bound before running it.
Phase 2 — Kernels (weeks 5–12). Lessons 05–07. Ship Projects 1–3. This is the heart of the path and where your strongest portfolio pieces come from. Exit criterion: a GEMM at ≥85% cuBLAS and a numerically-correct Triton FlashAttention, both with writeups.
Phase 3 — Scale (weeks 13–18). Lessons 08–11; rent 2–8 GPUs and ship Project 4 with an honest MFU number. Exit criterion: a DDP→FSDP scaling curve you can explain.
Phase 4 — Inference + break-in (weeks 19–24). Lesson 12 + Project 5; land Project 6 (a real merged PR); write one blog post; do a competition round; run interview drills (§7) weekly. Exit criterion: pinned portfolio, one merged PR, one blog post, one competition entry — i.e. a complete application package.
Choose your specialization in Phase 3–4
By this point you’ll know which flavor (§3) you enjoy. Weight Projects 5–6 and your OSS target accordingly — kernel folks lean vLLM/SGLang/Triton kernels, infra folks lean Megatron/TorchTitan/FSDP, inference folks lean the serving stack. But keep all portfolio pieces; the core is shared and interviews probe across it.
The plan is a scaffold, not a treadmill
Six months is a reasonable full-part-time estimate, not a promise — some pieces take longer (warptiling alone ate four weekends for siboehm1). Optimize for shipped artifacts, not weeks elapsed. Better to spend eight weeks and produce one excellent, deeply-understood GEMM writeup than to rush all six projects into shallow, unbenchmarked repos.
10. What’s next
You’ve reached the end of the gpu-systems-for-llms curriculum. From here:
- Build the portfolio. The lessons are done; the projects in §5 are the actual work now. Start Project 1 this week.
- Go deeper on your flavor. Kernel folks: SASS-level tuning, CUTLASS/CuTe, and the frontier of FP8/FP4 and Blackwell MMA. Infra folks: the internals of a real training framework and cluster reliability at scale. Inference folks: speculative decoding, disaggregated prefill/decode, and structured-output serving.
- Track the frontier. New hardware (each generation shifts the roofline) and new systems papers land constantly — stay plugged into the GPU MODE community6 so your mental model of “SOTA” doesn’t go stale.
- Adjacent thread — RL systems. If post-training/RL infra interests you, the training↔inference seam explored in 10-frontier-and-infra is one of the hottest and least-crowded niches in 2026.
Capstone of the curriculum. Filed: 2026-09-02 | Parent: gpu-systems-for-llms
References
Footnotes
-
Simon Boehm, “How to Optimize a CUDA Matmul Kernel for cuBLAS-like Performance: a Worklog” (2022). https://siboehm.com/articles/22/CUDA-MMM — iteratively optimizes SGEMM from a naive kernel to ~94% of cuBLAS at FP32 via coalescing, SMEM caching, 1D/2D block+thread tiling, vectorized (
float4) loads, autotuning, and warptiling; code at https://github.com/siboehm/SGEMM_CUDA. Boehm reports the first 6 kernels (~2 weekends) reached ~80% of peak and autotuning+warptiling (~4 more weekends) reached ~94%.[established]↩ ↩2 ↩3 -
Dao et al., “FlashAttention: Fast and Memory-Efficient Exact Attention with IO-Awareness,” arXiv:2205.14135 (2022). https://arxiv.org/abs/2205.14135 — IO-aware tiled attention with online softmax; reference implementation and FA-2/FA-3 kernels at https://github.com/Dao-AILab/flash-attention.
[established]↩ ↩2 -
Triton language and official tutorials (OpenAI / triton-lang), https://triton-lang.org/main/getting-started/tutorials/ — progression from vector add → fused softmax → matmul → FlashAttention; repo https://github.com/triton-lang/triton.
[established]↩ ↩2 -
Horace He, “Making Deep Learning Go Brrrr From First Principles” (2022). https://horace.io/brrr_intro.html — frames performance as compute vs. memory-bandwidth vs. overhead bound, and argues optimization should start by identifying which regime you’re in.
[established]↩ ↩2 ↩3 -
Kwon et al., “Efficient Memory Management for Large Language Model Serving with PagedAttention,” arXiv:2309.06180 (2023). https://arxiv.org/abs/2309.06180 — PagedAttention / vLLM; block-based KV cache that reduces fragmentation and enables high-throughput serving.
[established]↩ ↩2 -
GPU MODE (formerly CUDA MODE), founded by Mark Saroufim and Andreas Köpf — weekly recorded GPU-programming lectures (https://www.gpumode.com/lectures, YouTube channel “GPU MODE”), an active Discord (https://discord.gg/gpumode; ~30k members), and a curated link repo
resource-stream(https://github.com/gpu-mode/resource-stream). The community is organized substantially around the PMPP textbook.[recent]↩ ↩2 ↩3 ↩4 -
GPU MODE
reference-kernelsrepository, https://github.com/gpu-mode/reference-kernels — official problem sets and reference kernels for the GPU MODE Leaderboard, run via “KernelBot” on Discord; hosts sponsored competitions (e.g. AMD kernel/distributed competitions with six/seven-figure prize pools, an NVIDIA Blackwell NVFP4 competition) and academic problem sets (PMPP practice, Stanford CS149, Princeton). Verified Sept 2026.[recent]↩ ↩2 ↩3 -
Wen-mei W. Hwu, David B. Kirk, Izzat El Hajj, Programming Massively Parallel Processors: A Hands-on Approach, 4th ed. (Morgan Kaufmann, 2022) — the canonical GPU-programming textbook; the GPU MODE lecture series follows its chapters.
[established]↩ -
Sasha Rush, “GPU Puzzles,” https://github.com/srush/GPU-Puzzles — a Colab notebook of NUMBA-based CUDA puzzles (map/zip → threads/blocks → shared memory → pooling/conv/matmul) as a few-hours on-ramp to GPU programming.
[established]↩ -
LeetGPU, https://leetgpu.com/ — an in-browser “GPU programming platform” offering graded CUDA/Triton practice problems (LeetCode-style) for drilling kernel fundamentals. Verified live Sept 2026; feature set beyond the tagline was not fully confirmed from the landing page.
[recent]↩ -
NVIDIA, CUDA C++ Programming Guide (https://docs.nvidia.com/cuda/cuda-c-programming-guide/) and CUDA C++ Best Practices Guide (https://docs.nvidia.com/cuda/cuda-c-best-practices-guide/) — primary reference for the CUDA execution and memory model.
[established]↩ -
NVIDIA Nsight Systems (whole-application timeline profiler, https://developer.nvidia.com/nsight-systems) and Nsight Compute (per-kernel counter/roofline profiler, https://developer.nvidia.com/nsight-compute) — the standard tools for GPU performance analysis.
[established]↩ -
Shoeybi et al., “Megatron-LM: Training Multi-Billion Parameter Language Models Using Model Parallelism,” arXiv:1909.08053 (2019). https://arxiv.org/abs/1909.08053 — the canonical tensor-parallelism formulation.
[established]↩ -
Rajbhandari et al., “ZeRO: Memory Optimizations Toward Training Trillion Parameter Models,” arXiv:1910.02054 (2019). https://arxiv.org/abs/1910.02054 — the sharded-optimizer-state accounting behind DeepSpeed/FSDP.
[established]↩ -
Ouyang, Guo, et al. (Scaling Intelligence Lab, Stanford), “KernelBench,” https://github.com/ScalingIntelligence/KernelBench — a benchmark of LLM-generated GPU kernels transpiling PyTorch ops to CUDA across 4 difficulty levels (single ops → fusion → full architectures → HuggingFace model optimization), scored by a “fast_p” correct-and-faster-than-threshold metric. Actively maintained as of 2026. Useful here as a source of well-specified kernel problems to attempt by hand.
[recent]↩