Dharma AI GPU 管理:透過約束感知分配提高集群利用率

Dharma AI 推出了一款約束感知 GPU 分配器,旨在優化集群利用率與優先級加權輸出。透過改變分配決策的順序而非硬體,該系統在七個基準測試場景中,與先來先服務 (FIFO) 調度器相比,將 GPU 利用率提高了多達 33 個百分點,並將優先級加權輸出提高了多達 105%。

核心問題:不相容的工作負載形狀

GPU 調度因兩種根本不同的分配形狀之間的競爭而變得複雜:

  1. 批次型工作負載:訓練、批次推理與量化。這些需要連續的 GPU 區塊,且在完成前不得中斷。
  2. 彈性工作負載:即時推理,由隨每個時間步長波動的需求曲線驅動。

當這些不相容的形狀競爭相同的硬體時,傳統的 FIFO 調度器會造成顯著的低效率。FIFO 調度器通常依賴於即時推理的固定預留,以保證可用性,這意味著 GPU 在流量低谷期間會被佔用,且無法提供給批次任務,導致利用率低下。

約束感知分配 vs. FIFO

FIFO 調度以兩種主要方式消耗容量:透過在非尖峰時段讓 GPU 閒置的靜態預留,以及透過忽略任務優先級與未來容量需求的排序過程。

相比之下,Dharma AI 的分配器將即時需求視為一條曲線而非一個上限。它根據每個時間步長的即量需求來分配 GPU,並允許批次型工作佔用低谷時段。為了確保安全性,系統對即時任務在連續時間步長之間可以進行的 GPU 切換次數設定了上限。

性能基準測試

在五個高競爭場景中,分配器同時提高了利用率與優先級加權價值:

  • 利用率:從 52–85% 的區間提高到 72–88% 的區間。
  • 優先級加權價值:增長了 24.6% 至 105.1%,平均增幅為 52%。

在一個使用 8 個 GPU 的訓練密集型工作負載中,利用率從 53.6% 提高到 87.0%,價值增長了 105%。值得注意的是,在一個使用 64 個 GPU 與 30 個任務的規模測試中,分配器在利用率 (44.9%) 與吞吐量 (27/30 任務) 與 FIFO 基線相同的情況下,提供了多出 15.9% 的優先級加權價值,證明了優先級感知分配對於價值產生的關鍵作用。

技術實現與約束

為了避免局部啟發式規則的限制,分配器使用正式模型來根據五個約束來定義合法分配:

  • 每個 GPU 在每個時間步長最多服務一個任務。
  • 每個任務都遵循其需求範圍,且正在運行的工作會被繼承並保留。
  • 批次型任務佔用連續的 GPU 區塊(大小為 2 的冪次)。
  • 即時任務在連續時間步長之間進行 GPU 切換的次數受到硬性上限限制。
  • 已啟動的任務無法被中斷。

目標函數

系統使用一個包含兩個項目的目標函數:為批次型任務分配 GPU 的獎勵(優先級乘以時間衰減權重)以及未能滿足即時需求的懲罰。即時需求的懲罰權重比分配獎勵高出 5 到 10 倍,確保在不需要靜態預留的情況下,優先處理延遲義務而非批次工作。

啟發式執行

由於組合分配是 NP-hard 問題,系統在熱路徑 (hot path) 上採用了啟發式方法以確保低延遲。在競爭場景下,分配器運行 1 到 2 毫秒,對於 64-GPU 集群,運行時間為 15 毫秒,這使其足以夠快地在每個傳入請求上運行。

需求預測與專業化

分配器的有效性取決於準確的需求預測。Dharma AI 利用針對不同工作負載類型的專業化估計器:

  • 訓練:使用包含 22 個特徵的預測器,包括 10 種具體的訓練變體(例如,LoRA 與全量微調),以解釋 GPU 記憶體與持續時間的巨大差異。
  • 量化:基於參數數量與演算法(例如,AWQ, GPTQ)的量化分級進行專用預測。
  • 即時推理:根據每小時流量歷史重建的、持續重新校準的週需求概況。

運營策略:優化全天,承諾當前小時

為了減輕預測誤差,調度器優化 24 小時的視野範圍,但僅承諾當前時間步長。系統每 30 到 60 分鐘重新運行一次,允許透過重新優化來吸收預測誤差,而非使其惡化。這種方法防止了「末日效應」(end-of-world effect),即優化器因為無法看見其視野範圍之外的內容,而做出錯誤的當前決策。

Sources

相關

  • Dispatch
  • 專案
  • 專案
  • 專案
  • Dispatch