NVIDIA AI、CRIUベースのKubernetes AI推論高速起動システム「Dynamo Snapshot」をリリース
NVIDIAはDynamo Snapshotを発表。CRIUとcuda-checkpointを活用し、Kubernetes上でのAI推論ワークロードのコールドスタート時間を分単位から秒単位に短縮。KVキャッシュのアンマップ、並列memfd復元、LinuxネイティブAIO、GPUメモリサービスなどの最適化を実装。
本番環境では、AI推論ワークロードの需要は変動するため、弾力的なスケーリングが必要です。しかし、Kubernetes上で推論ワークロードをコールドスタートするには数分かかる場合があり、その間GPUは割り当てられているもののアイドル状態で、リクエストを処理できません。コールドスタートには、コンテナイメージのプル、モデル重みのロード、CUDAカーネルのウォームアップ、CUDAグラフのコンパイル、サービスディスカバリへの登録が含まれ、トラフィック急増時にSLA違反のリスクを高めます。
この問題に対処するため、NVIDIA AI研究チームはDynamo Snapshotをリリースしました。これは、CRIU(ユーザースペースチェックポイント/リストア)とcuda-checkpointツールを使用して、推論ワーカーの完全な状態(GPU状態とホスト状態)をストレージに保存し、必要に応じて高速に復元するチェックポイント/リストアアプローチです。チェックポイント時には、cuda-checkpointがGPUデバイス状態をCPUメモリにダンプし、その後CRIUがプロセスツリーの状態をディスクにシリアライズします。復元時は逆の順序で、CRIUがプロセスツリーを復元し、cuda-checkpointがCPUメモリからGPU状態を新しいGPUに復元します。
Kubernetes上では、Dynamo Snapshotは特権DaemonSet(snapshot-agent)を介して動作し、Helmチャートでインストールされます。各ノードのエージェントが独立してコンテナのチェックポイントとリストアを処理し、柔軟なストレージバックエンドをサポートし、クラウドプロバイダの機能に依存しません。マルチGPUおよびマルチノードシナリオ(将来のリリース予定)のために、クワイエス/レジュームフックが導入されました。ワーカーはエンジン初期化後、分散ランタイム起動前にシグナルファイルを書き込み、チェックポイント後にその時点から実行を再開することで、TCP接続やRDMA状態の問題を回避します。
Dynamo Snapshotには3つの主要な最適化が含まれています。
- KVキャッシュのアンマップ:チェックポイントはリクエスト処理前に行われるため、KVキャッシュを保存する必要はありません。CUDA仮想メモリ管理APIを使用して物理メモリを解放しながら仮想アドレスを維持することで、チェックポイントサイズを190 GiBから6 GiB(Qwen3-0.6Bモデル)に削減します。
- CRIUメモリリストアの高速化:並列memfdリストア(スレッドプールを使用して共有メモリバッファを同時に処理)とLinuxネイティブAIO(非同期I/O、最大128の同時読み取り)により、リストア時間を大幅に短縮します。gpt-oss-120bモデルでは、CRIUリストア時間が119秒から15秒に短縮され、理論限界に近づきました。
- GPUメモリサービス(GMS):CUDA VMM APIを使用してモデル重みをコアCRIUチェックポイントから分離し、プロセス状態の復元と重みの復元を並行して実行できるようにします。GMSはGPUDirect StorageやピアGPU RDMA/NVLinkなどの高速パスを活用し、8台のローカルNVMe SSDにストライピングすることで、gpt-oss-120bのエンドツーエンド起動時間を5秒未満に抑え、21倍の高速化を実現します。
デプロイメントに関しては、Dynamo Snapshotは3つのKubernetesリソースを使用します。snapshot-agent DaemonSet、DynamoCheckpointカスタムリソース(モデル構成のチェックポイントを定義)、およびDynamoGraphDeployment CR(チェックポイントを参照して復元)。チェックポイントのアイデンティティは、モデル、バックエンドフレームワーク、テンソル並列度などのフィールドのSHA256ハッシュによって決定され、明示的モードと自動モードの2つのデプロイメントモードがあります。現在はvLLMのみをサポートし、限定プレビュー段階です。必要条件は、x86_64 GPUノード、NVIDIAドライバ580.xx以降、およびReadWriteManyストレージです。