HiveD は、深層学習ワークロード用のスケジューラーです。
Microsoft OpenPAI のスタンドアロン コンポーネントの 1 つである HiveD は、マルチテナントGPUクラスター用の Kubernetes スケジューラーエクステンダーとして設計されています。マルチテナント GPU クラスターは、複数のテナント (チーム) が単一の物理クラスター (PC) 内の同じ GPU プールを共有することを前提としており、各テナントにある程度のリソース保証を提供します。 HiveD は各テナントを仮想クラスター (VC) としてモデル化するため、1 つのテナントはプライベート クラスターであるかのように自身の VC を使用できる一方で、他の VC の空きリソースを低い優先順位で使用することもできます。
HiveD は、次のような深層学習ワークロード用のいくつかの主要な機能を提供します。
HiveD を際立たせるキラー機能は、量や数値の観点だけでなく、GPU ベースのトレーニング ジョブの重要な要件であるトポロジの観点からも各 VC にリソースを保証することです。たとえば、従来のスケジューラは、VC が 8 つの GPU を使用できることを保証します。ただし、これら 8 つの GPU のトポロジーはわかりません。単一ノード内で実行する必要がある 8 GPU トレーニング ジョブは、VC にまだ 8 つの空き GPU がある場合でも割り当てられない可能性があります。これは、これら 8 つの空き GPU が複数のノードに属する可能性があるためです。
HiveD は、VC のリソースをcellという観点から保護します。これは、量と、トポロジやハードウェア タイプなどの他の種類の情報の両方をエンコードするユーザー定義のリソース タイプです。上記の例では、ユーザーは 8 GPU ノードのセル タイプを定義でき、VC にはそのようなセルの 1 つを割り当てることができます。その後、HiveD は、クラスター内の他のワークロードに関係なく、 VC で使用可能な 8-GPU ノードが常に 1 つあることを保証します。
HiveD では、きめ細かいリソース保証のための柔軟なセル定義が可能です。たとえば、ユーザーは、さまざまなデバイス モデル (NVIDIA V100 GPU、AMD Radeon MI100 GPU、Cloud TPU v3 など)、またはネットワーク構成 (InfiniBand ドメインなど) に対して、複数のトポロジ レベル (PCI-e スイッチなど) でセルを定義できます。 。 VC にはさまざまな種類のセルを含めることができ、HiveD はそれらすべてを保証します。
HiveD は、ディープ ラーニング トレーニング ジョブの一般的なスケジューリング要件であるギャング スケジューリングのパフォーマンスを最適化します。トレーニング ジョブを開始する前にすべてのコンテナーを割り当てる必要があります。同じリソース セットをめぐって複数のギャング スケジュールされたジョブが競合すると、各ジョブが部分的なリソースしか取得できず、無限に待機しなければならない飢餓状態が発生する可能性があります。
HiveD は、ジョブ内のすべてのコンテナーをトランザクション方式でスケジュールします。つまり、これらすべてのコンテナーの要件が全体として許可または拒否されるため、部分的なリソースの割り当てと枯渇が回避されます。
HiveD は複数のジョブの優先順位をサポートします。優先度の高いジョブは、優先度の低いジョブを優先することができます。 HiveD はまた、便宜的なジョブ、つまり、可能な場合に (他の VC に対するリソースの保証を破ることなく) 他の VC の空きリソースを使用できる、優先度が最も低いジョブを導入します。
マルチテナンシー: 仮想クラスター (VC)
きめ細かい VC リソース保証: 数量、トポロジー、タイプ、固定された VC リソースなど。
柔軟な VC 内スケジューリング: トポロジ認識、柔軟なハードウェア タイプ、固定された VC リソース、スケジューリング ポリシーのカスタマイズなど。
最適化されたリソースの断片化と飢餓の軽減
優先順位、低優先順位でのオーバーユース、VC 間/VC 内のプリエンプション
ジョブ (完全/部分) ギャング スケジューリング/プリエンプション
フォールトトレランス、不良ハードウェア認識、作業維持再構成
クラウドまたはオンプレミスの Kubernetes クラスター v1.14.2 以降。
構成スケジューラ
スケジューラの実行
ワークロードをスケジューラに送信する
ユーザーマニュアル
機能デモ
デザイン
ドッカーハブ
FrameworkController: HiveD を簡単に利用してジョブをスケジュールできる汎用 Kubernetes ポッド コントローラー。
OpenPAI: AI プラットフォームの完全なソリューション。 HiveD は、OpenPAI と連携して動作すると、よりユーザーフレンドリーになります。
このプロジェクトは貢献と提案を歓迎します。 ほとんどの投稿では、投稿を使用する権利をお客様が有しており、実際に当社に付与することを宣言する投稿者ライセンス契約 (CLA) に同意する必要があります。詳細については、https://cla.opensource.microsoft.com をご覧ください。
プル リクエストを送信すると、CLA ボットが CLA を提供する必要があるかどうかを自動的に判断し、PR を適切に装飾します (ステータス チェック、コメントなど)。ボットが提供する指示に従ってください。 CLA を使用するすべてのリポジトリでこれを 1 回行うだけで済みます。
このプロジェクトはマイクロソフトのオープンソース行動規範を採用しています。詳細については、行動規範に関する FAQ を参照するか、追加の質問やコメントがあれば [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, }