Skip to content

Google TPU 的設計特點

🤖 TPU 專用矩陣處理器架構與應用解析

TPU(Tensor Processing Unit)是 Google 為大規模模型訓練與推理設計的專用矩陣處理器。它結合了超大規模的脈動陣列(MXU)、高頻寬 HBM 記憶體與專用 ICI 互連技術,並搭配 XLA 編譯器(如 JAX/PyTorch XLA/TensorFlow)在雲端以「Pod→Slice→Multislice」的方式進行水平擴張。

TPU 在集群規模的吞吐量與能效方面表現優異,但相對於 GPU/CUDA 生態系,其生態與靈活性(特別是在處理動態形狀和即時編譯的體驗)較為薄弱。


🚀 設計特點(硬體與系統)

1. 核心處理器:矩陣引擎(MXU, Systolic Array)

  • 用途: TPU 以專為矩陣乘加設計的 MXU 為核心。

  • 規格:

    • v6e 的 MXU 為 $256 /times 256$

    • 早期版本(v2~v5)多為 $128 /times 128$

  • 精度: 乘法使用 bfloat16 輸入,並以 FP32 進行累加,以兼顧速度與數值穩定性。

2. 記憶體與頻寬:HBM 記憶體

版本 HBM 記憶體 頻寬 定位
v5e 16 GB HBM2 819 GB/s 高性價比
v5p 95 GB HBM2e 2.7 TB/s 超大規模訓練
v6e 32 GB HBM2e 1.5 TB/s 新一代高能效
  • 備註: 不同世代的 TPU 因其市場定位不同,配置差異很大。

3. 專用互連與拓撲(ICI)

  • v5p: 採用 3D torus 拓撲,單晶片互連頻寬達 4,800 Gb/s,適合超大集群通信。

  • v5e: 採用 2D torus 拓撲,1,600 Gb/s

  • v6e: 採用 2D torus 拓撲,3,200 Gb/s

  • 擴展: 可透過 Pod/Slice/Multislice 進行大規模橫向擴展。

4. 稀疏/嵌入加速:SparseCore

  • 功能:v4 開始提供的資料流處理器,專用於加速嵌入/稀疏工作負載(如推薦系統)。

  • 配置: v5p 每晶片 4 個;v6e 每晶片 2 個。

5. 資料中心級系統設計

  • v4 論文中提出使用光學電路交換(OCS)重構拓撲,相較於傳統 InfiniBand 具備更低成本與功耗,這是 TPU 在大規模訓練中保持優勢的核心系統創新。

💻 使用方式(軟體棧與開發者體驗)

1. 軟體棧與框架

  • 編譯器: TPU 主要由 OpenXLA 編譯器驅動。

  • 原生體驗: 最佳原生體驗為 JAX

  • 主流框架支援:

    • PyTorch: 需使用 PyTorch/XLA

    • TensorFlow: 亦受支援。

2. 部署與擴展單位

單位 描述 規模範例
Slice 同一 Pod 內的晶片集合。 v5p 單一 slice 最大支援 6,144 晶片
Multislice 跨 Slice 透過 DCN 連接。 v5p 可 Multislice 擴展至 18,432 晶片
  • v6e (Trillium): 標榜相對 v5e 具備 4.7× 推理/訓練效能1.9× 能效,提供更高效能。

  • 部署模式:TPU VM 模式為主(可直接 SSH 進入),亦可透過 GKEVertex AI 部署。

3. 推理生態

  • Google 提供 vLLM on TPU、JetStream 等解決方案,v6e 並提供官方 LLM 推理優化範例。

4. 開發注意事項(重點)

  • 形狀/動態: XLA 編譯器偏好靜態或有界動態形狀;過多形狀變化會觸發重編譯,嚴重影響效能。

  • 編譯/啟動開銷: 首次執行會遇到常見的 compile/warm-up 時間;務必善用快取與 profiling 工具(XProf、TensorBoard)進行調優。


✅ 優勢與 ❌ 侷限

✅ 優勢

  1. 大規模吞吐與能效: v5p 搭配 3D torus、高 ICI 頻寬與大量 HBM 適合超大模型預訓練;v6e 在推理/訓練提供最新一代的高效能與能效。

  2. 集群網路與系統工程: 系統級的創新(如 OCS、ICI/Pod)使 TPU 在數千~上萬晶片規模的全域通信(All-Reduce)上具備獨特優勢。

  3. 嵌入/稀疏工作負載加速: SparseCore 對大規模嵌入特別有效。

  4. 與 Google 雲服務整合: TPU VM/GKE/Vertex AI 的整合運維與排程,降低了超大規模作業的複雜性。

❌ 侷限與缺點

  1. 生態相對窄: 缺乏 GPU/CUDA 龐大的第三方庫與社群支援;所有 PyTorch 程式碼必須透過 PyTorch/XLA 運行,功能覆蓋與除錯體驗相對受限。

  2. 動態形狀/控制流: 高度動態的模型可能需要頻繁重編譯或程式碼重寫(如「有界動態形狀」或 padding),對研究型/原型階段的快速迭代不夠友善。

  3. JIT 編譯開銷: 首次或形狀變更後的 JIT 編譯可能耗時,需要暖機和持久化快取。

  4. 雲端綁定: TPU 主要在 GCP 上可用,部署在異地/多雲環境時需考慮資料與網路的搬遷成本。


💡 版本與選型建議(實務)

