GPU調度和叢集編排
GPU 調度決定哪些作業在哪些加速器上運行以及何時運行,而編排則在整個機器叢集上協調這些作業。
概述
它們共同讓昂貴的 GPU 對許多使用者和工作負載保持忙碌、公平且可靠。
深入探討
在共享的 AI 叢集中,數十個用戶爭奪稀缺的 GPU,每個 GPU 的成本可能高達數萬美元。調度程序將每個作業的要求(GPU 數量、記憶體、拓撲)與可用硬體相匹配,強制執行優先權和公平共享配額,並在叢集已滿時對工作進行排隊。編排更進一步:它放置容器、裝載資料、處理故障、重新啟動崩潰的工作線程,並將多節點分散式訓練縫合在一起。具有 NVIDIA 裝置外掛程式和附加元件(如 Volcano 或 Kueue)的 Kubernetes 可以處理群組調度,其中分散式作業的所有工作人員必須一起啟動,否則就沒有。良好的調度也尊重 GPU 互連拓撲,將需要快速 NVLink 通訊的隊列放在一起,以避免緩慢的跨節點瓶頸。
技術洞察
GPU 作為可數、不可分割的資源公開,因此調度程序像整數一樣追蹤它們,而不是可共享的 CPU 週期。群組(或共同)調度至關重要:如果只授予 60 個 GPU,則具有 64 級的分散式訓練作業會出現死鎖,因此排程器必須進行全有或全無分配。拓樸感知佈局讀取 NVLink 和 InfiniBand 佈局,以保持緊密的通訊等級,最大限度地減少主導大型模型訓練的 all-reduce 延遲。
戰略影響
成本與預算
多年來,架構決策決定著效能和營運成本。
更明確的決策
技術教育幫助團隊選擇正確的堆疊,而不僅僅是最新的堆疊。
品質管控
更好的工程選擇可以減少生產中的可靠性事故。
GPU 调度和集群编排的未来
調度程序在部分和分時 GPU、MIG 感知裝箱和搶佔方面變得越來越智能,檢查點作業以回收更高優先級工作的容量。期望與能源和成本優化、現場容量重用以及自動組調度進行更深入的集成,以實現彈性訓練,從而增加或減少工人數量。隨著叢集擴展到數萬個 GPU,能夠承受頻繁硬體故障的容錯編排變得至關重要。
現實世界的實施
研究實驗室使用公平份額配額,因此任何一個團隊都無法在其他團隊排隊等待時獨佔所有 GPU。
Kubernetes 與 Volcano gang-scheduled 32-GPU 訓練作業,以便每個工作人員立即啟動,防止部分分配死鎖。
調度程序搶佔低優先級實驗,對其進行檢查點,並釋放 GPU 以進行緊急生產重新訓練運行。
拓樸感知佈局將八個列並置在一個 NVLink 連接的節點上,以加速梯度全歸約。
風險與防護欄
優化一項基準測試可以隱藏更廣泛的系統弱點。
基礎設施和維護成本常常被低估。
隨著系統變得更加複雜,安全性和可觀察性差距可能會擴大。
實施路線圖
在實施之前定義延遲、品質和成本目標。
在實際負載和資料條件下進行基準測試。
儀器監控錯誤、漂移和使用者影響。
在擴展之前準備回滾和事件回應路徑。
不斷探索
Free newsletter
Get the daily AI briefing
Three verified AI stories every weekday morning, written in plain English. Free forever, no ads.
One email each weekday. Unsubscribe in one click. We never sell or share your address.
Test yourself
Take the GPU Scheduling and Cluster Orchestration quiz
Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.
Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation
常見問題
什麼是 GPU 排程與叢集協調?
GPU 調度決定哪些作業在哪些加速器上運行以及何時運行,而編排則在整個機器叢集上協調這些作業。它們共同使昂貴的 GPU 對於許多用戶和工作負載而言保持忙碌、公平且可靠。
為什麼分組調度對於分散式訓練作業很重要?
分散式訓練需要所有隊伍同時運作;全有或全無的組別計畫可以防止部分分配掛起。
調度程序通常如何將 GPU 建模為資源?
GPU 通常被視為可數的整體單元,與可任意切片的 CPU 份額不同。
拓樸感知調度試圖優化什麼?
它將交換資料的佇列放在同一位置,以便它們使用高頻寬鏈路,從而減少通訊延遲。
哪個附加元件通常與 Kubernetes 一起用於 AI 作業的批次和群組調度?
Volcano(和 Kueue)增加了普通 Kubernetes 對於 AI 工作負載所缺乏的批次和群組調度功能。
GPU 調度程式中搶佔的用途是什麼?
搶佔暫停或檢查點較低優先級作業,以便緊急的較高優先級工作可以佔用 GPU。