在 GKE 中規劃 TPU


本頁說明如何在 Google Kubernetes Engine (GKE) 中規劃 Tensor 處理單元 (TPU) 用量,以降低 TPU 設定錯誤、無法使用錯誤或超出配額中斷的風險。

在 GKE 中使用 TPU 之前,請務必先熟悉 GKE 中的 TPU 定義和術語

規劃 TPU 設定

如要在 GKE 叢集中使用 TPU,您必須規劃 TPU 的設定。建議您按照下列步驟操作:

  1. 選擇 GKE 作業模式:在 GKE Autopilot 或 Standard 叢集中的 TPU 上執行工作負載。

    最佳做法

    使用 Autopilot 叢集,享受全代管 Kubernetes 體驗。

  2. 選擇 TPU 版本:不同 TPU 類型的功能各異,例如價格效能比、訓練輸送量和服務延遲時間。TPU 類型會影響可用的 CPU 和記憶體容量。

  3. 驗證 TPU 可用性:TPU 僅適用於特定 Google Cloud地區。如要在 GKE 工作負載中使用 TPU 類型,叢集必須位於該類型支援的區域。

  4. 選擇 TPU 拓撲:TPU 配量中 TPU 的實體排列方式。選取符合模型平行處理需求的拓撲。

請使用本頁面的參考表格,判斷節點集區是單一主機還是多主機 TPU 節點。

選擇 GKE 作業模式

您可以在叢集的可用 GKE 作業模式中使用 TPU:

  • Autopilot 模式 (建議):GKE 會管理底層基礎架構,例如節點設定、自動調度資源、自動升級、基準安全性設定和基準網路設定。在 Autopilot 中,您可以選擇 TPU 類型和拓撲,然後在 Kubernetes 資訊清單中指定這些項目。GKE 會管理節點的佈建作業 (包括 TPU),並排程工作負載。
  • 標準模式:您需要管理底層基礎架構,包括設定個別節點。

如要為工作負載選擇最合適的 GKE 作業模式,請參閱「選擇 GKE 作業模式」。

選擇 TPU 版本

TPU 節點中的 VM 具有下列技術特性。

Autopilot

TPU 版本 機型 vCPU 數量 記憶體 (GiB) NUMA 節點數量 TPU 配量節點中的 TPU 晶片數量上限
TPU Trillium (v6e) tpu-v6e-slice 44 到 180 176 至 1440 1 至 2 256
TPU v5p
tpu-v5p-slice 208 448 2 6,144
TPU v5e
tpu-v5-lite-podslice 24 到 224 48 至 384 1 256
TPU v4
tpu-v4-podslice 240 407 2 4,096
TPU v3 (僅限單一主機)
tpu-v3-device 96 340 2 8
TPU v3
tpu-v3-slice 48 340 1 256

標準

TPU 版本 機型 vCPU 數量 記憶體 (GiB) NUMA 節點數量 遭到搶占的機率
TPU Trillium (v6e) ct6e-standard-1t 44 448 2 較高
TPU Trillium (v6e) ct6e-standard-4t 180 720 1
TPU Trillium (v6e) ct6e-standard-8t 180 1440 2 較低
TPU v5p
ct5p-hightpu-4t 208 448 2
TPU v5e
ct5lp-hightpu-1t 24 48 1 較高
TPU v5e
ct5lp-hightpu-4t 112 192 1
TPU v5e
ct5lp-hightpu-8t 224 384 1
TPU v4
ct4p-hightpu-4t 240 407 2
TPU v3 (僅限單一主機)
ct3-hightpu-4t 96 340 2
TPU v3
ct3p-hightpu-4t 48 340 1

多主機 ct5lp- 機器類型更適合用於提供大型模型或訓練。多主機 ct5lp- 機器會透過高速連結相互連線。

請參閱 Cloud TPU 定價說明文件中的 TPU 規格和價格,決定要使用的 TPU 設定。

限制