需求情境 建議版本 考量因素
大量預訓練(千億級參數、數千晶片同步) v5pv6e v5p 有高 ICI、超大 HBM、3D torus;v6e 則有更高單晶片效能。
高性價比訓練/推理(微調、批量推理) v6e (Trillium)v5e v6e 具備最新「每晶片效能/能效」;v5e 成本較敏感。
嵌入/推薦重負載 含 SparseCore 的世代(v5p/v6e) 充分利用 SparseCore 加速稀疏計算。

🛠️ 上手與調優要點(簡明清單)

  1. 固定或有界形狀: 事先規劃 batch/seq_len 等參數,必要時進行 padding,以減少重編譯。

  2. 使用 BF16 精度: 這是 TPU 在性能與精度之間的「甜蜜點」。

  3. 暖機 + 編譯快取: 首次執行前應先熱身,並善用 JAX/PyTorch XLA 的快取機制與 profiling 工具。

  4. 優化通訊/分片策略: 在 JAX 使用 pjit/pmap 或在 PyTorch/XLA 使用 SPMD/DistributedDataParallel,確保參數與激活的分佈能與 ICI 拓撲匹配。

  5. 推理路徑評估: 對於 LLM 推理,建議評估 vLLM on TPU(v6e) 或 JetStream 等方案,並在 GKE/Vertex 上實現一鍵擴展。


⚡️ TPU 世代設計改進與差異要點比較

概覽:每一世代的核心目標

TPU 世代 主要版本 核心設計目標
v5 v5e, v5p 集群規模極限 (v5p 3D torus, 大 HBM) 與 成本效益優化 (v5e)
v6 Trillium (v6e, v6p) 每晶片效率、能效飛躍(用於推理與訓練加速)
v7 (推測) 待定 提升生態靈活性優化記憶體架構下一代光學互連
v8 (推測) 待定 統一 AI/稀疏架構極致能耗比原生支援下一代模型架構

🔍 關鍵設計改進比較

設計特點 TPU v5 (v5p/v5e) TPU v6 (Trillium) TPU v7 (推測) TPU v8 (推測)
矩陣引擎 (MXU) / 算力 雙定位設計 (v5p: 極大 HBM;v5e: 高性價比)。 大幅提升: 相較 v5e,訓練/推理性能提升 4.7x。更高的時脈與運算密度。 持續擴大: 更高維度 MXU 或引入新運算單元。 統一化: 深度整合 MXU/Vector/Sparse 單元。
互連 (ICI) v5p: 3D Torus 拓撲,單晶片 4,800 Gb/s(極限擴展)。 v5e: 2D Torus。 v6e: 2D Torus,頻寬提升至 3,200 Gb/s。更精進的網路晶片。 下一代 ICI: 導入更高密度、更低延遲的光學互連或矽光子技術。 超大規模 Mesh: 專注於數十萬晶片的無損全域通信
能效比 較 v4 有改善。 飛躍提升: 相較 v5e,能效提升 1.9x 持續優化: 在製程與架構上實現新的能效標竿。 極致綠色運算: 針對 PUE 和運算密度進行極限優化。
記憶體 (HBM) v5p: 95 GB HBM2e (超大容量)。 v5e: 16 GB HBM2 (平衡)。 容量與頻寬增加: 總容量與頻寬相較前代有可觀提升。 HBM4/CXL: 可能採用新世代 HBM4 或引入 CXL 等技術擴展記憶體池。 分層記憶體架構: 處理兆級參數模型的統一記憶體和分層儲存。
稀疏處理 引入 SparseCore (v5p 4個/晶片)。 SparseCore 強化: 數量或功能進一步優化 (v6e 2個/晶片)。 稀疏計算單元 (SCU): 更通用且程式化的稀疏處理單元。 原生稀疏支援: 矩陣計算單元直接處理稀疏結構,無需獨立 Core。
軟體/靈活性 依賴 XLA 靜態編譯。 優化 XLA 動態性: 改善動態形狀的編譯與 JIT 開銷,提升開發體驗。 更強的運行時: 減少 XLA 對特定程式碼形狀的約束,更接近 GPU/CUDA 生態的靈活性。 原生動態支持: 運行時環境可高效處理模型結構和輸入的變化。

📈 主要差異點分析

1. 性能與能效的代際飛躍 (v5 $/rightarrow$ v6)

  • v5p 的設計哲學是追求集群規模的極限,特別適合需要數千晶片、高通信頻寬的超大模型預訓練

  • v6 (Trillium) 的重點是「每晶片效率」的巨大提升(4.7x 性能 / 1.9x 能效),這使得 v6 在推理訓練的總體成本效益上更有競爭力,特別是中小型集群。

2. 互連拓撲的演進

  • v5p3D Torus 是實現數千晶片同步訓練的頂級配置。

  • v6 開始,雖然可能仍使用 2D Torus 作為主要互連,但持續在單晶片頻寬、網路晶片密度光學組件上改進,目標是讓擴展到 Multislice (跨 Pod) 也能有接近單一 Slice 的高效能。

3. 對生態靈活性的關注 (v6 $/rightarrow$ v7/v8)

  • TPU 最大的限制是其對 XLA 靜態編譯的強依賴。

  • v6 已試圖優化這一點,而推測中的 v7/v8 將更積極地在硬體層面(例如,更靈活的記憶體存取、更通用的運算單元)和軟體運行時層面(例如,更快的 JIT、原生動態形狀處理)來縮小與 CUDA 生態的靈活性差距,使其能更好地支援複雜的研究模型和即時推理場景。


請問您對哪個特定世代的改進最感興趣?我可以為您詳細介紹 v6 (Trillium) 的已公開技術細節。