本文說明 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 自訂資源控制器,可管理動態切片。Slice 控制器會管理 Slice 自訂資源的生命週期,代表動態 Slice (處理建立、持續監控和刪除作業)。此外,它也會將基礎架構健康狀態資料 (主機、ICI、OCS) 傳播至節點標籤,協助識別健康的候選節點。
- 配量自訂資源:代表邏輯配量,並啟動節點間連結 (ICI 和 OCS) 的動態設定,以形成要求的 TPU 拓撲。這個程序會將多個子區塊縫合在一起 (超級切片),或在單一子區塊中隔離較小的拓撲 (子切片)。如要檢查動態切片形成進度或健康狀態,請檢查 Slice 自訂資源的狀態欄位。
需求條件
如要在 GKE 中使用動態切片,必須符合下列規定:
- 在下列其中一個版本中,使用搶鮮版通道的 Standard 叢集:
- 如要設定動態超級切片 (拓撲等於或大於
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 和 Topology Aware Scheduling (TAS),自動建立 Slice 自訂資源。如要開始使用,請參閱「使用 Kueue 和 TAS 排程動態切片」。