選擇要使用的 TPU 時,請考量下列限制:

  • TPU Trillium 提供下列版本:
    • 1.31.1-gke.1846000 以上版本的標準叢集。
    • 1.31.2-gke.1115000 以上版本的 Autopilot 叢集。
  • TPU Trillium 不支援在 ct6e-standard-8t 上將 SMT 設為 2
  • GKE 費用分配和用量計算功能不會納入預留 TPU v4 的用量或費用資料。
  • 如要在 GKE 叢集上使用 TPU v5p 自動調整功能,控制層至少須為 1.29.2-gke.1035000 或 1.28.7-gke.1020000 版。
  • 如為容量預留項目,請使用特定預留項目。
  • 單一 TPU VM 最多可執行 256 個 Pod。
  • GKE 費用分配和用量計算功能不會納入任何 TPU 的用量或費用資料。
  • 如果 TPU 節點集區的擴充作業等待時間超過 10 小時,叢集自動配置器就會取消作業。資源可用時,叢集自動配置器會重試這類擴充作業。如果您未使用預訂功能,這項行為可能會降低 TPU 取得率。
  • 不支援 Ubuntu 節點。
  • TPU 節點架構已淘汰。TPU v3 是唯一仍支援 GKE 中 TPU 節點架構的 TPU 版本。

驗證 GKE 中的 TPU 可用性

TPU 僅於特定 Google Cloud 地區提供。如要在 GKE 叢集中使用 TPU 類型,叢集必須位於該類型支援的區域。

Autopilot

TPU 版本 cloud.google.com/gke-tpu-accelerator 最低 GKE 版本 可用性 可用區
TPU Trillium (v6e) tpu-v6e-slice 1.31.2-gke.1384000 正式發布版
  • asia-northeast1-b
  • europe-west4-a
  • us-central1-b
  • us-east1-d
  • us-east5-a
  • us-east5-b
  • southamerica-west1-a
TPU v5e tpu-v5-lite-podslice 1.27.2-gke.2100 正式發布版
  • europe-west4-b
  • us-central1-a
  • us-south1-a
  • us-west1-c
  • us-west4-a
TPU v5p tpu-v5p-slice 1.28.3-gke.1024000 正式發布版
  • europe-west4-b
  • us-central1-a
  • us-east5-a
TPU v4 tpu-v4-podslice 1.26.1-gke.1500 正式發布版
  • us-central2-b
TPU v3 tpu-v3-slice 1.31.1-gke.1146000 正式發布版
  • us-central1-a
  • us-central1-b
  • europe-west4-a
TPU v3 tpu-v3-device 1.31.0-gke.1500 正式發布版
  • us-central1-a
  • us-central1-b
  • europe-west4-a

標準

TPU 版本 機器類型開頭為 最低 GKE 版本 可用性 可用區
TPU Trillium (v6e) ct6e- 1.31.2-gke.1115000 正式發布版
  • asia-northeast1-b
  • europe-west4-a
  • us-central1-b
  • us-east1-d
  • us-east5-a
  • us-east5-b
  • southamerica-west1-a
TPU v5e ct5lp- 1.27.2-gke.2100 正式發布版
  • europe-west4-b
  • us-central1-a
  • us-south1-a
  • us-west1-c
  • us-west4-a
TPU v5p ct5p- 1.28.3-gke.1024000 正式發布版
  • europe-west4-b
  • us-central1-a
  • us-east5-a
TPU v4 ct4p- 1.26.1-gke.1500 正式發布版
  • us-central2-b
TPU v3 ct3p- 1.31.1-gke.1146000 正式發布版
  • us-central1-a
  • us-central1-b
  • europe-west4-a
TPU v3 ct3- 1.31.0-gke.1500 正式發布版
  • us-central1-a
  • us-central1-b
  • europe-west4-a
設定 TPU 時,請注意下列事項:
  • 您可以在特定區域 (europe-west4-aus-east5-bus-west4-b) 中,使用開頭為 ct5lp- 的機器類型,建立單一主機 TPU v5e 節點集區。在這些區域中,您可以使用 ct5lp-hightpu-4t,拓撲至少為 2x4 或更大。
  • 如要在 us-west4 區域中建立單一主機 TPU v5e,請選擇 us-west4-a 區域,並使用以 ct5lp- 開頭的機器類型,例如 ct5lp-hightpu-1t

選擇拓撲

