本頁說明如何在 Google Kubernetes Engine (GKE) 中規劃 Tensor 處理單元 (TPU) 用量,以降低 TPU 設定錯誤、無法使用錯誤或超出配額中斷的風險。
在 GKE 中使用 TPU 之前,請務必先熟悉 GKE 中的 TPU 定義和術語。
規劃 TPU 設定
如要在 GKE 叢集中使用 TPU,您必須規劃 TPU 的設定。建議您按照下列步驟操作:
選擇 GKE 作業模式:在 GKE Autopilot 或 Standard 叢集上,透過 TPU 執行工作負載。
最佳做法: 使用 Autopilot 叢集,享有全代管 Kubernetes 體驗。
選擇 TPU 版本:不同 TPU 類型有不同的功能,例如價格效能比、訓練輸送量和服務延遲。TPU 類型會影響可用的 CPU 和記憶體容量。
驗證 TPU 可用性:TPU 僅適用於特定 Google Cloud地區。如要在 GKE 工作負載中使用 TPU 類型,叢集必須位於該類型支援的區域。
選擇 TPU 拓撲:TPU 配量中 TPU 的實體排列方式。選取符合模型平行處理需求的拓撲。
請使用本頁面的參考表格,判斷節點集區是否為單一主機或多主機 TPU 節點。
選擇 GKE 作業模式
您可以在叢集的可用 GKE 作業模式中使用 TPU:
- 標準模式:您需要管理底層基礎架構,包括設定個別節點。
- Autopilot 模式 (建議):GKE 會管理底層基礎架構,例如節點設定、自動調度資源、自動升級、基準安全性設定和基準網路設定。在 Autopilot 中,您可以選擇 TPU 類型和拓撲,然後在 Kubernetes 資訊清單中指定這些項目。GKE 會管理節點的佈建作業 (包括 TPU),並排程工作負載。
如要選擇最適合工作負載的 GKE 作業模式,請參閱「選擇 GKE 作業模式」。
選擇 TPU 用量方案
在 GKE 中規劃 TPU 設定時,請選取符合工作負載需求的用量選項。您選擇的用量方案會影響可用的 TPU 版本,以及需要設定的配額。GKE 提供下列 TPU 消耗量選項,協助您在維持工作負載效能的同時,最佳化資源分配和成本:
- 彈性啟動:佈建最多七天的彈性啟動 VM,GKE 會盡力根據可用性自動分配硬體。詳情請參閱「關於使用彈性啟動佈建模式佈建 GPU、TPU 和 H4D」。
- Spot VM:您可以大幅節省 Spot VM 的佈建費用,但系統可能會在發出 30 秒警告後,隨時先占 Spot VM。詳情請參閱Spot VM。
- 最多可預留 90 天的未來預留項目 (日曆模式):在指定時間範圍內,最多可預留 90 天的 TPU 資源。詳情請參閱「在日曆模式中要求未來預留項目 TPU」。
- TPU 預留項目:申請一年以上的未來預留項目。
- 隨選:使用 TPU 時不必預先安排容量。申請資源前,您必須有足夠的隨選配額,才能使用特定類型和數量的 TPU VM。隨需是最具彈性的用量選項,但無法保證有足夠的隨需資源可滿足您的要求。
如未指定其他選項,系統預設會為 GKE 中的 TPU 採用以量計價模式。如要選擇符合工作負載需求的用量選項,請參閱「關於 GKE 中 AI/機器學習工作負載的加速器用量選項」。
選擇 TPU 版本
TPU 節點中的 VM 具有下列技術特性。
標準
| TPU 版本 | 機型 | cloud.google.com/gke-tpu-accelerator |
vCPU 數量 | 每個 VM 的晶片數量 | NUMA 節點數量 | 遭到搶占的可能性 |
|---|---|---|---|---|---|---|
| Ironwood (TPU7x) | tpu7x-standard-4t |
tpu7x |
224 | 4 | 2 | 不適用 |
| TPU Trillium (v6e) | ct6e-standard-1t |
tpu-v6e-slice |
44 | 1 | 1 | 較高 |
| TPU Trillium (v6e) | ct6e-standard-4t |
tpu-v6e-slice |
180 | 4 | 1 | 中 |
| TPU Trillium (v6e) | ct6e-standard-8t |
tpu-v6e-slice |
180 | 8 | 2 | 較低 |
| TPU v5p |
ct5p-hightpu-4t |
tpu-v5p-slice |
208 | 4 | 2 | 不適用 |
| TPU v5e |
ct5lp-hightpu-1t |
tpu-v5-lite-podslice |
24 | 1 | 1 | 較高 |
| TPU v5e |
ct5lp-hightpu-4t |
tpu-v5-lite-podslice |
112 | 4 | 1 | 中 |
| TPU v5e |
ct5lp-hightpu-8t |
tpu-v5-lite-podslice |
224 | 8 | 1 | 低 |
| TPU v4 |
ct4p-hightpu-4t |
tpu-v4-podslice |
240 | 4 | 2 | 不適用 |
| TPU v3 (僅限單一主機) |
ct3-hightpu-4t |
tpu-v3-device |
96 | 4 | 2 | 不適用 |
| TPU v3 |
ct3p-hightpu-4t |
tpu-v3-slice |
48 | 4 | 1 | 不適用 |
多主機 ct5lp- 機器類型更適合用於提供大型模型或訓練。多主機 ct5lp- 機器會透過高速連結互連。
Autopilot
| TPU 版本 | cloud.google.com/gke-tpu-accelerator |
vCPU 數量 | NUMA 節點數量 | TPU 配量節點中的 TPU 晶片數量上限 |
|---|---|---|---|---|
| Ironwood (TPU7x) | tpu7x |
224 | 2 | 2048 |
| TPU Trillium (v6e) | tpu-v6e-slice |
44 到 180 | 1 至 2 | 256 |
| TPU v5p |
tpu-v5p-slice |
208 | 2 | 6,144 |
| TPU v5e |
tpu-v5-lite-podslice |
24 到 224 | 1 | 256 |
| TPU v4 |
tpu-v4-podslice |
240 | 2 | 4,096 |
| TPU v3 (僅限單一主機) |
tpu-v3-device |
96 | 2 | 8 |
| TPU v3 |
tpu-v3-slice |
48 | 1 | 256 |
請參閱 Cloud TPU 定價說明文件中的 TPU 規格和價格,決定要使用的 TPU 設定。
限制
選擇要使用的 TPU 時,請注意下列限制:
Ironwood (TPU7x) 有下列限制:
- 1.34.0-gke.2201000 以上版本的 Standard 叢集。
- 1.34.1-gke.3084001 以上版本的 Autopilot 叢集。
- 僅支援 Google Cloud Hyperdisk Balanced 和 Hyperdisk ML。
TPU Trillium 提供下列版本:
- 1.31.1-gke.1846000 以上版本的標準叢集。
- 1.31.2-gke.1115000 以上版本的 Autopilot 叢集。
TPU Trillium 不支援在
ct6e-standard-8t上將 SMT 設為2。如要在 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 類型,叢集必須位於該類型支援的區域。
標準
| TPU 版本 | 機型開頭為 | 最低 GKE 版本 | 可用性 | 可用區 |
|---|---|---|---|---|
| TPU Ironwood (TPU7x) |
tpu7x-standard-4t
|
1.34.0-gke.2201000 | 正式發布版 |
|
| TPU Trillium (v6e) |
ct6e-
|
1.31.2-gke.1115000 | 正式發布版 |
|
| TPU v5e |
ct5lp-
|
1.27.2-gke.2100 | 正式發布版 |
|
| TPU v5p |
ct5p-
|
1.28.3-gke.1024000 | 正式發布版 |
|
| TPU v4 |
ct4p-
|
1.26.1-gke.1500 | 正式發布版 |
|
| TPU v3 |
ct3p-
|
1.31.1-gke.1146000 | 正式發布版 |
|
| TPU v3 |
ct3-
|
1.31.0-gke.1500 | 正式發布版 |
|
Autopilot
| TPU 版本 |
cloud.google.com/gke-tpu-accelerator
|
最低 GKE 版本 | 可用性 | 可用區 |
|---|---|---|---|---|
| TPU Ironwood (TPU7x) |
tpu7x
|
1.34.1-gke.3084001 | 正式發布版 |
|
| TPU Trillium (v6e) |
tpu-v6e-slice
|
1.31.2-gke.1384000 | 正式發布版 |
|
| TPU v5e |
tpu-v5-lite-podslice
|
1.27.2-gke.2100 | 正式發布版 |
|
| TPU v5p |
tpu-v5p-slice
|
1.28.3-gke.1024000 | 正式發布版 |
|
| TPU v4 |
tpu-v4-podslice
|
1.26.1-gke.1500 | 正式發布版 |
|
| TPU v3 |
tpu-v3-slice
|
1.31.1-gke.1146000 | 正式發布版 |
|
| TPU v3 |
tpu-v3-device
|
1.31.0-gke.1500 | 正式發布版 |
|
選擇拓撲
選擇 TPU 版本後,請選取支援的拓撲。拓撲會定義 TPU 配量中 TPU 晶片的實體排列方式。拓撲越大,提供的 TPU 晶片就越多,可進行更多平行處理作業,加快大型模型訓練速度,或使用更大的資料集。
雖然 GKE 會自動管理 VM 佈建作業,但瞭解單一主機和多主機節點集區之間的差異,有助於釐清拓撲中的晶片數量與基礎 VM 的關係:
如果您要求的拓撲晶片總數,超過單一 VM 可用的晶片數量 (適用於該 TPU 版本),GKE 會自動將其佈建為多主機環境。在這個情境中,GKE 會啟動多個節點來分配晶片。
舉例來說,請考量 ct6e-standard-4t 機型和 4x4 拓撲:
- 該機型
ct6e-standard-4t的每個 VM 有 4 個晶片。 - 拓撲
4x4需要的晶片總數為 16 個 (4 * 4)。 - 由於 16 (拓撲晶片數量) 大於 4 (每個 VM 的晶片數量),因此這個設定會產生多主機 TPU 配量節點集區。GKE 會將 16 個晶片分配到 4 個 VM。
請參閱下表,為您的用途選擇 TPU 機型和拓撲:
標準
選擇 TPU 類型和拓撲後,請在工作負載資訊清單中指定這些項目。如需操作說明,請參閱「在 GKE Standard 上部署 TPU 工作負載」。
| TPU 版本 | 機型 | 節點集區類型 | 技術規格 |
|---|---|---|---|
| Ironwood (TPU7x) | tpu7x-standard-4t |
單一主機 |
|
| Ironwood (TPU7x) | tpu7x-standard-4t |
多主機 |
|
| Ironwood (TPU7x) | tpu7x-standard-4t |
多主機 |
|
| Ironwood (TPU7x) | tpu7x-standard-4t |
多主機 |
|
| Ironwood (TPU7x) | tpu7x-standard-4t |
多主機 |
|
| Ironwood (TPU7x) | tpu7x-standard-4t |
多主機 |
|
| Ironwood (TPU7x) | tpu7x-standard-4t |
多主機 |
|
| Ironwood (TPU7x) | tpu7x-standard-4t |
多主機 |
|
| Ironwood (TPU7x) | tpu7x-standard-4t |
多主機 |
|
| Ironwood (TPU7x) | tpu7x-standard-4t |
多主機 |
|
| TPU Trillium (v6e) | ct6e-standard-1t |
單一主機 |
|
| TPU Trillium (v6e) | ct6e-standard-8t |
單一主機 |
|
| TPU Trillium (v6e) | ct6e-standard-4t |
單一主機 |
|
| TPU Trillium (v6e) | ct6e-standard-4t |
多主機 |
|
| TPU Trillium (v6e) | ct6e-standard-4t |
多主機 |
|
| TPU Trillium (v6e) | ct6e-standard-4t |
多主機 |
|
| TPU Trillium (v6e) | ct6e-standard-4t |
多主機 |
|
| TPU Trillium (v6e) | ct6e-standard-4t |
多主機 |
|
| TPU Trillium (v6e) | ct6e-standard-4t |
多主機 |
|
| TPU v5p | ct5p-hightpu-4t |
單一主機 |
|
| TPU v5p | ct5p-hightpu-4t |
多主機 |
|
| TPU v5p | ct5p-hightpu-4t |
多主機 |
|
| TPU v5p | ct5p-hightpu-4t |
多主機 |
|
| TPU v5p | ct5p-hightpu-4t |
多主機 |
|
| TPU v5e | ct5lp-hightpu-1t |
單一主機 |
|
| TPU v5e | ct5lp-hightpu-4t |
單一主機 |
|
| TPU v5e | ct5lp-hightpu-8t |
單一主機 |
|
| TPU v5e | ct5lp-hightpu-4t |
多主機 |
|
| TPU v5e | ct5lp-hightpu-4t |
多主機 |
|
| TPU v5e | ct5lp-hightpu-4t |
多主機 |
|
| TPU v5e | ct5lp-hightpu-4t |
多主機 |
|
| TPU v5e | ct5lp-hightpu-4t |
多主機 |
|
| TPU v4 | ct4p-hightpu-4t |
多主機 |
|
| TPU v4 | ct4p-hightpu-4t |
多主機 |
|
| TPU v4 | ct4p-hightpu-4t |
多主機 |
|
| TPU v4 | ct4p-hightpu-4t |
多主機 |
|
| TPU v3 | ct3-hightpu-4t |
單一主機 |
|
| TPU v3 | ct3p-hightpu-4t |
多主機 |
|
| TPU v3 | ct3p-hightpu-4t |
多主機 |
|
| TPU v3 | ct3p-hightpu-4t |
多主機 |
|
| TPU v3 | ct3p-hightpu-4t |
多主機 |
|
| TPU v3 | ct3p-hightpu-4t |
多主機 |
|
| TPU v3 | ct3p-hightpu-4t |
多主機 |
|
| TPU v3 | ct3p-hightpu-4t |
多主機 |
|
-
計算方式為拓撲產品除以四。 ↩
Autopilot
選擇 TPU 類型和拓撲後,請在工作負載資訊清單中指定這些項目。如需操作說明,請參閱「在 GKE Autopilot 部署 TPU 工作負載」。
| TPU 版本 | 機型 | 節點集區類型 | 技術規格 |
|---|---|---|---|
| Ironwood (TPU7x) | tpu7x |
單一主機 |
|
| Ironwood (TPU7x) | tpu7x |
多主機 |
|
| Ironwood (TPU7x) | tpu7x |
多主機 |
|
| Ironwood (TPU7x) | tpu7x |
多主機 |
|
| Ironwood (TPU7x) | tpu7x |
多主機 |
|
| Ironwood (TPU7x) | tpu7x |
多主機 |
|
| Ironwood (TPU7x) | tpu7x |
多主機 |
|
| TPU Trillium (v6e) | tpu-v6e-slice |
單一主機 |
|
| TPU Trillium (v6e) | tpu-v6e-slice |
單一主機 |
|
| TPU Trillium (v6e) | tpu-v6e-slice |
單一主機 |
|
| TPU Trillium (v6e) | tpu-v6e-slice |
多主機 |
|
| TPU Trillium (v6e) | tpu-v6e-slice |
多主機 |
|
| TPU Trillium (v6e) | tpu-v6e-slice |
多主機 |
|
| TPU Trillium (v6e) | tpu-v6e-slice |
多主機 |
|
| TPU Trillium (v6e) | tpu-v6e-slice |
多主機 |
|
| TPU v5p | tpu-v5p-slice |
單一主機 |
|
| TPU v5p | tpu-v5p-slice |
多主機 |
|
| TPU v5p | tpu-v5p-slice |
多主機 |
|
| TPU v5p | tpu-v5p-slice |
多主機 |
|
| TPU v5p | tpu-v5p-slice |
多主機 |
|
| TPU v5p | tpu-v5p-slice |
多主機 |
|
| TPU v5e | tpu-v5-lite-podslice |
單一主機 |
|
| TPU v5e | tpu-v5-lite-podslice |
單一主機 |
|
| TPU v5e | tpu-v5-lite-podslice |
單一主機 |
|
| TPU v5e | tpu-v5-lite-podslice |
多主機 |
|
| TPU v5e | tpu-v5-lite-podslice |
多主機 |
|
| TPU v5e | tpu-v5-lite-podslice |
多主機 |
|
| TPU v5e | tpu-v5-lite-podslice |
多主機 |
|
| TPU v5e | tpu-v5-lite-podslice |
多主機 |
|
| TPU v5e | tpu-v5-lite-podslice |
多主機 |
|
| TPU v4 | tpu-v4-podslice |
單一主機 |
|
| TPU v4 | tpu-v4-podslice |
多主機 |
|
| TPU v4 | tpu-v4-podslice |
多主機 |
|
| TPU v4 | tpu-v4-podslice |
多主機 |
|
| TPU v4 | tpu-v4-podslice |
多主機 |
|
| TPU v4 | tpu-v4-podslice |
多主機 |
|
| TPU v3 | tpu-v3-slice |
多主機 |
|
| TPU v3 | tpu-v3-slice |
多主機 |
|
| TPU v3 | tpu-v3-slice |
多主機 |
|
| TPU v3 | tpu-v3-slice |
多主機 |
|
| TPU v3 | tpu-v3-slice |
多主機 |
|
| TPU v3 | tpu-v3-device |
單一主機 |
|
-
計算方式為拓撲產品除以四。 ↩
支援超過 64 個晶片的自訂拓撲。 申請條件如下:
- 如要使用超過 64 個晶片,
{A}、{B}和{C}必須是 4 的倍數 - 最大的拓撲是
16x16x24 - 值必須為
{A}≤{B}≤{C},例如8x12x16。
- 如要使用超過 64 個晶片,
-
不支援自訂拓撲。
進階設定
以下各節將說明進階 TPU 設定的排程最佳做法。
AI 可用區
AI 可用區是專門的可用區,用於 AI/機器學習訓練和推論工作負載。這些區域提供大量 ML 加速器容量。詳情請參閱「AI 可用區」一文。
在本文件和 GKE 說明文件中,「標準可用區」或「可用區」是指 Google Cloud 區域內的非 AI 可用區。
在 GKE 中使用 AI 區域前,請先考量下列特性:
- AI 可用區與標準可用區在實體上是分開的,可提供額外的儲存空間和電力。這種分離可能會導致延遲時間較長,但一般來說,AI/機器學習工作負載可容許這種情況。
- AI 可用區的後置字串會加上
ai標記。舉例來說,us-central1區域中的 AI 可用區名稱為us-central1-ai1a。 - 目前僅支援 TPU VM。
- 叢集的控制層會在與 AI 可用區相同的區域內,於一或多個標準可用區中執行。
如要在 AI 區域中執行未附加 TPU 的 VM,必須符合下列條件:
- 您已在相同可用區中執行其他使用 TPU VM 的工作負載。
- 非 TPU VM 可能是 Spot VM、與預留項目綁定,或是節點集區的一部分,且具有特定的加速器與一般用途 VM 比例。
AI 可用區與同一地區內具有相同後置字元的標準可用區,共用網路連線和軟體推出等元件。如要處理高可用性工作負載,建議您使用不同區域。舉例來說,請避免同時使用
us-central1-ai1a和us-central1-a實現高可用性。
根據預設,GKE 不會在 AI 區域部署工作負載。如要使用 AI 專區,請設定下列其中一個選項:
- (建議) ComputeClasses:將最高優先順序設為在 AI 區域中要求隨選 TPU。您可以透過 ComputeClass 為工作負載定義優先順序清單。如需範例,請參閱「關於 ComputeClass」。
- 自動佈建節點:在 Pod 規格中使用
nodeSelector或nodeAffinity,指示自動佈建節點功能在 AI 可用區中建立節點集區。如果工作負載未明確指定 AI 可用區,節點自動佈建功能只會考慮標準可用區或--autoprovisioning-locations中的可用區,建立新的節點集區。這項設定可確保未執行 AI/機器學習模型的工作負載會留在標準可用區,除非您明確設定其他可用區。如需使用nodeSelector的資訊清單範例,請參閱「為自動建立的節點設定預設區域」。 - GKE Standard:如果您直接管理節點集區,請在建立節點集區時,使用
--node-locations旗標中的 AI 區域。如需範例,請參閱「在 GKE Standard 中部署 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 預設包含 10 GB 的開機磁碟。如果 TPU 配量需要額外的儲存空間來進行訓練或前處理,或是需要儲存查核點,可以使用 Google Cloud Hyperdisk 或 平衡型永久磁碟 儲存空間 (如果 TPU 支援的話)。如要進一步瞭解各個 TPU 版本支援的磁碟類型,請參閱「TPU support for Google Cloud Hyperdisk and Persistent Disk」(TPU 支援 Google Cloud Hyperdisk 和 Persistent Disk)。
標準叢集的 CPU
由於 GKE 會將每個 TPU 節點放在自己的節點上,因此本節不適用於 Autopilot 叢集。詳情請參閱「Autopilot 模式中的 TPU 運作方式」。
如果是標準叢集,請考慮下列排程最佳做法。
如要在 TPU 配量節點的 VM 上排定非 TPU 工作負載,請確保 GKE Pod 可以容許 google.com/tpu 汙點。如要將工作負載部署到特定節點,請使用節點選取器。
Kubernetes 資源管理和優先順序會將 TPU 中的 VM 視為其他 VM 類型。如要優先排程需要 TPU 的 Pod,而非相同節點上的其他 Pod,請為這些 TPU 配量要求最大 CPU 或記憶體。低優先順序 TPU 配量應執行下列操作:
- 設定較低的 CPU 和記憶體要求,確保節點有足夠的可分配資源供 TPU 工作負載使用。詳情請參閱Kubernetes 如何套用資源要求和限制。
- 設定 CPU 無限制,確保 Pod 可以爆量使用所有未使用的週期。
- 設定適當的記憶體限制,確保 Pod 能正常運作,不會有節點壓力剔除的風險。
如果 Kubernetes Pod 未要求 CPU 和記憶體 (即使要求使用 TPU),Kubernetes 會將其視為盡力服務型 Pod,且無法保證該 Pod 需要任何 CPU 和記憶體。只有明確要求 CPU 和記憶體的 Pod 才能享有這類保證。如要進行特定的 Kubernetes 排程,請使用明確的 CPU 和記憶體要求設定 Pod 需求。詳情請參閱「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/ML 工作負載的 GKE 節點上可能發生的中斷事件,請參閱「管理 GPU 和 TPU 的 GKE 節點中斷」。
盡量提高 TPU 使用率
如要充分運用 TPU 投資,請排定工作優先順序並將工作加入佇列,盡可能延長 TPU 的運作時間。如要進行工作層級的排程和搶占,您必須使用 Kubernetes 外掛程式,將工作自動調度至佇列。
使用 Kueue 將工作調度至佇列。
後續步驟
- 請按照「在 GKE 中部署 TPU 工作負載」一文的說明,設定 Cloud TPU 搭配 GKE。
- 瞭解使用 Cloud TPU 執行機器學習工作的最佳做法。
- 在 GKE 中使用 Cloud TPU 建構大規模機器學習模型。
- 在 TPU 上使用 KubeRay 服務大型語言模型。