eugr/spark-vllm-docker

Docker configuration for running VLLM on dual DGX Sparks

何を解決するか

このプロジェクトは、NVIDIA DGX Sparkハードウェア上でvLLMを実行するための最適化されたDocker環境とオーケストレーションスクリプトを提供します。単一ノードまたはマルチノードクラスタのセットアップを複雑なプロセスから簡素化し、InfiniBand/RDMA/NCCLなどのネットワーク要件と、この特定のハードウェアアーキテクチャ上で高性能なLLM推論に必要な依存関係の管理を処理します。

仕組み

リポジトリはvLLMデプロイメントのライフサイクルを自動化するスクリプトのセットを提供しています:

  • イメージ管理build-and-copy.sh はDockerイメージを作成する(または事前にビルドされたナイトリービルドを取得)し、クラスタ全体に配布して一貫性を確保します。
  • クラスタオーケストレーションlaunch-cluster.sh は複数ノードにわたるコンテナの起動を管理し、分散バックエンド(RayまたはネイティブPyTorch)を自動的に構成し、各ノードのマルチプロセッシング引数を処理します。
  • モデル配布hf-download.sh はHugging Faceからモデルをダウンロードし、ConnectXインターコネクトを介してクラスタ全体に配布して、重複したインターネットダウンロードを回避します。
  • パフォーマンス最適化:FlashInfer、DeepGEMM(NVIDIAのsm12x用ブランチ)、およびfastsafetensorsInstantTensorなどの高性能ロードフォーマットをサポートする専用コンポーネントを統合しています。

対象ユーザー

NVIDIA DGX Sparkシステムを使用し、vLLMで大規模言語モデルをデプロイしたいAIエンジニアおよび研究者向けです。分散ネットワークおよびGPUカーネルの手動設定を最小限に抑えることができます。

主な特徴

  • マルチノード対応:2ノード、3ノードメッシュ、およびそれ以上のDGX Sparkクラスタをネイティブでサポート。
  • ハードウェア固有のチューニング:sm12xアーキテクチャに最適化され、B12Xカーネルをサポート。
  • 自動配布:高速インターコネクトを使用してDockerイメージおよびモデル重みをノード間で同期するツールを提供。
  • 柔軟なビルドパス:事前にビルドされたナイトリービルドの取得、wheelsからのビルド、または特定のソースコミット/PRからのvLLMのコンパイルをサポート。
  • メモリ管理earlyoomの統合により、重い推論負荷時のホストメモリを監視し、システムクラッシュを防止します。

関連

  • プロジェクト
  • Dispatch
  • プロジェクト
  • プロジェクト
  • プロジェクト