決定 TPU 版本後,請選取該 TPU 類型支援的拓撲。拓撲為二維或三維,取決於 TPU 類型。模型的平行處理需求有助於決定拓撲。如要找出切片中的 TPU 晶片數量,請計算拓撲中每個大小的乘積。例如:

  • 2x2x2 是 8 晶片多主機 TPU v4 配量
  • 2x2 是 4 晶片的單一主機 TPU v5e 配量

如果特定拓撲同時支援單一主機和多主機 TPU 配量節點,工作負載要求的 TPU 晶片數量會決定主機類型。

舉例來說,TPU v5e (tpu-v5-lite-podslice) 支援單一和多主機的 2x4 拓撲。如果您:

  • 在工作負載中要求 4 個晶片,您會取得具有 4 個 TPU 晶片的多主機節點。
  • 在工作負載中要求 8 個晶片,您會取得具有 8 個 TPU 晶片的單一主機節點。

請參閱下表,為您的用途選擇 TPU 機器類型和拓撲:

  • 如要進行小規模模型訓練或推論,請使用 TPU v4 或 TPU v5e,並搭配單一主機 TPU 切片節點集區。
  • 如要進行大規模模型訓練或推論,請使用 TPU v4 或 TPU v5e,搭配多主機 TPU 配量節點集區。
  • 如要進行大規模訓練或推論,請使用 Pathways。Pathways 可讓單一 JAX 用戶端協調多個大型 TPU 配量的工作負載,簡化大規模機器學習運算。詳情請參閱「路徑」。

Autopilot

選擇 TPU 類型和拓撲後,請在工作負載資訊清單中指定這些項目。如需操作說明,請參閱「在 GKE Autopilot 上部署 TPU 工作負載」。

TPU 版本 機型 節點集區類型 技術規格
TPU Trillium (v6e) tpu-v6e-slice 單一主機
  • 拓撲:1x1
  • TPU 晶片數量:1
  • VM 數量:1
TPU Trillium (v6e) tpu-v6e-slice 單一主機
  • 拓撲:2x2
  • TPU 晶片數量:4
  • VM 數量:4
TPU Trillium (v6e) tpu-v6e-slice 單一主機
  • 拓撲:2x4
  • TPU 晶片數量:8 個
  • VM 數量:8
TPU Trillium (v6e) tpu-v6e-slice 多主機
  • 拓撲:4x4
  • TPU 晶片數量:16
  • VM 數量:4
TPU Trillium (v6e) tpu-v6e-slice 多主機
  • 拓撲:4x8
  • TPU 晶片數量:32
  • VM 數量:8
TPU Trillium (v6e) tpu-v6e-slice 多主機
  • 拓撲:8x8
  • TPU 晶片數量:64
  • VM 數量:16
TPU Trillium (v6e) tpu-v6e-slice 多主機
  • 拓撲:8x16
  • TPU 晶片數量:128 個
  • VM 數量:32
TPU Trillium (v6e) tpu-v6e-slice 多主機
  • 拓撲:16x16
  • TPU 晶片數量:256
  • VM 數量:64
TPU v5p tpu-v5p-slice 單一主機
  • 拓撲:2x2x1
  • TPU 晶片數量:4
  • VM 數量:1
TPU v5p tpu-v5p-slice 多主機
  • 拓撲:2x2x2
  • TPU 晶片數量:8 個
  • VM 數量:2
TPU v5p tpu-v5p-slice 多主機
  • 拓撲:2x2x4
  • TPU 晶片數量:16
  • VM 數量:4
TPU v5p tpu-v5p-slice 多主機
  • 拓撲:2x4x4
  • TPU 晶片數量:32
  • VM 數量:8
TPU v5p tpu-v5p-slice 多主機
  • 拓撲:4x4x4
  • TPU 晶片數量:64
  • VM 數量:16
TPU v5p tpu-v5p-slice 多主機
  • 拓撲:{A}x{B}x{C}
  • TPU 晶片數量:{A}*{B}*{C}
  • VM 數量:(A*B*C/4)1
TPU v5e tpu-v5-lite-podslice 單一主機
  • 拓撲:1x1
  • TPU 晶片數量:1
  • VM 數量:1
