執行 GPU 工作負載的團隊常需在利用率與記憶體、吞吐量及延遲需求之間取得平衡。 不同類型的顯示卡容量不同,某些工作負載不需要實體顯示卡提供的所有資源。 為每個工作負載指派一整顆 GPU 可能會讓容量閒置,而選擇較小的 GPU 容量則可能無法符合工作需求。 這些不匹配使得隨著需求變化,更有效率地利用可用容量變得更加困難。
多實例 GPU(MIG)將 相容的 NVIDIA GPU 劃分為具有專用運算與記憶體資源的分割區。 在 AKS 叢集中,工作負載透過 Kubernetes 擴展資源請求這些分割區。 多個工作負載可以共用一個實體 GPU,分割區大小會依需求匹配,而非每個工作負載都需要整個 GPU。
MIG支援兩種策略。 採用單一策略時,節點池中的每個分割區使用相同的配置檔,節點將每個分割區宣告為標準 GPU 資源,例如 nvidia.com/gpu。 採用混合策略時,節點池可以合併多個設定檔,節點會以各設定檔各自的資源名稱來通告各設定檔,例如 nvidia.com/mig-1g.5gb。
當多個工作需要相同的分割區大小時,選擇單一策略。 當工作負載需要不同大小時,選擇混合策略。 將分割區與工作負載需求相匹配可以提升 GPU 利用率,但正確的配置取決於實際的記憶體與吞吐量需求。
了解分區與 Kubernetes 資源
分割區是在 GPU 內對運算與記憶體的硬體配置。
設定檔定義分割區的大小,例如 1g.5gb。
佈局是指在 GPU 上設定的一組配置檔。
資源名稱是節點宣稱用於排程的 Kubernetes 擴充資源,工作負載會依名稱和數量請求它。 在 MIG 中,對一個 GPU 資源的請求可以代表一個分割區,而非整個實體 GPU。 分割記憶體取決於 GPU 型號,所以在寫工作負載清單前,請檢查節點所宣告的資源。
比較單一策略與混合策略
下表比較了單一策略與混合策略的工作流程。
| 考慮事項 | 單一策略 | 混合策略與混合佈局 |
|---|---|---|
| 分割區大小 | 一個設定檔會形成統一的佈局。 | 相容的清單會產生不同大小的分割區,或相同大小的重複分割區。 |
| 一個請求的 GPU 資源代表什麼 | 節點集區已設定描述檔的一個分割區。 | 請求的 MIG 配置檔中的一個分割區。 |
| 典型適用情境 | 工作負載相似,GPU 需求也相當。 | 工作負載對運算和記憶體的需求不同。 |
| 容量規劃 | 計算均勻大小的可用分割區。 | 分別為每種資源類型統計可用分割區。 |
| Kubernetes 資源名稱 | 一個共用的名稱,例如 nvidia.com/gpu。 |
每個設定檔一個名字,例如 nvidia.com/mig-1g.5gb。 |
| 配置指南 | 配置單一策略的 MIG 節點池 | 配置混合策略 MIG 節點池(預覽) |
支援的 GPU VM 大小
下表列出支援多實例 GPU 分割的 Azure VM 大小。
| VM 大小 | VM 系列 | GPU |
|---|---|---|
Standard_NC24ads_A100_v4 |
NC A100 v4 | A100 |
Standard_NC48ads_A100_v4 |
NC A100 v4 | A100 |
Standard_NC96ads_A100_v4 |
NC A100 v4 | A100 |
Standard_ND96asr_v4 |
ND A100 v4 | A100 |
Standard_ND112asr_A100_v4 |
ND A100 v4 | A100 |
Standard_ND120asr_A100_v4 |
ND A100 v4 | A100 |
Standard_ND96amsr_A100_v4 |
NDm A100 v4 | A100 |
Standard_ND112amsr_A100_v4 |
NDm A100 v4 | A100 |
Standard_ND120amsr_A100_v4 |
NDm A100 v4 | A100 |
Standard_ND96ams_A100_v4 |
NDm A100 v4 | A100 |
Standard_ND96ams_v4 |
NDm A100 v4 | A100 |
Standard_ND100isr_H100_v5 |
ND H100 v5 | H100 |
Standard_ND100is_H100_v5 |
ND H100 v5 | H100 |
Standard_ND50s_H100_v5 |
ND H100 v5 | H100 |
Standard_ND96isr_H100_v5 |
ND H100 v5 | H100 |
Standard_ND96is_H100_v5 |
ND H100 v5 | H100 |
Standard_ND92isr_H100_v5 |
ND H100 v5 | H100 |
Standard_ND92is_H100_v5 |
ND H100 v5 | H100 |
Standard_ND46s_H100_v5 |
ND H100 v5 | H100 |
Standard_NC40ads_H100_v5 |
NC H100 v5 | H100 |
Standard_NC80adis_H100_v5 |
NC H100 v5 | H100 |
使用單一策略 MIG 來滿足一致的資源需求
單一策略適合對計算與記憶體需求相似的工作負載。 統一分割區讓團隊共享 GPU,同時在 Kubernetes 清單中保留共同的 GPU 資源名稱。 當節點池服務於一致的工作負載類別時,這種一致性能簡化分配。
單一策略的取捨是資源名稱不描述分割區大小。 使用池選擇器或節點親和力來鎖定預期容量。 僅靠資源名稱無法區分 MIG 分割區與其他 MIG 節點池所宣告的完整 GPU,或區分不同單一策略池中的分割區大小。 沒有放置控制,Pod 可能會收到與應用程式尺寸假設不符的裝置。
若工作負載需求差異甚大,統一配置可能會使較大的隔間使用不足,或使較小的隔間不適合某些艙體。
根據不同資源需求,使用混合策略的 MIG
混合策略讓團隊能在同一張 GPU 上分配不同的分割區大小。 這種做法有助於共用池服務不同需求的工作負載,且每個 pod 分配相同大小會浪費容量或阻礙較大 GPU 工作負載的運行。
採用混合策略時,每種分割區類型都有獨特的 Kubernetes 資源名稱。 工作負載資訊清單會要求其所需的類型,因此大小選擇是明確的,而非僅依賴集區的統一配置。 團隊必須將這些請求納入應用程式容量規劃與部署設定的一部分。
混合策略的權衡是容量碎片化:即使其他分割區類型空閒,Pod仍可能持續待處理。 Kubernetes 不會合併較小的分割區,也不會自動調整布局以滿足需求。 新增相同布局的節點會增加該布局中已設定的類型容量,而非該布局中缺少的類型容量。 規劃組合時要考慮每個尺寸同時的需求,而不僅僅是 GPU 總使用率。
AKS 如何配置 MIG 的混合策略
在 AKS 中,混合策略同時設定分割區佈局與受管理裝置外掛。 AKS 負責面向 Kubernetes 的元件,而你則選擇支援的佈局並調整工作負載請求大小。 變更佈局需要更換節點集區和工作負載移轉。
為你的工作負載選擇策略
- 先比較具代表性的 GPU 工作負載,並選擇一個記憶體和運算能力足夠滿足需求的分割區。
- 對於需要相同規模的工作負載,使用單一策略。 當同時 GPU 資源需求包含多種規格時,使用混合佈局。
- 按資源類型規劃容量。 多餘的 GPU 記憶體或其他類型的未使用的分割區,並不保證 pod 能排程。
- 檢查主機 CPU 和記憶體容量,以及 GPU 分割區(MIG 不會移除其他排程限制)。
- 需要完整 GPU 的工作負載放在獨立的未分割池中,並驗證分散式工作負載是否符合 GPU 專屬的 MIG 能力。
- 規劃隨著工作負載遷移至替代池而進行的配置變更,並設定重疊池的配額及應用程式中斷控制。
下一步
要開始使用MIG特性與工作負載範例,請參考您所選MIG策略的指南:
- 配置單一策略的 MIG 節點池 ,用於統一分割區及共用的 Kubernetes GPU 資源名稱。
- 配置一個混合策略的 MIG 節點池(預覽), 用於混合佈局及特定設定檔的工作負載請求。
- 了解 GPU 節點可觀察性最佳實務