モデル別実行レシピ

CMP 170HXでQwen3.8-27Bを最速で実行するには?

測定された1枚構成では、約3.2K入力のデコード平均はvLLM DFlash2の方が高速でした。

CMP 170HXでQwen3.8-27Bを実行するには、GGUF1 Q4_K_MまたはW4A16 AutoRoundの重みをサービングエンジンに読み込み、テキスト要求に回答します。10月10日の1枚測定における約3.2Kトークン2の個別要求では、vLLM DFlash2が109.42 tok/s、open-jet MTP3 d=4が77.20 tok/sでした。別途、greedy 5プロンプト4の平均はそれぞれ181.8と94.1 tok/sでした。

短い入力で素早く回答を生成したいなら、まずvLLM DFlash2構成を検討してください。長文には、open-jetで18,976入力トークンを最後まで処理した公開記録があります。以下で生成速度、最初の回答までの待ち時間、実行方法を比べます。

実行条件と要点
  • 1枚・180Wの測定で、vLLM DFlash2のgreedy平均は181.8 tok/s、open-jet MTP d=4は94.1 tok/sでした。
  • 異なるQ4_K_M GGUFとW4A16 AutoRoundチェックポイントを使用したため、差をエンジンだけに帰属できません。
  • 固定バージョンのレシピは新規環境でインストールエラーがあるため、再現ノートブックの修正記録も確認してください。

速度表ではデコードと入力処理を分けて見ます

要求を受けて入力を処理し最初のトークンを出すまでがprefill5、その後に回答を続ける速度がdecode6です。10月10日の180W比較では、greedy 5プロンプトの平均がvLLM DFlash2 k=7で181.8 tok/s、open-jet megakernel MTP d=4で94.1 tok/sでした。thinkingを有効にした4プロンプトの平均も、vLLMが156.3、open-jetが75.6 tok/sでした。

2026年10月10日、CMP 170HX 1枚での測定結果
作業・入力条件vLLM DFlash2 k=7open-jet MTP d=4
個別chat・入力3,163 / 3,158トークン109.42 tok/s · TTFT 1.6515秒・出力58/128トークン77.20 tok/s · TTFT 2.0662秒・MTPなし: 48.74 tok/s
greedy平均・5プロンプト181.8 tok/s94.1 tok/s
thinking平均・4プロンプト156.3 tok/s75.6 tok/s

この比較は64GiB・SM 74基、HBM 1,728MHz、PCIe Gen2 x16のCMPを180Wに制限し、強制送風で1要求ずつ処理しました。vLLM 0.27.1は標準ゲストドライバー580.178.04とホスト側unlock commit 88e39ce、open-jetは公開コミット93c2b9aを使用しました。

作業台にCMP 170HXカード1枚と虫眼鏡、ノートが置かれています。
速度結果はカード枚数、電力上限、入力長と併せて確認します。

サーバーを稼働し続ける場合と再起動する場合

両方の実行でQwen3.8-27Bの4ビット重みを使いましたが、ファイルは異なります。open-jetは特定revisionのQwen3.8-27B-Q4_K_M.gguf、vLLMはW4A16 AutoRoundモデルとDFlash2 drafterを使用しました。量子化7形式とチェックポイント8は出力や速度に影響するため、この表は二つの構成を比較した結果です。

vLLMサーバーはCUDA9 graph captureとDFlash2の準備を含め427秒後に利用可能になり、open-jetは数秒で起動しました。1日に一度起動して使い続けるなら初期準備時間は1日一回のコストですが、開発中に頻繁に再起動すると待ち時間が繰り返されます。サーバーを稼働し続ける場合は、要求ごとのdecode速度がより直接的な比較基準です。

再現する場合は公開されたvLLMレシピの固定情報に従います

測定ではvLLM 0.27.1を使っています。リンク先のsyv.aiレシピの69ba4d0688c6ae76cb9d3c4a5c3b36445e1b040cコミットとrequirements.lockを基に準備してください。サーバーはSPEC=dflash2、CTX=fast、MAX_SEQS=1、DFLASH_TOKENS=7、GPU_UTIL=0.90、BF1610 KVキャッシュ11に設定されました。文脈長12の設定値は65,536で、モデルファイルと実行手順はreproduce.ipynbとrecipe.jsonにあります。

新しい環境で再現する際は、CUDAコンパイラーのインストール先も確認してください。公開ノートブックではnvidia-cuda-nvcc 13.4.92がnvidia/cu13/に入り、import nvidia.cuda_nvccが失敗しました。研究者が行ったパス修正はappendixに記録されています。