TPU v5e tpu-v5-lite-podslice 單一主機
  • 拓撲:2x2
  • TPU 晶片數量:4
  • VM 數量:1
TPU v5e tpu-v5-lite-podslice 單一主機
  • 拓撲:2x4
  • TPU 晶片數量:8 個
  • VM 數量:1
TPU v5e tpu-v5-lite-podslice 多主機
  • 拓撲:2x4
  • TPU 晶片數量:8 個
  • VM 數量:2
TPU v5e tpu-v5-lite-podslice 多主機
  • 拓撲:4x4
  • TPU 晶片數量:16
  • VM 數量:4
TPU v5e tpu-v5-lite-podslice 多主機
  • 拓撲:4x8
  • TPU 晶片數量:32
  • VM 數量:8
TPU v5e tpu-v5-lite-podslice 多主機
  • 拓撲:8x8
  • TPU 晶片數量:64
  • VM 數量:16
TPU v5e tpu-v5-lite-podslice 多主機
  • 拓撲:8x16
  • TPU 晶片數量:128 個
  • VM 數量:32
TPU v5e tpu-v5-lite-podslice 多主機
  • 拓撲:16x16
  • TPU 晶片數量:256
  • VM 數量:64
TPU v5e (僅限單一主機) tpu-v5-lite-device 單一主機
  • 拓撲:1x1
  • TPU 晶片數量:1
  • VM 數量:1
TPU v5e (僅限單一主機) tpu-v5-lite-device 單一主機
  • 拓撲:2x2
  • TPU 晶片數量:4
  • VM 數量:1
TPU v5e (僅限單一主機) tpu-v5-lite-device 單一主機
  • 拓撲:2x4
  • TPU 晶片數量:8 個
  • VM 數量:1
TPU v4 tpu-v4-podslice 單一主機
  • 拓撲:2x2x1
  • TPU 晶片數量:4
  • VM 數量:1
TPU v4 tpu-v4-podslice 多主機
  • 拓撲:2x2x2
  • TPU 晶片數量:8 個
  • VM 數量:2
TPU v4 tpu-v4-podslice 多主機
  • 拓撲:2x2x4
  • TPU 晶片數量:16
  • VM 數量:4
TPU v4 tpu-v4-podslice 多主機
  • 拓撲:2x4x4
  • TPU 晶片數量:32
  • VM 數量:8
TPU v4 tpu-v4-podslice 多主機
  • 拓撲:4x4x4
  • TPU 晶片數量:64
  • VM 數量:16
TPU v4 tpu-v4-podslice 多主機
  • 拓撲:{A}x{B}x{C}
  • TPU 晶片數量:{A}*{B}*{C}
  • VM 數量:(A*B*C/4)1
TPU v3 tpu-v3-slice 多主機
  • 拓撲:4x4
  • TPU 晶片數量:16
  • VM 數量:2
TPU v3 tpu-v3-slice 多主機
  • 拓撲:4x8
  • TPU 晶片數量:32
  • VM 數量:4
TPU v3 tpu-v3-slice 多主機
  • 拓撲:8x8
  • TPU 晶片數量:64
  • VM 數量:8
TPU v3 tpu-v3-slice 多主機
  • 拓撲:8x16
  • TPU 晶片數量:128 個
  • VM 數量:16
TPU v3 tpu-v3-slice 多主機
  • 拓撲:16x16
  • TPU 晶片數量:256
  • VM 數量:32
TPU v3 tpu-v3-device 單一主機
  • 拓撲:2x2
  • TPU 晶片數量:4
  • VM 數量:1
  1. 計算方式為拓撲產品除以四。

    支援超過 64 個晶片的自訂拓撲。 申請條件如下:

    • 如果晶片超過 64 個,{A}{B}{C} 必須是 4 的倍數
    • 最大的拓撲為 16x16x24
    • 值必須為 {A}{B}{C},例如 8x12x16
  2. 不支援自訂拓撲。

標準

選擇 TPU 類型和拓撲後,請在工作負載資訊清單中指定這些項目。如需操作說明,請參閱「在 GKE Standard 上部署 TPU 工作負載」。

