torch.compile 一行就能讓模型加速,但沒人告訴你背後發生了什麼。本系列用 30 天拆解 PyTorch 編譯器的三層架構:Dynamo 怎麼捕獲 Python、AOTAutograd 怎麼生成 backpropagation、Inductor 怎麼產出 GPU kernel。這個系列會直接深入原始碼、用簡單易懂的圖來幫助理解,把黑盒子打開給你看。讀完你會知道它什麼時候快、為什麼慢以及怎麼修。
前言 昨天把 fusion 的邊界走完了,Scheduler 手上是一串融合好的 node。接下來是產線的最後一站 codegen,把每一組 node 寫成 G...
前言 昨天看完 GPU 這條線,融好的 node 被寫成一份份 Triton kernel。codegen 是整條產線唯一分流的地方,前面的步驟全部共用,最後一...
前言 到昨天為止,GPU 的 Triton 和 CPU 的 C++ 兩條 codegen 都走完,整條產線看似完工。但有個問題一直沒問,同一個 op 常常不只一...
前言 昨天看了 autotune 怎麼幫一顆 kernel 海選出最快的寫法,答案很準,帳單也很驚人。不只 autotune,整條編譯流程都是拿啟動時間換執行速...
前言 昨天把快取講完,編譯的帳結清了,同一張圖第二次遇到直接撿現成的,Part 3 走完。今天起進入 Part 4,視角從「怎麼把 kernel 編快」換成「這...
前言 昨天的結尾留了一句「shape 要穩定」。不只 CUDA Graph 怕變動,整個 torch.compile 都建立在「這張圖的假設還成立」上。假設一塌...
前言 前面幾天修過 recompile,也繞開過 graph break,也就是 Dynamo 半路遇到吃不下的東西,把一張圖切成兩張。不過這些手法一直是碰到問...
前言 前幾天把診斷 torch.compile 的工具一件一件收進了工具箱,今天可以做一件更過癮的事,自己下場把 pipeline 的第三站接管過來。畫 pip...
前言 昨天自己接管了一次 backend,整條 torch.compile 流水線算是摸過一遍。不過有一個前提我們從來沒有挑戰過,所有事情都發生在 Python...
前言 30 天前,這個系列從一個很簡單的問題出發,一行 torch.compile 背後到底發生了什麼。它常被當成黑魔法,加上去就變快,卻很少人說得清快在哪、為...