A curated resource list for learning GPU performance engineering and production inference.
The list is ordered from a single inference request to a single GPU, optimized kernels, inference engines, and distributed systems. Read Start here first. After that, use it as a reference.
The core list uses original papers, official specifications and documentation, creator repositories, and direct implementation work.
If you work on these problems, Wafer is hiring.
Contents
Start here: the minimum mental model
Read these in order if you are new to the field.
- How to Scale Your Model: Inference - One request from prefill through decode, with batching, KV memory, and parallelism.
- Attention Is All You Need - The transformer computation that the rest of the list optimizes.
- CUDA C++ basics - The shortest official introduction to the CUDA execution model.
- Programming Massively Parallel Processors - The main textbook for GPU programming, memory, and kernel design.
- Roofline: An Insightful Visual Performance Model - The compute, memory-bandwidth, and arithmetic-intensity model.
- Transformer Inference Arithmetic - FLOPs, parameter bytes, KV bytes, and communication for transformer inference.
- Efficiently Scaling Transformer Inference - Latency, memory, and parallelism costs for large-model inference.
- Etalon - TTFT, TPOT, goodput, and latency SLOs for generative-model serving.
For a practical companion, use the GPU Mode lectures.
1. GPU fundamentals
Programming model
- CUDA Programming Guide - The normative CUDA reference.
- CUDA programming model - Threads, warps, blocks, grids, and the memory hierarchy.
- CUDA C++ Best Practices Guide - Coalescing, shared memory, occupancy, synchronization, and optimization workflow.
- Hopper Tuning Guide - TMA, thread-block clusters, asynchronous execution, and Hopper-specific limits.
- Blackwell Tuning Guide - Tensor memory, Blackwell execution features, and architecture limits.
Compilation and machine code
2. Kernel optimization
Foundational kernel exercises
Matrix multiplication
Direct implementation work
Tensor cores and low precision
Attention
3. Programming models and profiling
Triton
CUTLASS, CuTe, and CUDA Tile
Other hardware stacks
Profiling, benchmarking, and correctness
4. Inference engines
Scheduling and continuous batching
- Orca - Iteration-level scheduling for autoregressive serving.
- PagedAttention and vLLM - Paged KV allocation and continuous batching.
- Sarathi-Serve - Chunked prefills that reduce interference with decode.
- SGLang - Prefix reuse, structured programs, and a serving runtime.
- vLLM, SGLang, and TensorRT-LLM - The main production engine implementations.
KV cache systems
- Grouped-Query Attention - Fewer key-value heads and a smaller KV cache.
- DeepSeek-V2 - Multi-head latent attention and compressed KV state.
- KIVI - KV quantization with separate treatment for keys and values.
- CacheGen - KV compression for transfer.
- Mooncake - A distributed KV cache and data plane.
Quantization
Speculative decoding
Structured decoding and fairness
Long context and multimodal inference
5. Distributed inference
Parallelism, collectives, and topology
Mixture-of-experts serving
- DeepSeek-V3 - Routed experts, shared experts, and the model-system design.
- DeepEP - Expert dispatch and combine kernels.
- EPLB - Expert placement and replication from measured load.
- MegaScale-Infer - Large-scale MoE inference and communication overlap.
Prefill and decode disaggregation
- DistServe - Separate prefill and decode workers optimized for goodput under latency constraints.
- Splitwise - Phase-specific allocation and scheduling.
- Mooncake - KV-centric disaggregated inference.
- NIXL - A transport layer for moving inference state across memory and network backends.
- Dynamo disaggregated serving - A current production implementation.
Production systems
- Clockwork - Predictable model serving through centralized scheduling.
- ServerlessLLM - Faster model startup and live migration.
- Gateway API Inference Extension - Model, accelerator, and KV-aware request routing.
- llm-d - Distributed routing, scheduling, and disaggregated serving on Kubernetes.
Serving benchmarks
- MLPerf Inference - Reproducible benchmark scenarios and load generation.
- Etalon - Goodput under per-request latency SLOs.
- ServeGen - Workload generation that preserves important production-trace properties.
- BurstGPT - A public trace for bursty LLM workloads.
- MLPerf Endpoints - An endpoint-level benchmark for interactive generative AI.
6. Current hardware
Read each architecture with its ISA or tuning guide. Vendor peak numbers are not performance measurements.
NVIDIA
AMD
Google TPU
AWS Trainium
Frontier
Verified on 2026-08-23. This section is kept separate from the core list because the evidence changes quickly.
AI-generated kernels
- KernelBench - The original benchmark for converting PyTorch operators into faster GPU kernels.
- KernelBench-Verified - Stronger correctness tests and baseline parity.
- SOL-ExecBench - Correctness and performance measured against a hardware speed-of-light model.
Watchlist
- NVIDIA Rubin and Rubin CPX, pending shipped systems and reproducible measurements.
- AMD MI400, CDNA 5, and Helios, pending architecture and ISA documents.
- Session-aware and agentic scheduling against public production traces.
- Real-time voice and video serving with complete quality and latency metrics.
- Inference ASICs, processing in memory, analog compute, and photonic compute with reproducible deployments.
- Individual AI kernel agents that have not been rerun on a hardened evaluator.
Source policy
A core source must be one of the following:
- the paper that introduced the mechanism;
- the specification or official documentation that defines it;
- the repository that implements it;
- a direct implementer report with code, measurements, and enough detail to reproduce the result.
Performance claims need the hardware, workload, precision, baseline, and correctness method. Otherwise the number is omitted.
See CONTRIBUTING.md before proposing a resource.
License
MIT
Maintainer
emilio@wafer.ai