Skip to content
AI-Daily-Builder

2026-06-08 回閲覧

なぜ DGX Spark の GB10 はデコード 23 tok/s なのにプリフィルは 1,884 tok/s と出るのか:帯域幅バジェットの分解

vLLM の 2026 年 6 月の DGX Spark デプロイの検証済み分解:120B NVFP4 MoE モデルはデコードが約 23 tok/s だがプリフィルは約 1,884 tok/s で、GB10 の 273 GB/s メモリ帯域幅がその差を説明する。

何が公開されたか

2026 年 6 月 1 日、vLLM プロジェクトは、単一の NVIDIA DGX Spark(GB10 Grace Blackwell デスクトップ機)上で大規模言語モデルを動かすことについての深掘り記事を公開した。そしてそれは、ほとんどの「ファーストインプレッション」記事が省く一つのことをやってのけた——単一の見栄えする数字ではなく、一つの現実的なデプロイの完全なレイテンシ・スループットの形状を報告したのだ。テスト対象のモデルは Nemotron-3-Super-120B-A12B-NVFP4——NVFP4 に量子化された 120B パラメータの mixture-of-experts(MoE)チェックポイントで、トークンあたりおよそ 10-15B パラメータがアクティブとなり、機体の 128 GB 統合 CPU+GPU メモリプール内で 131,072 トークンの最大コンテキストで提供された。

この単一の構成は、ローカルの Blackwell 推論が実際にどう振る舞うかを示す明快な教材ケースである。なぜなら、それは推論リクエストの二つのフェーズ——プリフィル(プロンプトを読む)とデコード(一度に 1 トークンずつ答えを書く)——を切り分け、両者がまったく異なる性能曲線上にあることを示すからだ。

数字と、それがどのフェーズに属するか

以下は、vLLM の記事がそのデプロイについて報告した数字に、それらが収まる GB10 ハードウェアの上限(NVIDIA のチップ発表詳細より)と、バッチ処理の全体像を補完するコミュニティの並列実行調査を加えたものである。

指標数字出典
デコードスループット(シングルストリーム)22.7–23.7 tok/svLLM, Nemotron-3-Super-120B-A12B-NVFP4
プリフィル、短いジャッジ呼び出し(58 トークンのプロンプト)~140 tok/s, TTFT 0.42 svLLM
プリフィル、中程度のプロンプト(1,834 トークン)1,636 tok/s, TTFT 1.12 svLLM
プリフィル、長いプロンプト(7,234 トークン)~1,884 tok/s, TTFT 3.85 svLLM
テストした最大コンテキスト131,072 トークンvLLM
デモトラフィック下の KV キャッシュ利用率30% 未満vLLM
GB10 メモリ帯域幅273–301 GB/sThe Register(GB10 詳細)
GB10 メモリ128 GB LPDDR5x, 256-bit バス, 9,400 MT/sThe Register
GB10 FP4 ピーク演算性能~1 petaFLOPThe Register

表を上から下まで読めば、物語はおのずと立ち上がる。長いプロンプトのプリフィルは 1,600-1,900 tok/s で動く——デコード速度の 70 倍超だ。デコードはプロンプトがどれほど長くても約 23 tok/s で這うように進む。vLLM の著者はデコードが「依然としてアクティブパラメータ数によって形作られる」と指摘し、プロンプトサイズを通じて平坦なままだと述べている。その平坦さこそが手がかりだ。

メカニズム:デコードは帯域幅律速、プリフィルは演算律速

自己回帰デコードは前向き計算 1 回につき 1 トークンを生成する。各トークンについて、エンジンはモデルのアクティブな重みをメモリから Tensor Cores へストリーミングしなければならない。約 0.5 バイトずつの約 12B のアクティブ NVFP4 パラメータでは、それはトークンあたりおよそ 6 GB の重み読み出し(プラス少量の KV キャッシュ読み出し)となる。GB10 の約 273 GB/s という下限では、6 GB はおよそ 22 ms かかり、理論上は 45 tok/s 近くで頭打ちとなり、KV 読み出し、MoE ルーティング、フレームワークのオーバーヘッドを加えると約 23 tok/s に落ち着く。約 1 PFLOP の FP4 演算性能はデコード中はほぼ遊休状態だ——Tensor Cores はほとんどの時間をメモリ待ちに費やす。これが、プロンプトが 58 トークンでも 7,234 トークンでもデコード速度がほとんど動かない理由だ:トークンあたりの重み読み出しは同一なのである。

