本文說明 Google Kubernetes Engine (GKE) 中 Cloud TPU 的動態配量功能。動態配量會將 TPU 佈建與工作負載 TPU 配量需求分開,藉此提升 TPU 效率和彈性。動態配量可將工作負載啟動時間縮短多達五倍,復原時間縮短多達 4.5 倍,進而提高 TPU 資源使用率。
動態配量適用於機器學習 (ML) 工程師和平台工程師,可提高 TPU 使用率、縮短佈建時間,並提升大規模訓練和推論工作負載的容錯能力。
閱讀本文前,請先熟悉下列概念:
- GKE 中的 TPU。
- TPU All Capacity 模式總覽。動態配量功能僅適用於使用「所有容量」模式的 TPU。
什麼是動態配量?
動態配量是 GKE TPU 最佳化功能,可在排定工作負載時,將實體和靜態 TPU 硬體佈建與執行階段的 TPU 配量分配作業分離。
使用靜態 TPU 拓撲時,GKE 節點集區會繫結至您在建立時設定的特定拓撲。由於這項限制,如果靜態集區中的任何節點故障,整個節點集區都會受到影響。工作負載拓撲也必須與節點集區 TPU 拓撲完全相符,才能排定,因此可能需要經常為不同工作負載重新佈建 TPU 基礎架構。
動態配量可讓 GKE 在排定工作負載時,於執行階段設定 TPU 配量。您不必手動建立節點集區,並為每項新工作負載設定所需的 TPU 拓撲,而是預先將整個 TPU 運算資源,佈建至精細、固定大小的節點集區。如果是 Ironwood (TPU7x),每個節點集區都包含 4x4x4 拓撲,也稱為子區塊。子區塊代表由 16 個節點組成的 TPU VM 群組,沒有有效的晶片間互連 (ICI) 拓撲網格。在執行階段排定工作負載時,GKE 動態配量會重新設定 TPU 網路互連,將多個節點集區拼接成所需的大型 TPU 配量,或細分節點集區,形成較小的 TPU 配量。這項重新設定作業會在幾秒內,建立工作負載要求的精確多維拓撲。
動態配量的優點
在 GKE 中實作動態 TPU 架構具有下列優點:
- 加快工作負載復原速度:如果發生實體硬體故障,GKE 會將問題隔離至單一分區。GKE 切片控制器會自動重塑使用中的切片,並重新設定網路,以健康的備用分區取代故障分區。與重新建立整個節點集區相比,這個程序可將復原能力或平均復原時間 (MTTR) 提升多達 4.5 倍。
- 加速工作啟動:工作負載切片可動態形成,與建立靜態節點集區相比,工作啟動延遲時間最多可縮短五倍。
- 故障隔離:硬體故障會隔離在發生故障的特定分區,這種隔離機制有助於保護叢集中的其他並行工作,避免發生連鎖故障。
- 充分運用資源:動態配量可避免容量閒置或使用率偏低。配量會根據工作負載需求設定,因此動態配量有助於盡可能提高機群使用率,並減少閒置硬體。
- 宣告式自動調度管理:動態配量會使用 Kubernetes 原生自訂資源和註解,例如
JobSet和 Kueue。這種方法會自動管理低階網路和硬體自動化調度管理。
動態配量設定
動態配量提供下列設定:
動態超級切片:在排定工作負載時,結合多個實體上獨立、預先佈建的 TPU 節點集區,形成單一虛擬切片。舉例來說,您可以合併兩個
4x4x4節點集區,形成4x4x8拓撲。這項功能可讓您建立等於或大於4x4x4拓撲的配量。這項設定需要 1.35.2-gke.1842000 以上版本。您可以使用動態超級切片,訓練超出單一實體硬體區塊容量的大型基礎模型。切片控制器會協調光學電路交換 (OCS) 網路架構中的實體重新設定。GKE 會動態重新設定 OCS,將晶片間互連 (ICI) 網路擴展至獨立硬體機架。從工作負載的角度來看,合併的子區塊會以單一環形網格的形式運作。在環形網格中,連線會環繞。右側邊緣的籌碼會直接連回左側邊緣的籌碼,頂端則會連到底部。如果將這種排列方式視覺化,會形成環面 (環形)。
動態子切片:在工作負載層級,將預先佈建的單一 TPU 節點集區分割成多個較小的獨立單位。動態子切片可讓您在單一子區塊中建立較小的拓撲,具體來說是
2x2x1、2x2x2、2x2x4和2x4x4。舉例來說,您可以將4x4x4子區塊分割為一個2x2x4子切片和兩個2x2x2子切片。這項設定需要搶鮮版 1.36.0-gke.3712000 以上版本。有了動態子切片,您就能在單一實體節點集區中執行多個工作負載。舉例來說,您可以同時執行微調、實驗和線上推論。子切片可提供電氣和網路隔離,有助於隔離工作負載之間的故障或效能影響。
動態配量設定的主要特性
動態配量設定具有下列特性:
- 節點集區的增量佈建:動態配量採用增量佈建,這是節點集區的容錯佈建模式。這個模型會將所有 TPU 運算資源轉換為節點集區,其中包含由 16 個節點組成的 Ironwood (TPU7x) VM 群組,讓您能繼續佈建及使用部分健康狀態不佳的 Cube。
- 配量控制器:在 GKE 控制層中執行的 Kubernetes 自訂資源控制器,可管理動態配量。配量控制器會管理配量自訂資源的生命週期,代表動態配量 (處理建立、持續監控和刪除作業)。此外,也會將基礎架構健康狀態資料 (主機、ICI、OCS) 傳播至節點標籤,協助找出健康的候選節點。
- 配量自訂資源:代表邏輯配量,並啟動節點間連結 (ICI 和 OCS) 的動態設定,形成要求的 TPU 拓撲。這項程序會將多個子區塊拼接在一起 (超級切片),或在單一子區塊中隔離較小的拓撲 (子切片)。您可以檢查 Slice 自訂資源的狀態欄位,查看動態配量建立進度或健康狀態。
需求條件
如要在 GKE 使用動態配量,必須符合下列條件:
- 在快速版本中使用下列其中一個版本的標準叢集:
- 如要使用動態超級切片設定 (拓撲等於或大於
4x4x4),請使用 1.35.2-gke.1842000 以上版本。 - 如要動態設定子切片 (拓撲小於
4x4x4),請使用 1.36.0-gke.3712000 以上版本。
- 如要使用動態超級切片設定 (拓撲等於或大於
- 使用 Ironwood (TPU7x) 版本。
- 為節點使用 Container-Optimized OS 映像檔。
- 如要使用增量佈建,請使用所有容量模式預留項目。所有容量模式都是 TPU Cluster Director 啟用的功能。
- 如要使用動態子切片,請確認節點有待處理的維護事件。監控執行個體,查看是否有待處理的維護事件。如果任何節點有待處理的維護事件,且結束時間介於 2026 年 9 月 18 日至 2026 年 9 月 30 日之間,您必須先手動觸發這些節點的主機維護事件,才能使用子切片。
使用排程器進行動態配量
如要使用動態配量,請選擇下列任一選項:
- 使用自己的排程器管理 Slice 自訂資源。如果您有複雜的排程需求,或想將動態配量與現有排程基礎架構整合,這個選項就很實用。如要開始使用,請參閱「搭配自訂排程器使用動態配量」。
- 使用排程器自動建立 Slice 自訂資源。您可以設定 Kueue 和拓撲感知排程 (TAS),自動建立 Slice 自訂資源。如要開始使用,請參閱「使用 Kueue 和 TAS 排定動態配量」。
後續步驟
- 在「All Capacity」(所有資源) 模式中要求 TPU 資源。
- 使用 Kueue 和 TAS 排定動態配量。
- 搭配使用動態配量和自訂排程器。
- 在 Cluster Toolkit 中使用動態配量部署 Cloud TPU 工作負載。