マイクロソフトは、AI ワークロード向けに地球規模の分散スケジューリング サービスを運営しており、このサービスを控えめに「シンギュラリティ」と名付けていることを明らかにしました。
マイクロソフトの従業員26人が共同執筆した印刷前の論文[PDF]に記載されているSingularityの目的は、ディープラーニングのワークロードの利用率を高めることで、このソフトウェア大手のコスト管理を支援することだとされている。
Singularity は、論文で「AI アクセラレータ (GPU、FPGA など) のグローバル フリート全体で、正確性やパフォーマンスに影響を与えることなく、ディープラーニング ワークロードを透過的にプリエンプトし、弾力的にスケーリングして高い利用率を実現できる、新しいワークロード対応スケジューラ」と説明されているもので、この目標を達成しています。
この論文では、Singularity自体よりもスケジューラに多くの時間を費やしていますが、システムのアーキテクチャを示すいくつかの数値も示されています。Singularityのパフォーマンス分析では、20コアのソケットを2つ備えたXeon Platinum 8168、サーバーあたり8基のV100モデルGPU、692GBのRAM、InfiniBandネットワークを備えたNvidia DGX-2サーバー上でのテスト実行について言及されています。Singularityには数十万基のGPUが搭載され、さらにFPGAやその他のアクセラレータも搭載されている可能性があり、Microsoftは少なくとも数万台のSingularityサーバーを保有していることになります。
シンギュラリティのアーキテクチャ。クリックして拡大
この論文は、Singularity のスケーリング技術とスケジューラに焦点を当てており、これらがコストを削減し信頼性を高める秘密であると主張している。
ソフトウェアはジョブをアクセラレータ リソースから自動的に切り離します。つまり、ジョブが拡大または縮小されるときは、「ワーカーがマップされるデバイスの数を変更するだけです。ジョブを実行する物理デバイスの数に関係なく、ジョブのワールド サイズ (ワーカーの合計数) は同じままなので、これはユーザーには完全に透過的です。」
これは、「レプリカ スプライシングと呼ばれる新しい技術により、同じデバイス上の複数のワーカーをわずかなオーバーヘッドでタイム スライスし、各ワーカーがデバイスのメモリ全体を使用できるようになる」ことで可能になりました。
- Google は、Borg クラスターがどのように進化してきたかを明らかにしましたが、依然としてリソースの使用率は約 60% にとどまっています (Alibaba の方が優れている可能性があります)。
- AWS、世界中にさらに32の小規模クラウドを構築へ
- Netflixは、マイクロサービス、非同期ワークフロー、サーバーレス関数の新しい組み合わせへの大規模な移行を発表
- IBM CloudがZシリーズメインフレームを初めて提供へ – ただしテストと開発向け
これを実現するには、著者らが「デバイスプロキシ」と呼ぶものが必要です。これは「独自のアドレス空間で実行され、物理アクセラレータデバイスと1対1で対応する」ものです。ジョブワーカーがデバイスAPIを開始すると、それらはインターセプトされ、共有メモリを介して別のアドレス空間で実行されるデバイスプロキシプロセスに送信されます。デバイスプロキシプロセスの有効期間は、ワーカープロセスの有効期間とは切り離されています。
これにより、より多くのジョブをより効率的にスケジュールできるようになり、数千台のサーバーの稼働時間が長くなります。また、中断することなく、迅速なスケールアップやスケールダウンも可能になります。
「Singularity は、ディープラーニング ワークロードのスケジューリングにおいて大きな進歩を遂げ、弾力性などのニッチな機能を、スケジューラが厳格な SLA を実装するために信頼できる主流の常時オン機能に変換します」と論文は結論付けています。
残念ながら、この論文ではマイクロソフト独自の研究や技術が公開されていることについては触れられていないが、同社の AI 運用については明らかにしている。®