vLLMは大規模言語モデル向けの高スループット・省メモリな推論・サービングエンジンです。今回提供された実ファイルはvLLM本体のCIおよびベンチマークインフラで、latency・throughput・serving性能を検証する仕組みと、AMD GPU上での分散Prefill/Decode(PD)構成をSLURM経由で検証するテストスイートが中心です。
性能検証は`run-performance-benchmarks.sh`が起点です。`tests/*.json`に定義されたパラメータを読み、`vllm bench latency`・`vllm bench throughput`・`vllm bench serve`へ変換して実行します。JSON内のアンダースコアはダッシュへ自動変換され、コマンドライン引数として渡されます。分散PDテストは`.buildkite/amd-disagg`配下にあり、`cluster.sh`が環境変数のデフォルトを定義し、`models.yaml`がモデル別の起動フラグ(TPかEPか、量子化形式など)を管理します。`run-slurm-disagg-test.sh`がSLURMジョブを投入し、`run_xPyD_disagg.slurm`が実際のノード割り当てとコンテナ起動、ヘルスチェックを行います。Prefillノードは`vllm_disagg.sh`により役割を自己判定し、MoRIIOというKV転送機構でDecodeノードとKVキャッシュをやり取りします。
- STEP 01
リポジトリを取得し`bash .buildkite/performance-benchmarks/scripts/run-performance-benchmarks.sh`を実行すると、GPU環境が必要で、なければすぐエラーになります。
- STEP 02
`ON_CPU=1`などの環境変数を設定してIntel Xeon向けに切り替えると、`latency-tests-cpu.json`などCPU用の設定ファイルが自動選択されます。
- STEP 03
`tests/latency-tests.json`を編集してモデルやパラメータを変えると、次回実行時にその設定で`vllm bench latency`が呼ばれます。
- STEP 04
AMD MI350クラスタでの分散PDテストは`run-slurm-disagg-test.sh`をSLURM環境で実行する必要があり、一般のノートPCでは動きません。
- STEP 05
結果は`--output-json`を自前で指定してはいけない仕様で、スクリプト側が自動保存する点に注意が必要です。
実行に成功すると、latency・throughput・serving各テストのJSON結果ファイルが得られ、PR前後の性能比較や`perf.vllm.ai`との突合に使えます。分散PDテストではSLURMジョブのログとヘルスチェック・精度検証の合否が手に入ります。
この一式はvLLM本体の推論エンジンそのものではなく、CI・ベンチマーク・分散テストのインフラコードです。単体でLLM推論を試したい人には不向きです。
B200・A100・H100・Gaudi 3などの専用ハードウェアやSLURMクラスタが前提で、一般的な開発マシンでは多くのスクリプトが動作しません。
AMD disaggテストはMoRIIOやvllm-routerなど複数の外部コンポーネントとポート調整が絡み、設定ミスに気づきにくい構造です。
README冒頭はベンチマークスイートの説明に限定されており、vLLM本体のインストール手順やAPIの使い方はこの資料だけでは分かりません。
vLLM本体を使いたい人よりも、vLLMにパフォーマンス改善のPRを送る開発者や、AMD GPUでの分散Prefill/Decode構成をCIで検証したいインフラ担当者向けの内容です。ファイルツリーとスクリプトの中身から、ベンチマーク実行の流れとPDテストの仕組みは具体的に確認できるため、実際に動かさなくても大枠の判断は可能です。ただし専用ハードウェアが前提のため、手元で試せる範囲は限られる点は留意してください。