iT邦幫忙

鐵人檔案

2026 iThome 鐵人賽
回列表
AI Engineering

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

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

鐵人鍊成 | 共 30 篇文章 | 2 人訂閱 訂閱系列文 RSS系列文 |團隊源來適愛開緣
DAY 21

Day 21 | 一人一塊磚?讀懂 Inductor 生出來的 Triton Kernel

前言 昨天把 fusion 的邊界走完了,Scheduler 手上是一串融合好的 node。接下來是產線的最後一站 codegen,把每一組 node 寫成 G...

2026-09-06 ‧ 由 guan404ming 分享
DAY 22

Day 22 | Inductor Codegen 的 C++ 後端有三段變速?

前言 昨天看完 GPU 這條線,融好的 node 被寫成一份份 Triton kernel。codegen 是整條產線唯一分流的地方,前面的步驟全部共用,最後一...

2026-09-07 ‧ 由 guan404ming 分享
DAY 23

Day 23 | 讓碼表說話:Autotune 與 max-autotune

前言 到昨天為止,GPU 的 Triton 和 CPU 的 C++ 兩條 codegen 都走完,整條產線看似完工。但有個問題一直沒問,同一個 op 常常不只一...

2026-09-08 ‧ 由 guan404ming 分享
DAY 24

Day 24 | 編譯費能只付一次嗎?torch.compile 的置物櫃與鑰匙

前言 昨天看了 autotune 怎麼幫一顆 kernel 海選出最快的寫法,答案很準,帳單也很驚人。不只 autotune,整條編譯流程都是拿啟動時間換執行速...

2026-09-09 ‧ 由 guan404ming 分享
DAY 25

Day 25 | 把一整串 launch 錄成一次 replay:CUDA Graph 與 reduce-overhead

前言 昨天把快取講完,編譯的帳結清了,同一張圖第二次遇到直接撿現成的,Part 3 走完。今天起進入 Part 4,視角從「怎麼把 kernel 編快」換成「這...

2026-09-10 ‧ 由 guan404ming 分享
DAY 26

Day 26 | 怎麼會越跑越慢?Recompilation 爆炸的診斷與修法

前言 昨天的結尾留了一句「shape 要穩定」。不只 CUDA Graph 怕變動,整個 torch.compile 都建立在「這張圖的假設還成立」上。假設一塌...

2026-09-11 ‧ 由 guan404ming 分享
DAY 27

Day 27 | 病歷、X 光與手術刀:torch.compile 的除錯工具箱

前言 前面幾天修過 recompile,也繞開過 graph break,也就是 Dynamo 半路遇到吃不下的東西,把一張圖切成兩張。不過這些手法一直是碰到問...

2026-09-12 ‧ 由 guan404ming 分享
DAY 28

Day 28 | 第三站掛上自己的招牌:動手寫一個 backend

前言 前幾天把診斷 torch.compile 的工具一件一件收進了工具箱,今天可以做一件更過癮的事,自己下場把 pipeline 的第三站接管過來。畫 pip...

2026-09-13 ‧ 由 guan404ming 分享
DAY 29

Day 29 | 不帶 Python 也能跑嗎?torch.export 與 AOTInductor

前言 昨天自己接管了一次 backend,整條 torch.compile 流水線算是摸過一遍。不過有一個前提我們從來沒有挑戰過,所有事情都發生在 Python...

2026-09-14 ‧ 由 guan404ming 分享
DAY 30

Day 30 | 總結:什麼時候快、為什麼慢、怎麼修

前言 30 天前,這個系列從一個很簡單的問題出發,一行 torch.compile 背後到底發生了什麼。它常被當成黑魔法,加上去就變快,卻很少人說得清快在哪、為...

2026-09-15 ‧ 由 guan404ming 分享