技術指南

GPU調度和叢集編排

GPU 調度決定哪些作業在哪些加速器上運行以及何時運行,而編排則在整個機器叢集上協調這些作業。

概述

GPU 調度決定哪些作業在哪些加速器上運行以及何時運行,而編排則在整個機器叢集上協調這些作業。它們共同使昂貴的 GPU 對於許多用戶和工作負載而言保持忙碌、公平且可靠。

GPU 調度和叢集編排是一個技術構建塊,會大規模影響模型品質、基礎設施成本、延遲和可靠性。

深入探討

在共享的 AI 叢集中,數十個用戶爭奪稀缺的 GPU,每個 GPU 的成本可能高達數萬美元。調度程序將每個作業的要求(GPU 數量、記憶體、拓撲)與可用硬體相匹配,強制執行優先權和公平共享配額,並在叢集已滿時對工作進行排隊。編排更進一步:它放置容器、裝載資料、處理故障、重新啟動崩潰的工作線程,並將多節點分散式訓練縫合在一起。具有 NVIDIA 裝置外掛程式和附加元件(如 Volcano 或 Kueue)的 Kubernetes 可以處理群組調度,其中分散式作業的所有工作人員必須一起啟動,否則就沒有。良好的調度也尊重 GPU 互連拓撲,將需要快速 NVLink 通訊的隊列放在一起,以避免緩慢的跨節點瓶頸。

技術洞察

GPU 作為可數、不可分割的資源公開,因此調度程序像整數一樣追蹤它們,而不是可共享的 CPU 週期。組(或共同)調度至關重要:如果只授予 60 個 GPU,則具有 64 個等級的分散式訓練作業會出現死鎖,因此排程器必須進行全有或全無分配。拓樸感知佈局讀取 NVLink 和 InfiniBand 佈局,以保持緊密的通訊等級,最大限度地減少主導大型模型訓練的 all-reduce 延遲。

掌握 GPU 調度與叢集編排

GPU 調度決定哪些作業在哪些加速器上運行以及何時運行,而編排則在整個機器叢集上協調這些作業。它們共同使昂貴的 GPU 對於許多用戶和工作負載而言保持忙碌、公平且可靠。 GPU 調度和叢集編排是一個技術構建塊,會大規模影響模型品質、基礎設施成本、延遲和可靠性。為了建立深入的理解,請將 GPU 調度和叢集編排視為一種操作模型,而不是單一功能:定義所需的結果,澄清假設,並將系統可以可靠地執行的操作與仍需要專家判斷的操作分開。

在實踐中,使用 GPU 調度和叢集編排的強大團隊根據可靠性和成本優化架構、資料和基礎設施選擇。他們記錄明確的成功標準,根據實際數據和工作流程進行測試,並根據觀察到的失敗模式而不是一次性基準測試勝利進行迭代。這就是理論理解轉變為跨產品、政策和營運的持久能力的地方。

多年來,架構決策決定著效能和營運成本。同時,優化一個基準測試可以隱藏更廣泛的系統弱點。最具彈性的方法是將實驗速度與治理規則結合:運行試點、捕獲證據、發布決策日誌,並隨著模型行為、使用者期望和監管要求的發展不斷更新保障措施。

戰略影響

多年來,架構決策決定著效能和營運成本。

多年來,架構決策決定著效能和營運成本。在高品質部署中,這會轉化為可衡量的操作規則、所有權邊界和定期審查儀式,以便團隊可以增強信心,而不是擴大模糊性。

技術教育幫助團隊選擇正確的堆疊,而不僅僅是最新的堆疊。

技術教育幫助團隊選擇正確的堆疊,而不僅僅是最新的堆疊。在高品質部署中,這會轉化為可衡量的操作規則、所有權邊界和定期審查儀式,以便團隊可以增強信心,而不是擴大模糊性。

更好的工程選擇可以減少生產中的可靠性事故。

更好的工程選擇可以減少生產中的可靠性事故。在高品質部署中,這會轉化為可衡量的操作規則、所有權邊界和定期審查儀式,以便團隊可以增強信心,而不是擴大模糊性。

