DeepSeek-V4.1-Flashの大規模提供:vLLMがDeepInferに匹敵し、GB300 NVL72までスケール

要約:NVIDIA GB300 NVL72ラック1台で、P/D分離とWide-EPを備えたvLLMは、SemiAnalysis AgentXベンチマークでDeepSeek-V4.1-FlashをGPUあたり毎秒954Kトークン、ユーザーあたりP90 196トークン/秒で提供します。これはvLLMの以前のシングルノード結果の7.9倍であり、デコードスループットはDeepSeek自身の推論エンジンであるDeepInferの6%以内に収まります。 この結果が重要なのは、汎用サーバーエンジンがモデル固有のエンジンに匹敵しつつ、NVL72ラック全体でオンラインスケーリングも実現できることを示しているからです。

vLLMが発表した内容

vLLMは、DeepSeek-V4.1-Flashをラックスケールで提供する際のパフォーマンス調査を公開しました。この投稿は、同じモデルに関するvLLMの以前のシングルノードでの作業のフォローアップであり、スケールアップを生み出したエンジニアリングについて説明しています。

主要な結果:NVIDIA GB300 NVL72ラック1台で、P/D(プリフィル/デコード)分離とWide-EPを備えたvLLMは、DeepSeek-V4.1-FlashをGPUあたり毎秒954Kトークン、ユーザーあたりP90 196トークン/秒で提供します。これは、このモデルに関する最初の投稿でのvLLMの集計シングルノード結果の7.9倍です。コストは、DeepSeekのオフピーク価格でGPU時間あたり38.96米ドルです。スループットには、キャッシュされた入力、キャッシュされていない入力、および出力トークンが含まれます。

専用デコードパスは、単一ユーザーに対して毎秒826トークンに達します。

DeepSeek自身のエンジンであるDeepInferと比較して、vLLMのデコードスループットはバッチサイズ8から256の範囲で6%以内であり、プリフィルはDeepInferの公開曲線に追従します。

この投稿は、教訓の要約から始まります。

  • 汎用エンジンはモデル固有のエンジンに匹敵できる
  • 最適化する前にモデルを理解する
  • プリフィルには小さなDEPインスタンスが最適
  • Wide-EPデコードはEPLBでうまくスケールする
  • NVL72スケールではCPUオーバーヘッドが重要になる
  • 専用デコードパスは低レイテンシを実現する

主要な数値の概要

メトリック 結果
SemiAnalysis AgentX、GB300 NVL72でのスループット GPUあたり毎秒954Kトークン
ユーザーあたりのP90レイテンシ ユーザーあたり毎秒196トークン
vLLMの以前の集計シングルノード結果に対する向上 7.9倍
コスト DeepSeekのオフピーク価格でGPU時間あたり38.96米ドル
専用デコードパスでの単一ユーザーレイテンシ 毎秒826トークン
DeepInferとのデコードスループット比較(バッチサイズ8〜256) 6%以内

vLLMとDeepInferの比較

DeepInferは、DeepSeek-V4.1-Flash用のDeepSeek自身の推論エンジンです。これはvLLMの投稿と同じ週に、公開されたプリフィルおよびデコード曲線を備えたオフラインエンジンとしてリリースされました。vLLMはこれをこのモデルにとって最も関連性の高い参照点として扱い、独自の最適化を提示する前に比較します。

デコード比較

DeepSeekのデコード構成(131Kコンテキスト、nextn=3)では、GB200上のvLLMは、バッチサイズ8から256の範囲でDeepInferの公開結果の6%以内のスループットを達成します。vLLMはDeepInferの値をREADMEのチャートから読み取りました。

プリフィル比較

vLLMは、プリフィル比較がエンジン間の同等のベンチマークではないことを明示しています。DeepInferの公開プリフィル曲線は、32の冗長エキスパートと140トークンの制限付きリプレイを備えたEP4DP4を使用し、チャートに記載されていないハードウェア上で実行されており、vLLMはチャートから値を読み取りました。vLLM自身の実行は、GB300上で冗長エキスパートなしのDEP2、128トークンのリプレイ、および独自のプロンプトを使用します。

セットアップが異なるため、vLLMは2つの曲線間のギャップをエンジン間の高速化として解釈しないと述べています。この比較が示すのは、vLLMのDEP2プリフィルが、DeepSeekが公開した範囲でDeepSeek自身のエンジンに追従していることです。

2つのエンジンが近い理由

この投稿は、その類似性を両方向の共通の系譜に帰しています。DeepInferは元々vLLM上に構築され、vLLMはDeepSeekのライブラリ(MegaAttn、MegaMoE、Mega-mHCを含む)からのカーネルを継続的に統合し、それらを中心にスタックの残りを広範囲に最適化してきました。