TPU 版本 機型 節點集區類型 技術規格
TPU Trillium (v6e) ct6e-standard-1t 單一主機
  • 拓撲:1x1
  • TPU 晶片數量:1
  • VM 數量:1
TPU Trillium (v6e) ct6e-standard-8t 單一主機
  • 拓撲:2x4
  • TPU 晶片數量:8 個
  • VM 數量:1
TPU Trillium (v6e) ct6e-standard-4t 單一主機
  • 拓撲:2x2
  • TPU 晶片數量:4
  • VM 數量:1
TPU Trillium (v6e) ct6e-standard-4t 多主機
  • 拓撲:2x4
  • TPU 晶片數量:8 個
  • VM 數量:2
TPU Trillium (v6e) ct6e-standard-4t 多主機
  • 拓撲:4x4
  • TPU 晶片數量:16
  • VM 數量:4
TPU Trillium (v6e) ct6e-standard-4t 多主機
  • 拓撲:4x8
  • TPU 晶片數量:32
  • VM 數量:8
TPU Trillium (v6e) ct6e-standard-4t 多主機
  • 拓撲:8x8
  • TPU 晶片數量:64
  • VM 數量:16
TPU Trillium (v6e) ct6e-standard-4t 多主機
  • 拓撲:8x16
  • TPU 晶片數量:128 個
  • VM 數量:32
TPU Trillium (v6e) ct6e-standard-4t 多主機
  • 拓撲:16x16
  • TPU 晶片數量:256
  • VM 數量:64
TPU v5p ct5p-hightpu-4t 單一主機
  • 拓撲:2x2x1
  • TPU 晶片數量:4
  • VM 數量:1
TPU v5p ct5p-hightpu-4t 多主機
  • 拓撲:2x2x2
  • TPU 晶片數量:8 個
  • VM 數量:2
TPU v5p ct5p-hightpu-4t 多主機
  • 拓撲:2x2x4
  • TPU 晶片數量:16
  • VM 數量:4
TPU v5p ct5p-hightpu-4t 多主機
  • 拓撲:2x4x4
  • TPU 晶片數量:32
  • VM 數量:8
TPU v5p ct5p-hightpu-4t 多主機
  • 拓撲:{A}x{B}x{C}
  • TPU 晶片數量:A*B*C
  • VM 數量:(A*B*C/4)1
TPU v5e ct5lp-hightpu-1t 單一主機
  • 拓撲:1x1
  • TPU 晶片數量:1
  • VM 數量:1
TPU v5e ct5lp-hightpu-4t 單一主機
  • 拓撲:2x2
  • TPU 晶片數量:4
  • VM 數量:1
TPU v5e ct5lp-hightpu-8t 單一主機
  • 拓撲:2x4
  • TPU 晶片數量:8 個
  • VM 數量:1
TPU v5e ct5lp-hightpu-4t 多主機
  • 拓撲:2x4
  • TPU 晶片數量:8 個
  • VM 數量:2
TPU v5e ct5lp-hightpu-4t 多主機
  • 拓撲:4x4
  • TPU 晶片數量:16
  • VM 數量:4
TPU v5e ct5lp-hightpu-4t 多主機
  • 拓撲:4x8
  • TPU 晶片數量:32
  • VM 數量:8
TPU v5e ct5lp-hightpu-4t 多主機
  • 拓撲:8x8
  • TPU 晶片數量:64
  • VM 數量:16
TPU v5e ct5lp-hightpu-4t 多主機
  • 拓撲:8x16
  • TPU 晶片數量:128 個
  • VM 數量:32
TPU v5e ct5p-hightpu-4t 多主機
  • 拓撲:2x4x4
  • TPU 晶片數量:32
  • VM 數量:8
TPU v5e ct5p-hightpu-4t 單一主機
  • 拓撲:2x2x1
  • TPU 晶片數量:4
  • VM 數量:1
TPU v4 ct4p-hightpu-4t 多主機
  • 拓撲:2x2x2
  • TPU 晶片數量:8 個
  • VM 數量:2
TPU v4 ct4p-hightpu-4t 多主機
  • 拓撲:2x2x4
  • TPU 晶片數量:16
  • VM 數量:4