GPU 調度和叢集編排的未來

調度程序在部分和分時 GPU、MIG 感知裝箱和搶佔方面變得越來越智能,檢查點作業以回收更高優先級工作的容量。期望與能源和成本優化、現場容量重用以及自動組調度進行更深入的集成,以實現增加或減少工人數量的彈性訓練。隨著叢集擴展到數萬個 GPU,能夠承受頻繁硬體故障的容錯編排變得至關重要。

現實世界的實施

研究實驗室使用公平份額配額,因此任何一個團隊都無法在其他團隊排隊等待時獨佔所有 GPU。

Kubernetes 與 Volcano gang-scheduled 32-GPU 訓練作業,以便每個工作人員立即啟動,防止部分分配死鎖。

調度程序會搶佔低優先級實驗,對其進行檢查點,並釋放 GPU 以進行緊急生產重新訓練運行。

拓樸感知佈局將八個列並置在一個 NVLink 連接的節點上,以加速梯度全歸約。

實施模式

GPU調度與叢集編排實踐

研究實驗室使用公平份額配額,因此任何一個團隊都無法在其他團隊排隊等待時獨佔所有 GPU。

研究實驗室使用公平份額配額,因此當其他團隊在隊列中等待時,任何一個團隊都無法獨佔所有 GPU。當團隊預先定義品質閾值、為邊緣情況保留人工升級路徑並追蹤一段時間內的生產力提升和錯誤成本時,通常會獲得更好的結果。

GPU調度與叢集編排實踐

Kubernetes 與 Volcano gang-scheduled 32-GPU 訓練作業,以便每個工作人員立即啟動,防止部分分配死鎖。

帶有 Volcano 的 Kubernetes 會安排 32 個 GPU 的訓練作業,以便每個工作人員立即開始,從而防止部分分配死鎖。當團隊預先定義品質閾值、為邊緣情況保留人工升級路徑並隨著時間的推移追蹤生產力增益和錯誤成本時,通常會得到更好的結果。

GPU調度與叢集編排實踐

調度程序會搶佔低優先級實驗,對其進行檢查點,並釋放 GPU 以進行緊急生產重新訓練運行。

調度程序會搶佔低優先級實驗,對其進行檢查點,並釋放 GPU 以進行緊急的生產再訓練運行。當團隊預先定義品質閾值、為邊緣情況保留人工升級路徑並隨著時間的推移追蹤生產力增益和錯誤成本時,通常會獲得更好的結果。

GPU調度與叢集編排實踐

拓樸感知佈局將八個列並置在一個 NVLink 連接的節點上,以加速梯度全歸約。

拓樸感知佈局將八個等級並置在一個 NVLink 連接的節點上,以加速梯度全歸約。當團隊預先定義品質閾值、為邊緣情況保留人工升級路徑並隨著時間的推移追蹤生產力增益和錯誤成本時,通常會獲得更好的結果。

風險與防護欄

!

優化一項基準測試可以隱藏更廣泛的系統弱點。

!

基礎設施和維護成本常常被低估。

!

隨著系統變得更加複雜,安全性和可觀察性差距可能會擴大。

實施路線圖

1

在實施之前定義延遲、品質和成本目標。

在實施之前定義延遲、品質和成本目標。將每個步驟視為證據門:如果不符合標準,則暫停推出,縮小差距,然後再擴大使用。

2

在實際負載和資料條件下進行基準測試。

在實際負載和資料條件下進行基準測試。將每個步驟視為證據門:如果不符合標準,則暫停推出,縮小差距,然後再擴大使用。

3

儀器監控錯誤、漂移和使用者影響。

儀器監控錯誤、漂移和使用者影響。將每個步驟視為證據門:如果不符合標準,則暫停推出,縮小差距,然後再擴大使用。

4

在擴展之前準備回滾和事件回應路徑。

在擴展之前準備回滾和事件回應路徑。將每個步驟視為證據門:如果不符合標準,則暫停推出,縮小差距,然後再擴大使用。

不斷探索