vLLMが描く違い:DeepInferはオフラインモードで単一モデルをターゲットにしていますが、同じvLLMビルドは、P/D分離とWide-EPを使用してNVL72ラック全体でそのモデルをオンラインで提供します。

最適化戦略を形作ったモデルの特性

チューニングの前に、vLLMはDeepSeek-V4.1-Flashのアーキテクチャ特性を定量化しました。3つの発見が残りの作業を推進しました。

  • 小さなKVキャッシュフットプリント。 クロスレイヤーKV共有とFP4圧縮により、グローバルKVキャッシュはトークンあたりわずか890バイトです(DeepSeek-V4.1-Flashテクニカルレポートによる)。
  • 軽量なアテンション。 レイヤー2、8、14は、フルコンテキストインデックスに2倍の圧縮を使用します。制限付きリプレイでは、レイヤー20はすべてのトークンに対してグローバルKVを書き込みますが、インデックスとアテンションは最後の128トークンに対してのみ実行します。レイヤー21から39はそれらのトークンのみを処理します。
  • デコードは長いコンテキストでもMoEに制限されます。 128KコンテキストでDEP4デコード、ランクあたり64リクエストの場合、MoEはターゲットステップの62%を占め、アテンションとインデクサーを合わせても13%しか占めません。

vLLMはまた、GB300上でDEP32でのターゲットモデルのフォワード時間を測定しました。ランクあたり16リクエスト、リクエストあたり6トークン(1トークンと5つのDSparkドラフトトークン)、すべてのリクエストが同じコンテキスト長です。長いコンテキストはデコードレイテンシをほとんど動かしません:128Kから855Kトークン(コンテキストの6.7倍)に増やしても、ターゲットモデルのデコードレイテンシはわずか0.6ms(+7%)増加します。

リクエストあたりのコンテキスト 64K 128K 256K 512K 855K
ターゲットフォワード(ms) 8.86 8.93 9.03 9.25 9.53
128Kとの比較 -0.8% – +1.1% +3.6% +6.7%

これらの特性により、vLLMの枠組みでは5つの戦略決定が導かれました。

  • プリフィルは小さなDEPサイズで実行する必要があります。 B300またはGB300上のDEP2インスタンスでも、モデルの重みとKVキャッシュを多くの同時セッションに対して保持でき、ワールドサイズが小さいとDP/EP負荷分散が大幅に簡素化されます。
  • KV容量がバッチサイズを制限することはほとんどありません。 KVキャッシュはHBMに余裕を持って収まるため、各操作はKV容量を回避するのではなく、計算またはメモリ帯域幅の限界に向かって押し進めることができます。これにより、プリエンプションやKVキャッシュプレッシャーなしで、スイープが一貫性を保ち、ノイズが少なくなります。
  • Wide-EPはデコードに効果的です。 MegaMoEデコードは重み読み取りに制限されており、Wide-EPはこの支配的なMoEコストを直接削減します。
  • デコードDP負荷分散はより簡単です。 このモデルではデコードステップ時間はコンテキスト長によってほとんど変化しないため、DP負荷分散はランクあたりのリクエスト数による最小負荷に簡素化できます。
  • 合成ワークロードはデコードの代表的なままです。 平均入力長と出力長を使用することで、完全なエージェントトレースをリプレイせずに良好なパフォーマンス推定が得られます。

プリフィル:DEP2が最適、さらに3つのボトルネック修正

プリフィルには小さなDEPインスタンスが最適

並行度256のAgentXプリフィルのみの実行では、DEP4はDEP2のGPUあたりスループットの83%しか達成しませんでした(53.3K対64.4Kトークン/秒)。プレフィックスキャッシュをオフにしたミラーおよびラグリプレイは、DPの不均衡が原因であることを示しています:ランクが同期しなくなると、DEP4はスループットの13.6%を失います。vLLMはこの理由からDEP2をシンプルなデフォルトと呼んでいます。

インスタンスあたりのプリフィルスループット(トークン/秒) ミラー(バランス) ラグ(不均衡) 損失
DEP2 138.7K 130.5K 5.9%
DEP4 267.6K 231.1K 13.6%

vLLMは、不均衡コストが以前のビルドで測定されたものであり、カーネルではなくDEPサイズの特性であると述べています。

クリーンなトレースがコンテキスト長のボトルネックを明らかに