TPU v4 ct4p-hightpu-4t 多主機
  • 拓撲:2x4x4
  • TPU 晶片數量:32
  • VM 數量:8
TPU v4 ct4p-hightpu-4t 多主機
  • 拓撲:{A}x{B}x{C}
  • TPU 晶片數量:A*B*C
  • VM 數量:(A*B*C/4)1
TPU v3 ct3-hightpu-4t 單一主機
  • 拓撲:2x2
  • TPU 晶片數量:4
  • VM 數量:1
TPU v3 ct3p-hightpu-4t 多主機
  • 拓撲:4x4
  • TPU 晶片數量:16
  • VM 數量:4
TPU v3 ct3p-hightpu-4t 多主機
  • 拓撲:4x8
  • TPU 晶片數量:32
  • VM 數量:8
TPU v3 ct3p-hightpu-4t 多主機
  • 拓撲:8x8
  • TPU 晶片數量:64
  • VM 數量:16
TPU v3 ct3p-hightpu-4t 多主機
  • 拓撲:8x16
  • TPU 晶片數量:128 個
  • VM 數量:32
TPU v3 ct3p-hightpu-4t 多主機
  • 拓撲:16x16
  • TPU 晶片數量:256
  • VM 數量:64
TPU v3 ct3p-hightpu-4t 多主機
  • 拓撲:16x32
  • TPU 晶片數量:512 個
  • VM 數量:128
TPU v3 ct3p-hightpu-4t 多主機
  • 拓撲:32x32
  • TPU 晶片數量:1024
  • VM 數量:256
  1. 計算方式為拓撲產品除以四。

進階設定

下列各節說明進階 TPU 設定的排程最佳做法。

預訂 TPU

購買承諾時,即可使用 TPU 預留項目。任何 TPU 預訂項目都可搭配 GKE 使用。

建立 TPU 節點集區時,請使用 --reservation--reservation-affinity=specific 標記,以使用預留的 TPU 執行個體。

在 GKE 中自動調度 TPU

GKE 支援 Tensor Processing Unit (TPU),可加快機器學習工作負載的速度。單一主機 TPU 配量節點集區多主機 TPU 配量節點集區都支援自動調度資源和自動佈建。

在 GKE 叢集上使用 --enable-autoprovisioning 標記時,GKE 會建立或刪除單一主機或多主機 TPU 配量節點集區,並使用符合待處理工作負載需求的 TPU 版本和拓撲。

使用 --enable-autoscaling 時,GKE 會根據節點集區類型調整節點集區大小,如下所示:

  • 單一主機 TPU 配量節點集區:GKE 會在現有節點集區中新增或移除 TPU 節點。節點集區可包含任意數量的 TPU 節點,介於零和節點集區大小上限之間,而節點集區大小上限是由 --max-nodes--total-max-nodes 旗標決定。節點集區擴充時,節點集區中的所有 TPU 節點都會具有相同的機器類型和拓撲。如要進一步瞭解如何建立單一主機 TPU 節點集區,請參閱「建立節點集區」。

  • 多主機 TPU 配量節點集區:GKE 會將節點集區從零原子擴展至滿足 TPU 拓撲所需的節點數量。舉例來說,如果 TPU 節點集區的機器類型為 ct5lp-hightpu-4t,拓撲為 16x16,則節點集區會包含 64 個節點。GKE 自動調度器會確保這個節點集區的節點數為 0 或 64。縮減時,GKE 會排除所有排定的 Pod,並將整個節點集區排除至零。如要進一步瞭解如何建立多主機 TPU 節點集區,請參閱「建立節點集區」。

為 TPU 配量佈建額外儲存空間

TPU 配量中的 VM 包含 100 GiB 的開機磁碟。如果 TPU 節點需要額外的儲存空間來進行訓練或前處理,或是需要儲存檢查點,可以使用 Google Cloud Hyperdisk平衡型 Persistent Disk 儲存空間 (如果 TPU 支援的話)。如要進一步瞭解各個 TPU 版本支援的磁碟類型,請參閱「TPU support for Hyperdisk and Persistent Disk」(TPU 支援 Hyperdisk 和永久磁碟)。

Standard 叢集的 CPU

