When a compiled model returns a wrong answer, the error often appears far from the operation that caused it. This course teaches a systematic method for debugging compiled AI workloads: find the stage where a failure first appears, and separate logic errors from expected numerical differences. You will learn why familiar eager-debugging techniques become less reliable after graph capture, fusion, asynchronous execution, and compiler scheduling. An eight-layer model organizes failures from Python source down to hardware execution. You will use differential debugging against a trusted baseline to narrow the search. The course covers backend ablation, compiler IR, provenance, compile logs, kernel replay, and forward comparison across PyTorch/Inductor, JAX/XLA, and torch-spyre. You will also study failure modes that become especially important on statically planned architectures, including padding errors, scratchpad spills, host fallbacks, relayouts, and deadlocks. A worked example follows a real torch-spyre tensor-copy bug from symptom to root cause.
In the lab, you will diagnose three planted failures: an injected NaN, a recompile storm, and a silent numerical divergence.
For each one, you will name the layer, pick a comparison criterion and record the evidence. A 20-question graded quiz at the end covers every module of the course.