Google 與 Meta 發表 TorchTPU,可在 TPU 上原生執行 PyTorch
該團隊表示,這個開源後端於 2025 年年中由 Google 與 Meta 的 PyTorch 團隊共同啟動,目前已被部分最大的 Google Cloud 客戶用於正式環境。
AI 插圖Google 與 Meta 推出了 TorchTPU,這是一個開源後端,可讓 PyTorch 在 Google 的 TPU 晶片上原生執行。專案團隊表示,該專案於 2025 年年中在 Google 啟動,與 Meta 的 PyTorch 團隊合作,目前仍在積極開發中。
根據該團隊的說明,部分最大的 Google Cloud 客戶已將 TorchTPU 用於推論與訓練工作負載的正式環境。團隊指出,TPU 過去一直與 TensorFlow 和 JAX 生態系綁定。
團隊稱 TorchTPU 與先前的嘗試截然不同。Google 曾在 2020 年發布 PyTorch/XLA,這是以 Lazy Tensors 為基礎、首個針對 TPU 的 PyTorch 編譯版本。團隊表示,該整合需要對原始碼進行侵入式修改,編譯延遲嚴重,不支援 PyTorch 的即時執行模式,並且在較新的分散式運算功能上落後。相較之下,TorchTPU 將即時執行視為首要任務,其執行階段不依賴 JAX。
其既定目標是,將工作負載遷移到 TPU 時,只需在程式碼中把目標裝置從 GPU 切換為 TPU 即可。團隊提醒,僅做這樣的更改並無法發揮 TPU 的峰值效能,因為模型的形狀、分片和運算可能是針對 GPU 調校的,但模型仍應能開箱即用。
團隊表示,到目前為止,該專案已經:
- 新增對即時模式與編譯模式的支援,包括名為 DeferAndFuse 的全新即時模式;
- 新增對約 450 個 ATen 運算的支援;
- 支援透過 JAX/Pallas 與 Helion DSL 撰寫的自訂核心;
- 在下載量最高的 5,000 個 Hugging Face 模型上驗證了開箱即用的執行;
- 驗證了與 vLLM、SGLang、TorchTitan、Ray 和 TorchRec 的整合。
團隊也列出了一些限制。一個 TPU 裝置只能被一個使用者空間行程存取,因此無法開箱即用地支援強化學習協同部署,團隊表示正在研究解決辦法。由於底層編譯器與執行階段假設張量形狀在編譯時已知,團隊也正在加入對有界動態性的支援。
在精度方面,TorchTPU 預設採用中等模式,以 bfloat16 進行乘法運算,以 FP32 進行累加。更高的模式可恢復更多 FP32 精度,但運算成本約為 3 倍或約 6 倍,團隊建議大多數深度學習工作負載使用預設模式。