metalworkingGitHub
/readme
The craft of making Apple Silicon GPUs go fast.

metalworking

A hyperlinked glossary of Apple Metal GPU performance: the machine, the Metal stack, MLX's architecture, the techniques, and real production kernels read line by line.

Who it's for: you know GPU fundamentals, say at the level of Modal's GPU Glossary, but you've never worked with Metal or MLX. This is the companion volume for the other hardware: every page opens with the CUDA equivalent where one exists, then spends its words on what's different here. Concepts Modal already covers well are linked, not re-taught.

How to read it: like a glossary or like a book. Every page stands alone and links to what it assumes, and every page ends with a Next link, so front to back also works. Front to back is a deliberate arc: what is this machine → how do you talk to it → what does the framework do on your behalf → why are fast kernels shaped this way → read five real ones → learn from the community's scars.

All code excerpts are quoted verbatim from pinned commits and permalink back to their exact lines, so you can always zoom out from a fragment to the full source. No setup is needed to read; ./fetch.sh (optional, ~240 MB) clones every referenced repo at its pinned commit for browsing beyond the excerpts.

The Machine

The M-series GPU, as a diff against the GPU you already know.

  • GPU Core - the SM analogue, and the numbers that differ
  • Simdgroup - the warp, renamed
  • Registers - ~208 KB per core, the real budget, and the 10× spill cliff
  • Threadgroup Memory - 32 KB; shared memory demoted to staging buffer
  • Unified Memory - no transfers, modest bandwidth, and the platform's one law
  • Occupancy - saturation at ~24 simdgroups, and occupancy as a currency
  • F16 - faster for stall and register reasons, not throughput reasons
  • Special Paths - the fast exp2; the emulated float atomics
  • AMX - the other matrix engine on the die
  • Neural Accelerators - the M5's real tensor unit, and what it changes

Metal, the Stack

What replaces the CUDA driver, runtime, nvcc, and PTX.

MLX

The framework layer, where CUDA-land has no single equivalent.

Techniques

Why fast kernels are shaped the way they are.

Kernels: the Case Studies

Real production code, quoted and read.

War Stories

What happened when real people fought the defaults.

Hands-on

The glossary is reading; if you want your hands on a keyboard: Metal-Puzzles (14 progressive MSL kernels, checked from Python) is the on-ramp, and m5-gemm runs the GEMM case studies' benchmarks on your own machine with nothing but Python installed.

Layout

glossary/    the six sections; start anywhere, or at the top
code/        fetched third-party repos (created by ./fetch.sh, gitignored, optional)
SOURCES.md   the full annotated source list: repos, blogs, papers, people to follow
fetch.sh     reproduces code/ at the exact pinned commits

Licensing

The glossary text and fetch.sh are MIT (LICENSE). Code excerpts are quoted from their original repositories under their own licenses (MIT and BSD-3-Clause throughout), verbatim, with attribution and a permalink at every quotation site. Full attribution in SOURCES.md.