本頁面說明 Google Kubernetes Engine (GKE) 中的 GPU,協助您為工作負載選取最佳 GPU 設定。如要部署使用 Slurm 的 GPU 工作負載,請改為參閱「建立 AI 最佳化 Slurm 叢集」。
您可以使用 GPU 加速處理資源密集型工作,例如機器學習和資料處理。本頁面的資訊可協助您執行下列操作:
- 確保在需要時能使用 GPU。
- 決定要在 GKE Autopilot 模式或 GKE Standard 模式叢集中使用 GPU。
- 選擇 GPU 相關功能,有效率地使用 GPU 運算能力。
- 監控 GPU 節點指標。
- 更有效地處理中斷情形,提高 GPU 工作負載可靠性。
本頁面適用於平台管理員和操作員,以及機器學習 (ML) 工程師,協助他們確保加速器基礎架構已針對工作負載最佳化。
閱讀本頁面之前,請先熟悉下列內容:
在 GKE 中選取 GPU
在 GKE 中,要求 GPU 硬體的方式取決於您使用的是 Autopilot 還是標準模式。在 Autopilot 中,您可以在工作負載中指定 GPU 資源,藉此要求 GPU 硬體。在 GKE 標準模式中,您可以將 GPU 硬體附加至叢集中的節點,然後將 GPU 資源分配給在這些節點上執行的容器化工作負載。如要進一步瞭解如何在工作負載中附加及使用 GPU,請參閱「在 Autopilot 上部署 GPU 工作負載」或「在 Standard 節點集區上執行 GPU」。
GKE 提供一些 GPU 專屬功能,可提高節點上執行工作負載的 GPU 資源使用率,包括分時、多實體 GPU,以及採用 NVIDIA MPS 的多實體 GPU。
本頁面可協助您考量在 GKE 中要求 GPU 的選項,包括:
- 選擇 GPU 配額:專案中可執行的 GPU 數量上限
- 在 Autopilot 和 標準模式 之間做出選擇
- 透過 GKE 或 GKE 上的 NVIDIA GPU Operator 管理 GPU 堆疊
- 選擇功能,減少未充分利用的 GPU 資源
- 存取 CUDA 應用程式的 NVIDIA CUDA-X 程式庫
- 監控 GPU 節點指標
- 處理節點維護作業造成的中斷情形
- 使用 GKE Sandbox 保護 GPU 工作負載
可用的 GPU 模型
GKE 可用的 GPU 硬體是 Compute Engine 可用 GPU 模型的子集。可用的特定硬體取決於叢集的 Compute Engine 區域或可用區。如要進一步瞭解特定可用性,請參閱「GPU 區域和可用區」。
Cloud de Confiance效能最高的機型 (例如 A4X Max、A4X、A4 和 A3 Ultra) 需要特定設定,才能充分發揮基礎硬體的效能。如要瞭解如何設定 GKE 叢集,以便使用這些 GPU 機型,請參閱 AI Hypercomputer 說明文件,其中說明Cloud de Confiance整合式超級運算系統的功能。
如要瞭解如何使用這些機型建立 AI 最佳化 GKE 叢集,請參閱下列說明:
- 如要快速部署可用於正式環境的 GKE 叢集,請使用 Cluster Toolkit 建立 AI 最佳化 GKE 叢集
- 如要精確自訂或擴充現有的正式版 GKE 環境,請使用 Google Cloud CLI 建立 GKE 叢集。請根據要使用的機器類型和 GPU,選擇下列其中一項操作說明:
- GB300:建立使用 A4X Max 的 AI 最佳化 GKE 叢集
- GB200:建立使用 A4X 的 AI 最佳化 GKE 叢集
- B200 或 H200:建立使用 A4 或 A3 Ultra 的 AI 最佳化 GKE 叢集
如要瞭解 GPU 定價,請參閱 Cloud de Confiance by S3NS SKU 和 GPU 定價頁面。
規劃 GPU 配額
GPU 配額是指Cloud de Confiance 專案中可執行的 GPU 數量上限。如要在 GKE 叢集中使用 GPU,專案必須有足夠的 GPU 配額。請查看「配額」頁面,確認專案有足夠的 GPU。
GPU 配額至少應等於您打算在叢集中執行的 GPU 總數。如果啟用叢集自動調度資源功能,您應要求的 GPU 配額至少應等於叢集節點數量上限乘以每個節點的 GPU 數量。
舉例來說,如果您預計使用三個節點,每個節點有兩個 GPU,則專案所需的 GPU 配額為六個。
如要申請額外的 GPU 配額,請按照操作說明申請調整配額,並使用 gpus 做為指標。
選擇使用 Autopilot 或 Standard 模式支援 GPU
Autopilot 和 Standard 叢集皆可使用 GPU。
使用 Autopilot 叢集,享有全代管 Kubernetes 體驗。在 Autopilot 模式下,GKE 會管理驅動程式安裝、節點資源調度、Pod 隔離和節點佈建。
下表概略說明 Autopilot 和 Standard GPU 支援之間的差異:
| 說明 | Autopilot | 標準 |
|---|---|---|
| 要求 GPU 硬體 | 在工作負載中指定 GPU 資源。 | 將 GPU 硬體附加至叢集中的節點,然後將 GPU 資源分配給在這些節點上執行的容器化工作負載。 |
| GPU 硬體可用性 |
|
Compute Engine 支援的所有 GPU 類型 |
| 選取 GPU | 您可以在工作負載規格中要求 GPU 數量和類型。根據預設,Autopilot 會安裝該 GKE 版本的預設驅動程式,並管理節點。如要在 Autopilot 中選取特定驅動程式版本,請參閱「 為 Autopilot GPU Pod 選取 NVIDIA 驅動程式」。 |
請按照「在標準節點集區中執行 GPU」一文所述的步驟操作:
|
| 提高 GPU 使用率 | ||
| 安全性 | ||
| 定價 | Autopilot GPU Pod 定價 | Compute Engine GPU 定價 |
如要選擇最適合工作負載的 GKE 作業模式,請參閱「選擇 GKE 作業模式」。
使用 GPU
GKE 提供多種 GPU 計費方案,可依工作負載需求選擇。請參閱「關於 GKE 中 AI/機器學習工作負載的加速器用量選項」頁面,選擇最適合您用途的選項。
透過 GKE 或 GKE 上的 NVIDIA GPU Operator 管理 GPU 堆疊
根據預設,GKE 會管理 GPU 節點的整個生命週期,包括自動安裝 GPU 驅動程式、使用 NVIDIA 資料中心 GPU Manager (DCGM) 監控 GKE 上的 GPU 工作負載,以及 GPU 共用策略。
使用 GKE 管理 GPU 節點,因為 GKE 會全代管 GPU 節點生命週期。
如要開始使用 GKE 管理 GPU 節點,請選擇下列其中一項:
NVIDIA GPU Operator 可做為 GKE 上全代管 GPU 支援的替代方案,適用於 Container-Optimized OS (COS) 和 Ubuntu 節點映像檔。如果您想在多個雲端服務供應商之間獲得一致的體驗、已使用 NVIDIA GPU Operator,或使用的軟體依賴 NVIDIA GPU Operator,請選取這個選項。詳情請參閱「使用 NVIDIA GPU Operator 管理 GPU 堆疊」。
請參閱下表,比較在 GKE 上管理 GPU 節點的兩種方法,並根據您的用途選取最佳選項。
| 說明 | 使用 GKE 管理 GPU 節點 | 在 GKE 使用 NVIDIA GPU Operator |
|---|---|---|
| 管理 GPU 節點生命週期 (安裝、升級) | 由 GKE 全代管。 | 由使用者管理。 |
| 安裝驅動程式 | 自動和手動安裝 GPU 驅動程式。 | 手動安裝 GPU 驅動程式。 |
| 節點選取器 | cloud.google.com/gke-gpu=true |
nvidia.com/gpu=true |
| GPU 共用策略 |
|
|
| GPU 節點健康狀態檢查 |
|
|
| 指標和觀測能力 |
|
|
使用 GKE 的 GPU 功能,充分運用資源
根據預設,Kubernetes 僅支援將 GPU 整體指派給容器,但 GKE 提供額外功能,可讓您最佳化 GPU 工作負載的資源用量。
GKE 提供下列功能,可減少未充分利用的 GPU 資源:
| GPU 功能 | |
|---|---|
| 多實體 GPU |
適用模式:Autopilot 和 Standard 將單一 GPU 分割為最多七個硬體分隔的執行個體,可指派為節點上容器的個別 GPU。每個指派的容器都會取得該執行個體可用的資源。 |
| 分時 GPU |
適用模式:Autopilot 和 Standard 將單一 GPU 拆分為多個單位,提供給節點上的多個容器。GPU 驅動程式會切換情境,並視需要將完整的 GPU 資源分配給各個指派的容器。 |
| NVIDIA MPS |
適用方案:Standard 在多個容器之間共用單一實體 NVIDIA GPU。NVIDIA MPS 是 CUDA API 的替代二進位相容實作,旨在以透明方式讓協作多程序 CUDA 應用程式在單一 GPU 裝置上同時執行。 |
存取 CUDA 應用程式的 NVIDIA CUDA-X 程式庫
CUDA 是 NVIDIA 的平行運算平台和 GPU 程式設計模型。如要使用 CUDA 應用程式,您使用的映像檔必須具備程式庫。如要新增 NVIDIA CUDA-X 程式庫,您可以在容器規格的 LD_LIBRARY_PATH 環境變數中加入下列值,藉此建構及使用自己的映像檔:
/usr/local/nvidia/lib64:NVIDIA 裝置驅動程式的位置。/usr/local/cuda-CUDA_VERSION/lib64:節點上的 NVIDIA CUDA-X 程式庫位置。將
CUDA_VERSION替換為您使用的 CUDA-X 映像檔版本。部分版本也包含/usr/local/nvidia/bin中的偵錯公用程式。詳情請參閱 DockerHub 上的 NVIDIA CUDA 映像檔。如要查看 CUDA 版本所需的最低 GPU 驅動程式版本,請參閱「CUDA 工具包和相容的驅動程式版本」。
在 Autopilot 叢集中,GKE 會管理驅動程式版本的選取和安裝作業。
監控 GPU 節點工作負載效能
如果 GKE 叢集已啟用 系統指標,您可以在 Cloud Monitoring 中使用下列指標,監控 GPU 工作負載效能:
-
工作週期 (
container/accelerator/duty_cycle): 在前一個取樣期間 (10 秒) 內,加速器主動處理作業的時間百分比。介於 1 到 100 之間。 -
記憶體用量 (
container/accelerator/memory_used): 分配的加速器記憶體容量,以位元組為單位。 -
記憶體容量 (
container/accelerator/memory_total): 加速器記憶體總量,以位元組為單位。
這些指標適用於容器層級 (container/accelerator),且不會針對使用 GPU 分時或 NVIDIA MPS 的 GPU 排程容器收集。
您可以使用預先定義的資訊主頁,監控含有 GPU 節點的叢集。詳情請參閱「 查看觀測能力指標」。如要瞭解如何監控叢集和叢集資源,請參閱「GKE 的觀測能力」。
查看工作負載的用量指標
您可以在 Cloud de Confiance 控制台的「Workloads」(工作負載) 資訊主頁中,查看工作負載 GPU 用量指標。
如要查看工作負載 GPU 用量,請按照下列步驟操作:
-
前往 Cloud de Confiance 控制台的「Workloads」(工作負載) 頁面。
前往「Workloads」(工作負載) - 選取工作負載。
「工作負載」資訊主頁會顯示 GPU 記憶體用量、容量和 GPU 工作週期的圖表。
查看 NVIDIA Data Center GPU Manager (DCGM) 指標
您可以使用 Google Cloud Managed Service for Prometheus 收集及視覺化呈現 NVIDIA DCGM 指標。如果是 Autopilot 叢集,GKE 會安裝驅動程式。如果是 Standard 叢集,則必須安裝 NVIDIA 驅動程式。
如要瞭解如何部署 GKE 代管的 DCGM 套件,請參閱「收集及查看 NVIDIA 資料中心 GPU Manager (DCGM) 指標」。
GPU 工作負載的 JobSet 和節點健康狀態指標
除了 DCGM 指標,您還可以使用下列指標監控 GPU 工作負載的健康狀態和效能,尤其是以 JobSet 形式執行的工作負載。
JobSet 指標
下列指標適用於具有單一複製工作的 GPU 和 TPU JobSet:
kubernetes.io/jobset/times_between_interruptionskubernetes.io/jobset/times_to_recoverkubernetes.io/jobset/uptime
如要進一步瞭解這些系統指標,請參閱「Kubernetes 指標」。
您也可以使用 Cloud de Confiance 控制台中的 JobSet 資訊主頁,以視覺化方式呈現及監控 GPU 工作負載:
節點健康指標
下列節點層級指標適用於所有節點,包括含有 GPU 的節點:
-
kubernetes.io/node/status_condition:這項指標需要 GKE 1.32.1-gke.1357001 以上版本。
節點中斷和節點集區中斷指標也適用於非 TPU 節點。
JobSet 的 kube-state-metrics
JobSet 的 kube-state-metrics 可與 GPU 搭配使用。如要收集這些指標,必須使用 GKE 1.32.1-gke.1357001 以上版本。詳情請參閱 JobSet 指標說明文件。
處理節點維護作業造成的中斷
託管 GPU 的 GKE 節點會受到維護事件或其他中斷情形影響,可能導致節點關閉。在控制層執行 1.29.1-gke.1425000 以上版本的 GKE 叢集中,您可以設定 GKE 妥善終止工作負載,減少對工作負載的干擾。
如要瞭解、設定及監控執行 AI/機器學習工作負載的 GKE 節點上可能發生的中斷事件,請參閱「管理 GPU 和 TPU 的 GKE 節點中斷情形」。
後續步驟
- 瞭解如何在 Standard 節點集區中執行 GPU。
- 瞭解如何在 Standard 模式中使用 GPU 訓練模型。
- 瞭解如何在 Autopilot 部署 GPU 工作負載。
- 瞭解如何使用多實體 GPU。
- 進一步瞭解分時 GPU。
- 瞭解 Cluster Toolkit 中的 GKE 部署選項。