iT邦幫忙

鐵人檔案

2026 iThome 鐵人賽
回列表
AI Engineering

一行 torch.compile 背後發生了什麼?30 天深度拆解 PyTorch 編譯器 系列

torch.compile 一行就能讓模型加速,但沒人告訴你背後發生了什麼。本系列用 30 天拆解 PyTorch 編譯器的三層架構:Dynamo 怎麼捕獲 Python、AOTAutograd 怎麼生成 backpropagation、Inductor 怎麼產出 GPU kernel。這個系列會直接深入原始碼、用簡單易懂的圖來幫助理解,把黑盒子打開給你看。讀完你會知道它什麼時候快、為什麼慢以及怎麼修。

參賽天數 22 天 | 共 22 篇文章 | 1 人訂閱 訂閱系列文 RSS系列文 團隊源來適愛開緣
DAY 11

Day 11 | TorchDynamo 的伸縮量尺 Symbolic Shapes

前言 在 Day 5 的時候我們說 Python int 被 bake 成常數是一場賭注,這個賭輸的代價則是 recompile,我們在那篇的結尾埋了一個伏筆:...

2026-08-27 ‧ 由 guan404ming 分享
DAY 12

Day 12 | torch.compile 的最強軍師:AOTAutograd

前言 Dynamo 的故事在昨天正式收尾,今天進入 pipeline 的第二站。先把問題攤開來。Dynamo 交出來的 FX Graph 只有 forward,...

2026-08-28 ‧ 由 guan404ming 分享
DAY 13

Day 13 | 讓 in-place 操作消失的潔癖書記官 Functionalization

前言 昨天說 AOTAutograd 拿 FakeTensor 重跑 forward、讓 autograd 引擎展開 backward 的路上,還順手做了兩層轉...

2026-08-29 ‧ 由 guan404ming 分享
DAY 14

Day 14 | Torch AOTAutograd 的樂高大師:Decomposition

前言 昨天 Functionalization 把圖變成了純函數式,但圖還是很大一塊的。一個 LayerNorm 節點背後頂著十幾個基本運算,一個 GELU 藏...

2026-08-30 ‧ 由 guan404ming 分享
DAY 15

Day 15 | 財產到底應該歸誰?Torch AOTAutograd min-cut 分家公證人

前言 還記得前面留下的小小懸案嗎?那時候我們看到 forward 圖除了 loss 之外,還多輸出了 le 和 permute 這兩個中間值給 backward...

2026-08-31 ‧ 由 guan404ming 分享
DAY 16

Day 16 | 沒有數值要怎麼 trace?空殼替身 FakeTensor

前言 昨天 min-cut partitioner 把 joint graph 一刀切成 forward 和 backward,AOTAutograd 這一站算...

2026-09-01 ‧ 由 guan404ming 分享
DAY 17

Day 17 | torch.compile 的程式碼鑄造廠:TorchInductor

前言 昨天用 FakeTensor 把「不碰真資料也能知道每個 node 的 shape 與 dtype」這件事講完,Part 2 的 AOTAutograd...

2026-09-02 ‧ 由 guan404ming 分享
DAY 18

Day 18 | Loop-level IR 不是樹,而是函式

前言 昨天總覽了 Inductor 的 pipeline,從接下 ATen 圖到吐出 kernel,中間要經過 lowering、scheduling、code...

2026-09-03 ‧ 由 guan404ming 分享
DAY 19

Day 19 | 誰跟誰可以坐同桌?TorchInductor 的排座位大師 Scheduler

前言 昨天 Lowering 把 FX Graph 翻成了 loop-level IR,每個 node 都知道「自己的第 i 格怎麼算」。但 IR 就緒後還缺兩...

2026-09-04 ‧ 由 guan404ming 分享
DAY 20

Day 20 | 磁鐵與牆:Inductor Fusion 的邊界

前言 昨天看了 Scheduler 怎麼把 buffer 排成一列 node、算好依賴,一輪一輪兩兩配對合併,回答的是「誰跟誰有機會配對」,今天要回答的是「憑什...

2026-09-05 ‧ 由 guan404ming 分享