GB300 GPU 2台で、8Kトークンのプリフィルは、事前コンテキストなしでは87.9msかかりますが、512Kのキャッシュされたコンテキストでは189.4msかかります。vLLMはそのトレースの背後にある3つの追加ボトルネックに対処しました。

  • SWA制限付きリプレイをレイヤー20に拡張(PR #59894):32K新しいトークンで+19.9%。 SWA制限付きリプレイはすでにレイヤー21から39を最後の128トークンに制限していました。以前はレイヤー20がすべての新しいトークンに対してインデクサー計算を実行していました。現在はすべての新しいトークンに対してKVを書き込みますが、残りの計算は128トークンのリプレイバッチでのみ実行します。利得は4Kで10.1%から64Kで23.1%に増加します。
  • 共有Engramホストテーブル用の2MBページ(PR #62359):32Kでさらに+2.8%。 EngramはDPランク間で共有されるホストテーブルからランダム読み取りを実行します。以前の/dev/shmマッピングは64KBのGPUページを使用し、頻繁なGPU TLBミスを引き起こしました。テーブルをホストNUMA cuMem割り当てに移動することで、2MBのGPUページが可能になります。
  • プリフィルインデクサーでのDeepSelect top-k(PR #62240):32Kでさらに+15.6%。 プリフィルインデクサーは現在、デコードパスに合わせてDeepSelectを使用して候補ブロックをランク付けします。利点はランク付けされるキーの数とともに増加し、64Kで15.2%に達します。

これらの変更を合わせると、128Kのキャッシュされたプレフィックスに加えて、4Kから64Kの新しいトークンで新しいトークンプリフィルスループットが35.6%から43.9%向上します。32Kの新しいトークンでは、合計利得は42.5%です。64Kでは、スループットはGPUあたり毎秒71.2Kから102.5Kトークンに向上します(+43.9%)。

デコード:Wide-EPスケーリングとEPLBエキスパートバランシング

Wide-EPとEPLBは確立されたプラクティスであり、DeepSeekの推論システム概要で説明されており、vLLMはしばらく前から両方をサポートしています。このセクションでは、vLLMの新しい発見と経験的な教訓に焦点を当てます。

DEP4からDEP32へのWide-EPスケーリング

vLLMは、EPLBを有効にして、128KコンテキストでGPUあたり64リクエストを使用して、DEP4からDEP32へのデコードスケーリングを測定しました。各ランクが保持するエキスパートが少なくなるにつれて、ターゲットMegaMoE時間は13.4msから6.0msに低下し、残りの作業は約10msのままです。その結果、GPUあたりのスループット利得は徐々に減少します。DEP32では、ドラフトの通信オーバーヘッドも広い並列処理の利点を相殺し始めます。これらの測定はNVIDIA GB200で行われました。

EPLBの結果

vLLMは、EPLBを構成して、以前の1,000ステップの負荷に基づいて3,000ステップごとにエキスパートを再配置しました。EPLBは、ターゲットモデルのバランス度を0.35から0.94に、ドラフトのバランス度を0.21から0.89に引き上げ、均一ルーティングへのギャップの約97%と93%を回復します。

これを機能させる2つの変更:

  • PR #62009 は、NVLinkベースのsymm_memバックエンドを導入し、デコードを停止せずに1秒未満でDEP32全体を再バランスし、EPLBのレプリカマッピングと負荷記録をMegaMoEカーネルに融合し(ステップあたり約0.2msの節約)、デコードループからホスト同期を削除します。
  • PR #61395 は、異種のターゲットモデルとドラフトモデルでEPLBをサポートします。DSparkドラフトには、ターゲットの384(top-6ルーティング)に対して、128のルーティングエキスパート(top-3ルーティング)があるため、EPLBは各モデルのエキスパート配置と負荷を個別に追跡し、両方を再バランスします。

CPUオーバーヘッドがNVL72スケールで重要に

Wide-EPデコードはすべてのレイヤーで全ランクを同期するため、1つの遅いランクがインスタンスを停止させます。非同期スケジューリングは小規模ではCPUオーバーヘッドをうまく隠しますが、ランクが増えると2つの方法で難しくなります:GPUステップが短くなり、CPU作業の余裕が減り、1つのランクが遅れる可能性が高くなります。

実際には、vLLMは最適化されていないDEP32がDEP16よりも遅く実行されることを観察しました(ステップあたり17.57ms対13.84ms)。GPU実行は1.1ms速かったにもかかわらずです。この投稿では、見つかったすべての原因を効果の順にリストしています。効果は異なるセットアップから生じるため、各行には独自のセットアップがあります。

原因 修正 PR 効果 セットアップ
KV読み取りがデコードワーカースレッドで同期的に投稿される NIXLプッシュとUCXスキャッターギャザー;パックされたKV行を1つのNIXLリージョンとして送信 NIXLプッシュコネクタ、#61121 GPUあたり141Kから440Kトークン/秒;ユーザーあたりP90約40から159トークン/秒 GB300、8P1D、並行度3,072
Glooオールリデュースレイテンシがランク数に比例して増加 再帰的倍増CPUオールリデュース #61767、#60267に基づく DP同期がステップあたり10.8から1.5ms;ステップが16.10から13.15ms DEP32デコード
アドミッションバースト:1ステップで最大140リクエストがアドミットされる ステップあたり4つの新しいKVロードのオプトインキャップ #61725 GPUあたり460Kから516Kトークン/秒;ユーザーあたりP90 109から153トークン/秒 GB300、7P1D、並行度4,800、他の2つのCPU修正あり
プロンプト長に応じて増加するアドミッション作業 プロンプトを1つのint32バッファとして;スライディングウィンドウブロックテーブルのヌルブロックをスキップ;チャンク化プロンプトコピーカーネル #59908、#62702、#61724、#62698 855Kプロンプト:アドミッションあたりCPU 38.8から6.0ms エンジンマイクロベンチマーク

低レイテンシ:小バッチ用の専用デコードパス

vLLMは、PR #61868および#61869を通じてDeepSeek-V4.1-Flash用の低レイテンシカーネルサポートを拡張し、以前のKimi K3メガカーネルに関する投稿からの作業を継続しました。

実際のAgentXセッションでは、専用デコードパスはB300 GPU 4台で単一ユーザーに対してP90 826トークン/秒に達し、標準デコードパス(575)より44%高くなっています。この測定は、InferenceX PR #4332が専用デコードパスに切り替える前後で、B300 GPU 4台でTP4を使用したSemiAnalysis AgentXを並行度1、8、16でカバーしています。

vLLMがパフォーマンスを測定した方法

vLLMは正確な測定を2つの質問に分解します:プリフィルまたはデコードステップのコストはいくらであるべきか、そしてDPおよびEPの不均衡からどれだけの追加オーバーヘッドが発生するか?

  • プリフィルおよびデコードステップ時間。 vllm bench forwardツール(PR #61339)は、実際のexecute_modelパスを通じてDPおよびEPランク全体で正確なプリフィルまたはデコードバッチのモデルフォワード時間を測定します。これはGPU時間のみを測定し、クリーンなトレースを提供します。別途、vLLMのDecodeBenchConnectorは、特定の並行度でのエンジンレベルのエンドツーエンドデコードパフォーマンスを測定します。GPUのみの時間とサービングステップ時間のギャップは、予期しないオーバーヘッドを明らかにします。
  • プリフィルDP不均衡:ミラー対ラグリプレイ。 エージェントトレースは実行ごとに異なるため、DP不均衡を分離するのは困難です。そのため、vLLMはすべてのDPランクで同一のリクエストをリプレイします。ミラー実行では、すべてのランクが同時にリクエストを受け取ります。ラグ実行では、ランクrは同じリクエストをr x 5秒遅れて受け取るため、ランクは同期しませんが、同じ総作業量を実行します。2つの実行の差はDP不均衡のコストです。
  • デコードEP不均衡:実際のルーティング対均一ルーティング。 各MoEレイヤーについて、バランス度は平均ランク負荷を最大ランク負荷で割ったものとして定義され、ステップごとおよびEPLBのウィンドウ全体で計算されます。バランスの取れた参照として、vLLMはトークンをランダムに均一にルーティングして同じデコードバッチを実行します。その参照にはまだサンプリングノイズがあります:DEP32でGPUあたり72リクエストの場合、均一ルーティングはターゲット(top-6ルーティング)で約0.96、ドラフト(top-3)で0.94のバランス度に達します。実際のルーティングと均一ルーティングのギャップは、エキスパートバランシングが回復できる最大値であり、EPLB実行はそのギャップのどれだけを実際に回復するかを示します。

用語

DEPの後に数字が続く場合、その数のGPUにわたるデータ並列アテンションとエキスパート並列を意味します。DEP2は2 GPU、DEP4は4 GPU、DEP32は32 GPUです。ターゲットフォワードは、各デコードステップでのメインモデルの完全なフォワードパスであり、ドラフトトークンを検証して出力を生成します。ドラフトフォワードは、DSparkドラフトモデルの完全なフォワードパスであり、次のステップのトークンを提案します。

クレジット

vLLMは、DeepSeekがDeepSeek-V4.1-Flashとその最適化されたカーネルをオープンソース化して共有し、この作業の基盤を提供し、DeepInferとそのパフォーマンス結果を公開したことに感謝します。また、AgentXベンチマークプラットフォームを提供してくれたSemiAnalysisにも感謝します。

vLLMは、パフォーマンス最適化、vLLMおよびDynamo全体でのサポート、AgentX提出の支援で協力してくれたNVIDIAのPei Li、Hanjie Qiu、Lisa Wang、Yaoyao Ding、Rohit Nagraj、Xin Li、およびプリフィル最適化でvLLMコミュニティのCanlin Guoを特に挙げています。この作業はInferactが主導しました。

Sources