HiveD 是深度學習工作負載的調度程式。
作為 Microsoft OpenPAI 的一個獨立元件,HiveD 被設計為用於多租戶GPU叢集的 Kubernetes 調度程式擴展器。多租戶GPU叢集假設多個租戶(團隊)在單一實體叢集(PC)中共享同一個GPU池,並為每個租戶提供一定的資源保證。 HiveD將每個租用戶建模為虛擬叢集(VC),這樣一個租用戶可以像私有叢集一樣使用自己的VC,同時也可以以較低的優先權使用其他VC的空閒資源。
HiveD 為深度學習工作負載提供了以下幾個關鍵功能。
HiveD 的殺手級功能是它為每個 VC 提供資源保證,不僅在數量、數值方面,而且在拓撲方面,這是基於 GPU 的訓練作業的關鍵要求。例如,傳統的調度器保證一個VC可以使用8個GPU。但是,它不知道這 8 個 GPU 的拓撲。即使 VC 仍有 8 個空閒 GPU,也可能無法指派必須在單一節點內執行的 8-GPU 訓練作業。這是因為這 8 個空閒 GPU 可能屬於多個節點。
HiveD 根據cell保護 VC 資源,cell 是使用者定義的資源類型,對數量和其他類型的資訊(例如拓樸和硬體類型)進行編碼。在上面的範例中,使用者可以定義8-GPU節點的單元類型,並且可以為VC分配這樣的單元之一。然後,HiveD 將確保始終有一個 8-GPU 節點可用於 VC ,而不管叢集中的其他工作負載如何。
HiveD 允許靈活的單元定義,以實現細粒度的資源保證。例如,使用者可以針對不同的裝置型號(例如,NVIDIA V100 GPU、AMD Radeon MI100 GPU、Cloud TPU v3)或網路配置(例如,InfiniBand 域)在多個拓撲層級(例如 PCI-e 交換器)定義單元。一個VC可以有多種類型的cell,HiveD會保證所有的cell。
HiveD 優化了群組調度的效能,這是深度學習訓練作業的典型排程要求,其中應在訓練作業開始之前指派所有容器。多個團夥調度的作業競爭同一組資源可能會導致飢餓,其中每個作業只能獲得部分資源並且必須無限期等待。
HiveD 以事務方式調度作業中的所有容器,即所有這些容器的要求將作為一個整體被授予或拒絕,從而避免部分資源分配和飢餓。
HiveD 支援多個作業優先順序。較高優先順序的作業可以搶佔較低優先順序的作業。 HiveD還引入了機會性作業,即優先順序最低的作業,可以在可能的情況下使用其他VC的免費資源(不破壞對其他VC的資源保證)。
多租戶:虛擬集群 (VC)
細粒度VC資源保障:數量、拓樸、類型、固定VC資源等。
靈活的VC內調度:拓樸感知、靈活的硬體類型、固定VC資源、調度策略客製化等。
優化資源碎片並減少飢餓
優先順序、低優先順序的過度使用以及 VC 間/VC 內搶佔
作業(全部/部分)群組調度/搶佔
容錯、不良硬體感知、工作保留重新配置
雲端上或本地的 Kubernetes 集群,v1.14.2 或更高版本。
配置調度程序
運行調度程序
將工作負載提交給調度程序
使用者手冊
功能演示
設計
DockerHub
FrameworkController:通用 Kubernetes Pod 控制器,可以輕鬆利用 HiveD 來排程作業。
OpenPAI:完整的AI平台解決方案。 HiveD 與 OpenPAI 搭配使用時將更友善使用者。
該項目歡迎貢獻和建議。 大多數貢獻都要求您同意貢獻者授權協議 (CLA),聲明您有權並且實際上授予我們使用您的貢獻的權利。有關詳細信息,請訪問 https://cla.opensource.microsoft.com。
當您提交拉取請求時,CLA 機器人將自動確定您是否需要提供 CLA 並適當地裝飾 PR(例如,狀態檢查、評論)。只需按照機器人提供的說明進行操作即可。您只需使用我們的 CLA 在所有儲存庫中執行一次此操作。
該專案採用了微軟開源行為準則。有關詳細信息,請參閱行為準則常見問題解答或聯繫 [email protected] 提出任何其他問題或意見。
如果 HiveD 對您的研究有幫助,請在您的出版物中引用它:
@inproceedings {hived-osdi2020, author = {Hanyu Zhao and Zhenhua Han and Zhi Yang and Quanlu Zhang and Fan Yang and Lidong Zhou and Mao Yang and Francis C.M. Lau and Yuqi Wang and Yifan Xiong and Bin Wang}, title = {{HiveD}: Sharing a {GPU} Cluster for Deep Learning with Guarantees}, booktitle = {14th {USENIX} Symposium on Operating Systems Design and Implementation ({OSDI} 20)}, year = {2020}, isbn = {978-1-939133-19-9}, pages = {515--532}, url = {https://www.usenix.org/conference/osdi20/presentation/zhao-hanyu}, publisher = {{USENIX} Association}, month = nov, }