[論文レビュー] Singularity: Planet-Scale, Preemptive and Elastic Scheduling of AI Workloads
Singularity は、グローバルな GPU およびアクセラレータ フレート全体にわたって、変更のないディープラーニング ジョブを完全にプリエンプティブかつエラスティックに実行できる、画期的で透明性のあるスケジューリングシステムです。デバイスプロキシとレプリカ スプライシングを介してジョブと物理デバイスを分離することで、低オーバーヘッドでオンデマンドのチェックポイント作成とライブマイグレーションを実現し、パフォーマンスへの影響を最小限に抑えます。これにより、ユーザーのコード変更なしに高いリソース利用率と厳格な SLA を達成できます。
Lowering costs by driving high utilization across deep learning workloads is a crucial lever for cloud providers. We present Singularity, Microsoft's globally distributed scheduling service for highly-efficient and reliable execution of deep learning training and inference workloads. At the heart of Singularity is a novel, workload-aware scheduler that can transparently preempt and elastically scale deep learning workloads to drive high utilization without impacting their correctness or performance, across a global fleet of AI accelerators (e.g., GPUs, FPGAs). All jobs in Singularity are preemptable, migratable, and dynamically resizable (elastic) by default: a live job can be dynamically and transparently (a) preempted and migrated to a different set of nodes, cluster, data center or a region and resumed exactly from the point where the execution was preempted, and (b) resized (i.e., elastically scaled-up/down) on a varying set of accelerators of a given type. Our mechanisms are transparent in that they do not require the user to make any changes to their code or require using any custom libraries that may limit flexibility. Additionally, our approach significantly improves the reliability of deep learning workloads. We show that the resulting efficiency and reliability gains with Singularity are achieved with negligible impact on the steady-state performance. Finally, our design approach is agnostic of DNN architectures and handles a variety of parallelism strategies (e.g., data/pipeline/model parallelism).
研究の動機と目的
- グローバルな AI アクセラレータ(GPU、FPGA など)のフレート全体でリソースの無駄を排除し、余剰容量を機会的かつ効果的に活用することで、スループットを最大化すること。
- 動的リソース割り当てとプリエンプションが行われる中でも、トレーニングおよびインフェレンス ワークロードに対して強固なジョブ単位の SLA を提供すること。
- プリエンプションポイントからの再開を可能にすることで、長時間実行される DNN ジョブの信頼性を向上させ、高コストの再起動を回避すること。
- エラスティシティとプリエンプションを、変更のないすべての DNN ジョブに対して、カスタム ライブラリやハイパーパramータのチューニングを必要とせずに、一等級の透明な機能として実現すること。
- デバイスプロキシとレプリカ スプライシングを用いてジョブ実行を物理ハードウェアから分離し、最小限のオーバーヘッドで動的マイグレーションとリサイズを可能にすること。
提案手法
- GPU デバイスの状態をワーカープロセスから分離するデバイスプロキシ抽象化を導入し、クリーンなチェックポイント作成とマイグレーションを可能にします。
- 複数の DNN ワーカーを同じ物理デバイス上で時間スライスで実行するレプリカ スプライシングを採用し、メモリの類似性を活用することで、完全なメモリアクセスと低オーバーヘッドを実現します。
- ミニバッチの境界で同期バリアを用いることで、アプリケーションレベルの整合性を持つチェックポイントを作成し、ライブマイグレーションを可能にします。
- 同じ数の論理ワーカーを、設定変更なしに異なる数の物理アクセラレータに再マッピングすることで、ジョブの動的リサイズを実現します。
- CRIU を活用して効率的かつ透明にプロセスのチェックポイント作成とマイグレーションを実行し、オーバーヘッドを低減するための意味論に配慮した最適化を実施します。
- プリエンプションとエラスティシティを階層的かつグローバル分散型スケジューラに統合した、一等級のスケジューリングプリミティブとして扱います。
実験結果
リサーチクエスチョン
- RQ1アプリケーションレベルの変更なしに、クラスターやリージョンをまたいでディープラーニング ワークロードを完全にプリエンプティブかつマイグレート可能にするにはどうすればよいですか?
- RQ2トレーニング ループの変更やカスタム ライブラリの必要なしに、変更のない DNN トレーニング ジョブに対して透明なエラスティシティを実現できますか?
- RQ3メモリの類似性を活用し、性能への影響を最小限に抑えながら、異種かつ分散型の DNN 環境で低オーバーヘッドかつ整合性のあるチェックポイント作成を実現するにはどうすればよいですか?
- RQ4リソース断片化を回避しながら、グローバル分散型 AI インfraストラクチャで高いリソース利用率と厳格な SLA を実現するためのアーキテクチャ的メカニズムは何か?
- RQ5動的リソーススケーリングを透明に実現することで、統計的効率性とスループットの両方を高められるシステムを構築できますか?
主な発見
- Singularity は、リモート地域やデータセンター間で変更のない DNN ジョブを透明にプリエンプションおよびマイグレーション可能にし、安定状態でのパフォーマンスへの影響を最小限に抑えます。
- デバイスプロキシとレプリカ スプライシングの活用により、複数のワーカーが同じ GPU を完全なメモリアクセスで共有でき、パフォーマンス劣化を最小限に抑えます。
- すべてのジョブが安全な同期ポイント(例:ミニバッチの終了時)で自動的にチェックポイント作成され、プリエンプション後に信頼性高く再開可能になります。
- エラスティシティは完全に透明です。ジョブは同じ数のワーカーとハイパーパramータを維持したまま、物理アクセラレータの数に応じて動的に再マッピングされます。
- システムは、SLA を侵害せずに余剰容量を機会的かつ効果的に活用することで、数十万枚の GPU を含むグローバルなフレート全体で高いリソース利用率を達成しています。
- ジョブとハードウェアを分離し、作業を最適化するマイグレーションを可能にすることで、Singularity は無駄なコンピューティングを削減し、長時間実行されるトレーニング ジョブの信頼性を向上させています。
より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。