本節不適用於 Autopilot 叢集,因為 GKE 會將每個 TPU 節點放在自己的節點上。詳情請參閱「Autopilot 模式的 TPU 運作方式」。

如果是標準叢集,請考慮採用下列排程最佳做法。

如要在 TPU 配量節點的 VM 上排定非 TPU 工作負載,請確保 GKE Pod 可以容許 google.com/tpu 汙點。如要將工作負載部署到特定節點,請使用節點選取器

Kubernetes 資源管理和優先順序會將 TPU 中的 VM 視為其他 VM 類型。如要優先排程需要 TPU 的 Pod,而非同一節點上的其他 Pod,請為這些 TPU 配量要求最大 CPU 或記憶體。低優先順序 TPU 配量應執行下列操作:

  1. 設定較低的 CPU 和記憶體要求,確保節點有足夠的可分配資源供 TPU 工作負載使用。詳情請參閱Kubernetes 如何套用資源要求和限制
  2. 設定 CPU 無限制,確保 Pod 可以爆量使用所有未使用的週期。
  3. 設定適當的記憶體限制,確保 Pod 能正常運作,不會有節點壓力剔除的風險。

如果 Kubernetes Pod 未要求 CPU 和記憶體 (即使要求 TPU 也是如此),Kubernetes 會將其視為盡力服務的 Pod,且無法保證該 Pod 需要任何 CPU 和記憶體。只有明確要求 CPU 和記憶體的 Pod 才能享有這類保證。如要進行特定的 Kubernetes 排程,請設定 Pod 需求,並明確指定 CPU 和記憶體要求。詳情請參閱「Pod 和容器的資源管理」。

如要進一步瞭解最佳做法,請參閱「Kubernetes 最佳做法:資源要求和限制」。

減少工作負載中斷

如果您使用 TPU 訓練機器學習模型,但工作負載中斷,自上次檢查點以來的所有工作都會遺失。如要降低工作負載中斷的機率,請採取下列措施:

  • 將這項工作的優先順序設為高於所有其他工作:如果資源不足,GKE 排程器會搶占優先順序較低的工作,排定優先順序較高的工作。這也能確保高優先順序工作負載獲得所需的所有資源 (最多可達叢集中的可用資源總數)。詳情請參閱「Pod 優先順序和搶占」。
  • 設定維護作業排除時段:維護作業排除時段是指禁止自動執行維護作業的一段非週期性時間。詳情請參閱「維護作業排除時段」。
  • 在 Autopilot 中使用延長執行時間的 Pod:使用延長執行時間的 Pod,在 GKE 因縮減或節點升級而終止 Pod 之前,最多可享有七天的緩衝期。
  • 在 TPU Trillium 中使用集合排程:使用集合指出 TPU 節點集區是服務工作負載的一部分。 Google Cloud 可限制並簡化推論工作負載作業的中斷情形。詳情請參閱「收款排程的運作方式」。

這些建議有助於盡量減少中斷,但無法完全避免。舉例來說,因硬體故障而搶占資源,或是為了重整而搶占資源,仍有可能發生。同樣地,設定 GKE 維護排除項目不會防止 Compute Engine 維護事件。

最佳做法

請經常儲存檢查點,並在訓練指令碼中加入程式碼,以便在恢復訓練時從上一個檢查點開始。

處理因節點維護作業而導致的中斷

主機 TPU 的 GKE 節點可能會發生維護事件或其他中斷情形,導致節點關機。在控制平面執行 1.29.1-gke.1425000 以上版本的 GKE 叢集中,您可以將 GKE 設為正常終止工作負載,減少工作負載中斷情形。

如要瞭解、設定及監控執行 AI/機器學習工作負載的 GKE 節點上可能發生的中斷事件,請參閱「管理 GPU 和 TPU 的 GKE 節點中斷」。

盡量提高 TPU 使用率

如要充分運用 TPU 投資,請排定各種優先順序的工作,並將這些工作加入佇列,盡可能延長 TPU 的運作時間。如要進行工作層級的排程和搶占,您必須使用 Kubernetes 外掛程式,將工作自動調度到佇列中。

最佳做法

使用 Kueue 將工作調度至佇列。

後續步驟