SkyPilot、NVL72向け新スケジューラ 使えるGPU27%増

電子部品を手に持つ様子 AI

AIの学習や推論のジョブを各種クラウドで動かすオープンソースのツールSkyPilotが、NVIDIAのラック型GPUサーバー「NVL72」向けの割り当て方式を公開しました。NVL72は72基のGPUを1台の大きな計算機のようにつなぐ製品で、ジョブをどのラックに置くかで速度が大きく変わります。SkyPilotは、1ラックを16ノード単位で使い、残りを故障時の予備に回す方式を提案しました。NVIDIAの容量モデルを使った試算では、従来の分け方より実際に使えるGPUが27%増えます。高価なGPUを無駄なく使う工夫が、学習コストを直接左右する段階に入っています。

背景と文脈

大きなAIモデルは、1基のGPUには収まりません。そのため1つのモデルを何十基ものGPUに分けて計算します。代表的な分け方がテンソル並列(モデルの1つの層を複数のGPUで分担して同時に計算する方法)です。MoEモデルでは、エキスパート並列(専門家ネットワークを別々のGPUに置き、必要な所へデータを送る方法)も使います。どちらもGPU同士が頻繁にデータをやり取りするため、配線の速さが性能を決めます。

NVL72は、この配線を1ラック単位で極端に速くした製品です。18ノードに4基ずつ、計72基のGPUを、NVLink(GPU同士を直結するNVIDIAの高速な接続)で全部つないでいます。1基あたりの帯域は双方向で毎秒1.8TBです。一方、ラックをまたぐとInfiniBand(サーバー同士をつなぐ高速ネットワーク)に頼ることになり、帯域は片方向で毎秒400Gbitに落ちます。Hugging Faceの測定では、テンソル並列をNVLinkからInfiniBandに移すと学習の処理量が43%落ちました。

問題は、共有のクラスターではジョブが終わる時刻がばらばらな点です。空いたノードがあちこちのラックに散らばり、GPUの数は足りているのに1ラックにまとめて置けない状態が生まれます。単純なスケジューラーは、こうした場合にジョブを複数のラックへ分けてしまいます。

技術/ビジネス面

サーバーにつながるケーブル
Photo by Randall Bruder on Unsplash

故障の扱いも難題です。SkyPilotのブログは、Metaの測定値を使って見積もりを示しました。4基のGPUを積むノードは平均約490日に1回止まります。ラックには18ノードあるため、ラックのどこかで止まる頻度は約27日に1回になります。128ラックのクラスターで1ラック丸ごとのジョブを動かすと、約5時間ごとにどれかのラックが使えなくなる計算です。

SkyPilotの答えは「スライス」という単位です。ジョブを16ノードずつに区切り、1つのスライスは必ず1ラックの中に置きます。1ラック18ノードのうち2ノードは予備として空けておき、故障したら同じラックの予備と入れ替えます。予備も尽きた場合だけ、スライスを別の健全なラックへ移します。

27%という数字は、128ラック・2,304ノードのクラスターでの比較です。SkyPilotが実際に見た約2%の利用不能率をNVIDIAの容量モデルに入れると、16ノード単位では2,037ノードが使えます。18ノード丸ごとの単位では1,602ノードにとどまり、その差が約1.27倍です。実測ではなく試算である点は押さえておく必要があります。

加えて、散らばったジョブを整理する自動デフラグも用意しました。ラックの空き方が原因でジョブを置けないとき、影響の小さいジョブを一時的に止めてラックを空けます。対象はチェックポイント(途中経過の保存)から安全に再開できるジョブだけで、対話型の作業環境は管理者が許可しない限り止めません。実例として、NVIDIAのGR00Tチームが512基のGB300で事前学習した際、ラックを意識した配置で処理量が14.4%伸びたことも紹介しています。

これからどうなるか

NVL72のようなラック単位の製品は、今後のAIインフラの主流になりそうです。そうなると、GPUの数よりも「どこに置くか」を管理する仕組みの差が、学習の速さと費用を分けます。ブログでは、1万基規模のクラスターで14.4%速くなれば、学習1日あたり約40万ドルの節約になると見積もっています。

多くの開発者は自分でラックを管理しませんが、影響は意外と身近です。クラウドでNVL72を借りるなら、ラック内にまとめて置いてくれるかを事業者に確認する価値があります。vLLMなどで大きなモデルを自前で推論する場合も、テンソル並列はNVLinkでつながった範囲に収めるのが基本です。SkyPilot自体もオープンソースなので、複数のクラウドにまたがってGPUを使うチームは試してみるとよいでしょう。

まとめ

SkyPilotは、NVL72のラックを16ノードのスライスに分け、2ノードを予備に残す割り当て方式を提案しました。故障や空きの散らばりを見込んでも、使えるGPUは試算で27%増えます。高価なGPUを生かすには、数だけでなく配置を賢く管理する仕組みが欠かせなくなっています。

参考リンク

アイキャッチ画像: Photo by Akshar Dave🌻 on Unsplash

タイトルとURLをコピーしました