プリフィルはその逆だ。すべてのプロンプトトークンを一つの大きな行列乗算として並列に処理するため、メモリバスではなく FP4 Tensor Cores を飽和させる。これがプリフィルが 4 桁の tok/s に達する理由であり、TTFT がプロンプト長にスケールする一方でデコードはしない理由だ。

MoE 設計こそが、ここで 120B モデルをそもそも使い物になるものにしている。NVFP4 の密な 120B モデルはトークンあたり約 60 GB の重み読み出しを必要とし、一桁台の低い値でデコードすることになる。トークンあたり約 12B パラメータだけをアクティブにすることで、MoE はトークンあたりの帯域幅の勘定をおよそ 5 倍削減する——潤沢な統合メモリ容量(120B パラメータすべてを格納する)を、希少なメモリ帯域幅(ステップごとに 12B しか読まない)と引き換えにするのだ。これがローカル Blackwell 推論の中心的な設計上の一手である:容量は安く、帯域幅こそがバジェットなのだ。

バッチ処理が計算を変える

シングルストリームのデコードは遅く見えるが、別の並列実行ベンチマーク(Dendro Logic、2026 年 4 月 22 日)は、バッチ処理したときに何が起きるかを示している。単一の DGX Spark 上で、Nemotron Super 49B v1.5 NVFP4 は 1 ストリームでの合計 5.79 tok/s から、32 ストリームで 161.90 tok/s、256 ストリームで 695.11 tok/s へ——合計で 120 倍の向上——となる一方、シーケンスあたりの速度は 5.79 から 2.85 tok/s へ低下した。OpenAI の gpt-oss 120B(MXFP4)も同じ形状を示した:シングルストリーム 33.53 tok/s が、256 ストリームで合計 862.84 tok/s へ上昇した。記事の表現は正確だ:「メモリ帯域幅はあなたが費やすバジェットだ……二つのストリームを同時に走らせるとき、あなたは同じ重みを読むのに同じ帯域幅バジェットを費やし、両方のストリームが結果を得る。」重みは一度だけロードし、その読み出しをバッチ全体で按分するため、KV キャッシュメモリか演算が最終的に飽和するまで合計スループットは上昇し続ける。

ソフトウェアスタックはもう一つのレバーであり続けてきた。NVIDIA は 2026 年 1 月 5 日に、Qwen-235B 上で NVFP4 と投機的デコードが FP8 に対し最大 2.6 倍の向上をもたらし、NVFP4 がメモリ使用量を約 40% 削減し、llama.cpp の更新が MoE モデルで平均 35% の上乗せを加えた——すべて同じシリコン上で——と報告した。

実務メモ

もし私がこうした機体の一つにアシスタントやエージェントループをデプロイするなら、シングルストリームのデコードを「速度」として引用するのをやめ、代わりにこの二つの曲線を中心に設計するだろう。対話的な単一ユーザーには、約 23 tok/s はチャットには十分だが長い生成には苦しいので、投機的デコードに頼り、出力を短く保つだろう。複数の呼び出し元にサービスを提供する何か——小さなチーム、バッチ要約ジョブ、多数の候補を採点する LLM ジャッジのパイプライン——には、並列度 16-32 で走らせ、機体をスループットエンジンとして扱うだろう。なぜなら、そここそが帯域幅バジェットが実際に元を取る場所だからだ(上記データでの合計 45~162 tok/s)。私はデフォルトで NVFP4 MoE チェックポイントを採用し、総パラメータ数を最大化するのではなく、アクティブパラメータが帯域幅バジェットに余裕をもって収まるようモデルサイズを決め、そして誰かの見出しの tok/s——自分のものも含め——を信じる前に、自分自身のプロンプト長分布でプリフィルとデコードを別々にベンチマークするだろう。

見落とされがちな視点

誰もがデコードの tok/s をベンチマークするが、エージェントループに対してプリフィルのバジェットを組む人はほとんどいない。毎ステップで増大していく 7K トークンのスクラッチパッドを読み直すエージェント的ワークフローは、毎ターン約 3.85 秒の TTFT を払い、20 ステップのループ全体では、そのプリフィルのコストが実際の生成を圧倒しかねない。帯域幅に制約された機体では、プロンプトキャッシングと KV の再利用は「あったらいい」最適化ではない——それらは、使い物になるローカルエージェントと、実時間の大半を自分自身のコンテキストを読み直すことに費やすエージェントとの違いそのものだ。120B モデルをロード可能にする統合メモリ設計は、無駄なプリフィルを高くつかせるのと同じ設計である。なぜなら、それを背後に隠せる余剰の帯域幅が存在しないからだ。


Sources

チップ