When you're stuck, or curious

The lessons teach each idea once. These pages are for the second pass: reviewing before a lab, finding out why a test fails, looking up a word, or going further than the course does.

Stuck on a test or the lab

  1. Debugging your compilerRead a failure, shrink it, compare with the oracle, and the usual suspects each week
  2. 1Week 1 test guideEvery test: what it checks, and the bugs known to fail it
  3. 2Week 2 test guideMemory, ordering, bounds, and the render grader
  4. 3Week 3 test guideLoops, load placement, matmul and conv
  5. 4Week 4 test guideVectors, reduce, rangeify, size limits
  6. 5Week 5 test guideMovement ops at any rank

Reviewing a week

Each study guide has a one-page recap, a cheat sheet, the mistakes people make most, a step-by-step walk through the lab, and a self-check. The quiz review puts a week's quizzes on one page, or only the ones you missed.

  1. 0Week 0 study guideC, memory, IRs, tensors, matmul, Python or OCaml
  2. 1Week 1 study guideUOps, interpreting, rewrites, symbolic, call and param
  3. 2Week 2 study guideBuffers, versions, bounds, rendering C, the runtime
  4. 3Week 3 study guideRanges, memory in loops, matmul and conv by hand
  5. 4Week 4 study guideVectors, reduce, rangeify, materialization
  6. 5Week 5 study guideMovement ops and rangeifying them
  7. Quiz reviewAll of a week's quizzes, or only the ones you missed

Looking something up

  1. GlossaryEvery term in the course, in plain words, with the lesson that teaches it
  2. Python and OCaml, deeperIdioms, traps, profiling, testing, and reading for your language, week by week
Going deeper

Each study guide ends with readings (the tinygrad source the course follows, papers, and books) and challenge problems past what the tests require. For your language itself, see Python and OCaml, deeper.