blog

Day 20 - Symbolic Shapes: One Graph for Every Batch Size

2026-08-14

Day 19 - The Full Graph Break Machinery: Where It Splits, How It Reconnects

2026-08-12

Day 18 - PyCodegen: How Dynamo Writes New Bytecode Back to CPython

2026-08-10

Day 17 - OutputGraph: Gathering the Scattered Output Into One Graph

2026-08-10

Day 16 - SideEffects: How Mutating Python Passes Through a Pure Graph

2026-08-09

Day 15 - Guards: When a Compiled Result Can Be Reused

2026-08-08

Day 14 - VariableTracker and Source: Every Python Value Through Dynamo's Eyes

2026-08-06

Day 13 - The Symbolic Interpreter InstructionTranslator: One Handler Per Instruction

2026-08-05

Day 12 - What TorchDynamo Intercepts: CPython's Frame Eval Hook

2026-08-04

Day 11 - The Four Stages of torch.compile: What Happens Inside One Line

2026-07-24

Day 10 - The Map Unfolded: torch.compile, TVM, XLA, and TensorRT

2026-07-19

Day 9 - Quantization: Shrink the Bytes Themselves

2026-07-18

Day 8 - Dynamic Shapes: When Sizes Stop Holding Still

2026-07-17

Day 7 - Auto-tuning: Let the Machine Find the Schedule

2026-07-16

Day 6 - Loop Scheduling: Same Math, Different Speed

2026-07-15

Day 5 - Fusion in Depth: Vertical, Horizontal, and the Boundary

2026-07-14

Day 4 - Where to Aim: Arithmetic Intensity and the Roofline

2026-07-13

Day 3 - The Four Core Optimizations

2026-07-12

Day 2 - IR, Multi-Level Lowering, and Codegen

2026-07-11

Day 1 - Why Do We Need an ML Compiler?

2026-07-10

Open Source Journey - Apache Airflow Committer

2025-10-18