open-jetを試す場合は、測定に使われたコミットを取得してGA100用にビルドしてください。下のコマンドはCUDA 12.8.93とリポジトリの依存関係を用意した環境で実行します。モデルの取得とサーバー起動は、リンク先の再現ノートブックに従ってください。

固定したopen-jetソースをCMP向けにビルド
git clone https://github.com/L-Forster/open-jet.git
cd open-jet
git checkout 93c2b9abee50ea2ea41981c406cfd201989e4d58
make ARCH=sm_80
PixelMLの公開測定コミットとCUDA 12.8.93の条件で使われたビルドコマンドです。固定したコミットのリポジトリー内で実行してください。
グラフィックスカードを搭載したワークステーションの横で、モニターに空白のウィンドウが開いています。
vLLMレシピを使う場合、まずランタイムのバージョンとモデルファイルを固定します。

自分が使う文脈長で改めて判断します

短いプロンプトで高いdecode速度を求めるなら、公開された1枚構成ではvLLM DFlash2が有力な出発点です。サーバーの再起動時間を重視する場合や短時間で起動する経路が必要な場合は、open-jetの起動の速さも検討できます。ただし180Wでのopen-jetとvLLMはチェックポイント形式も異なるため、決定前に同じ入力と応答設定で比較してください。

入力を増やした試験では、リクエスト方式によって結果が異なりました。vLLMは6,603トークンの/v1/completions課題を完了しましたが、9,472トークンのチャット要求ではXid 31で終了しました。open-jetは18,976トークン入力まで完了しています。長文を扱うなら、この完了記録を基にエンジンを選び、自分の文書で試してください。

決定前に、実作業でよく使うプロンプト長と回答長を固定します。エンジンが要求を最後まで処理したか、最初のトークンまでの時間、生成速度、完了状況をそれぞれ記録してください。より長い入力が必要な場合は、設定上限へ一度に伸ばすのではなく、使うエンジンとチェックポイントで正常に完了する長さを段階的に確認し、失敗した長さは検証範囲外として記録します。

オープン型ワークステーションにGPUカード2枚が搭載され、横にファンと目盛りのない計器があります。
測定値を自分の作業に当てはめるには、同じ基準で入力長と完了状況を比較します。

用語の注釈

  1. GGUF — モデル情報を格納するファイル形式で、llama.cpp系のツールで広く使われます。

    本文に戻る
  2. トークン — モデルが入力や出力を分けて処理する単位です。

    本文に戻る
  3. MTP — 複数の将来トークンを一度に予測する学習目標、またはそれを行うモデル構成です。投機的デコーディングでは、その予測を候補トークンとして提案できます。

    本文に戻る
  4. プロンプト — モデルに送る入力文です。生成モデルでは作りたい結果を説明する文になり、出力の構成や内容を大きく左右します。

    本文に戻る
  5. プリフィル — LLMが入力プロンプトを読み、各トークンの内部表現を計算する段階です。プロンプトが長いほど処理するトークンが増えます。

    本文に戻る
  6. トークンのデコード — 入力とそれまでの回答をもとに、次の出力トークンを順に生成する段階です。

    本文に戻る
  7. 量子化 — モデルの重みや計算値を少ないビット数で表し、保存容量やメモリ使用量を減らす方法です。表現が粗くなるため、精度にも影響することがあります。

    本文に戻る
  8. チェックポイント — 学習済みモデルの重みなどを保存したファイルです。同じモデル系列でも、版や用途によって異なるチェックポイントを使うことがあります。

    本文に戻る
  9. CUDA — NVIDIA GPUで汎用計算を行うソフトウェア基盤です。

    本文に戻る
  10. BF16 — モデルの数値に使う16ビット浮動小数点形式です。指数部はFP32と同じ幅で、同程度に広い値の範囲を表せます。

    本文に戻る
  11. KVキャッシュ — 過去トークンのAttention用キー・バリューを保存し、後続トークン生成で再利用するメモリです。容量はコンテキスト長やバッチサイズで変わります。

    本文に戻る
  12. コンテキスト長 — 1回のリクエストでモデルが扱える入力と生成内容のトークン範囲です。上限や実際のメモリ使用量はモデルと実行設定によります。

    本文に戻る

よくある質問

この記事で最初に確認すべきことは何ですか?
CMP 170HXでQwen3.8-27Bを実行するには、GGUF Q4_K_MまたはW4A16 AutoRoundの重みをサービングエンジンに読み込み、テキスト要求に回答します。10月10日の1枚測定における約3.2Kトークンの個別要求では、vLLM DFlash2が109.42 tok/s、open-jet MTP d=4が77.20 tok/sでした。別途、greedy 5プロンプトの平均はそれぞれ181.8と94.1 tok/sでした。