メインコンテンツへスキップ
← ブログに戻る
開発ログ2026年6月8日by K.hirano

MTPの3x高速化は誇大だった—3090/4090/5090で実測した倍率の結論

Gemma4 MTP自己投機デコードを3090/4090/5090で実測。3xではなくGPU次第で1.0〜1.9倍、5090は採択されても伸びませんでした。

#Gemma#mtp#llama.cpp#gpuベンチ#rtx4090#gemma-4

Gemma4 12BのMTP(自己投機デコード)を3GPUで実測(2026-06-08)。倍率は3090で×1.25、4090で×1.92、5090で×1.00。最高額の5090は44%採択でも伸びず、「3x」はコンシューマでは再現しませんでした。

関連記事としては gemma4:12bはollamaで動かない — 12GB GPUでllama.cpp実測52t/sの最短ルートBloggemma4:12bはollamaで動かない — 12GB GPUでllama.cpp実測52t/sの最短ルートollamaのHTTP 500やSIGFPEで詰まるgemma4:12bを、llama.cpp経由で12GB GPUに載せる実測手順と判断材料をまとめました。 もあわせて読むと、今回の論点とのつながりを把握しやすくなります。

結論から書きます。コンシューマGPUのMTP倍率は1.0〜1.9倍で、GPU次第です。4090が一番効いて、最高額の5090は効きませんでした。

MTP(自己投機デコード)は、派手に聞こえます。しかも「3x高速化」と言われると、ローカルでGemmaを回している身としては期待したくなります。ですが、実測すると話はかなり地味でした。3090は微増、4090は大きく伸びる、5090は採択されても利得ゼロです。

ここで一度、足元を見ておきます。これは「MTPそのものが無意味」という話ではありません。どのGPUで、どのモデルで、どの実装を使うかで結果が変わる、という話です。読者が知りたいのはそこだと思うので、先に結論を置きます。

まず結論だけ

3GPUを同じ条件で比較すると、4090がスイートスポットでした。逆に、**5090は最も高価なのに、今回の条件ではまったく伸びませんでした。**価格順に伸びるわけではない、というのが今回いちばん引っかかった点です。

そして大事なのは、採択率は3GPUとも0.45〜0.56程度で大差なかったことです。つまり、倍率の差は「MTPの候補がどれだけ採択されたか」だけでは説明できません。ハードウェアかビルド側の差です。

今回の計測条件

今回の数字は、ふわっとした印象ではありません。条件を揃えています。計測日は 2026-06-08 です(llama.cppもこの時点のmasterなので、後述の5090の話は時間とともに変わり得ます)。

  • モデル: Gemma4 12B(Q4_K_M)
  • 実装: llama.cpp master をソースビルド
  • 比較方法: 同一ホスト内で MTP off / on を比較
  • 生成: 256トークン完全生成
  • 温度: 0
  • テンプレート: gemmaチャットテンプレを適用

重要なのは、これは同一ビルド・同一ホストの off↔on 比較だという点です。ollamaの値や別ランタイムの速度とは並べていません。あちらはあちら、こちらはこちらです。混ぜると判断を誤ります。

3090は伸びるが、劇的ではない

RTX 3090(sm_86)は、81.3 → 101.6 t/s、倍率×1.25でした。draft採択率は0.48です。

ホスト個体差でベースラインは 60〜81 t/s に振れましたが、倍率自体は安定していました。これは現場的には大事です。絶対速度は揺れても、MTPの効き方はそこまで壊れていないということです。

3090を使っている人は、「MTPで爆速になる」と期待しすぎない方がいいです。とはいえ、微増では済まない場面もあるので、無視するには惜しい、という位置づけです。

4090は今回のスイートスポットでした

RTX 4090(sm_89)は、96.4 → 187.1 t/s、倍率×1.92でした。draft採択率は0.56です。

別の2ホストでも 1.90 → 1.94 で再現しました。つまり、ラッキー値ではありません。

実際に触ると、この差は地味に効きます。1.9倍は、単なる誤差ではないです。ローカルでチャット用途や短文反復が多いなら、体感差として十分に意味があります。

今回の3GPUでは、4090が最もMTPの恩恵を受けました。

5090は、採択されても速くならなかった

RTX 5090(sm_120 / Blackwell)は、134.5 → 134.6 t/s、倍率×1.00でした。draft採択率は0.45です。

これが一番厄介です。というのも、draft-mtp 自体は正常にロードされていて、44.5%採択で投機は走っているからです。つまり、単に機能が死んでいるわけではありません。採択しても利得に変換できていない、という状態です。

最高額のGPUが最弱。こういう結果は、期待していた分だけ少し肩を落とします。ですが、無理に持ち上げる方が不誠実です。

5090が効かない理由は仮説です

ここは断定しません。現時点では、llama.cpp の sm_120(Blackwell)対応がまだ未成熟な疑いがあります。

ただし、ビルドtoolkit差も交絡しています。4090は CUDA 12.4、5090は CUDA 12.8 でした。なので、「Blackwellだから遅い」と単純化はできません。

傍証として、5090のベースラインは 134.5 t/s で、4090の 96.4 t/s1.39倍止まりでした。メモリ帯域は約1.8倍という見方もあるので、ベースラインからして振るいません。ここから先は仮説になりますが、Blackwell側の最適化不足か、現行ビルドとの相性を疑うのが自然です。

採択率が近いのに倍率が違う、という事実

3GPUの採択率は 0.45〜0.56 で大差ありませんでした。

  • 3090: 0.48
  • 4090: 0.56
  • 5090: 0.45

それでも倍率は ×1.25 / ×1.92 / ×1.00 です。

つまり、MTPの効きは採択率だけでは決まりません。 ここは重要です。採択率の数字だけ見て「よし、走っている」と判断すると外します。実際には、採択後の処理が速いか、投機が本当にスループットに変換されるかが効いています。

「3x高速化」はどこ向けの話だったのか

MTPの「3x」は、B200や31Bモデルの話です。少なくとも今回のようなコンシューマ向け12B、しかも7.4GBで帯域律速・すでに高速な条件とは別物です。

ここは期待値調整が必要です。理屈としては派手でも、現場では帯域を食い合います。既に速い領域に投機を足すと、純益は小さいことがあります。GPUによっては、今回の5090のように消えることもある。

夢で釣って真実で返すなら、真実はこのあたりです。

再現するなら、こう判断するのが現実的です

読者の次の判断は、だいたいこの3つに絞られます。

  1. 3090級なら、MTPは「微増はするが主役ではない」
  2. 4090級なら、MTPはかなり効くので試す価値がある
  3. 5090は、現時点では「待ち」が妥当

特に5090は、買った人ほど期待しやすいはずです。ですが、今回の実測では現状待ちが正直な答えです。

再現方法は難しくないが、落とし穴はある

今回の再現は、Vast.ai 上で llama.cpp master を cmake でソースビルドして行いました。プリビルドイメージでは MTP の arch が反映されないため、そこは避けています。

フラグはこれだけです。off(ベースライン)はdraft系を外し、on(MTP)だけ--model-draft--spec-type draft-mtpを足します。同一ビルドで揃えるのがポイントです。

bash
# プリビルドはMTP archが未反映なのでmasterをソースビルド
$ git clone --depth 1 https://github.com/ggml-org/llama.cpp
$ cmake -B build -DGGML_CUDA=ON && cmake --build build --target llama-server -j

# off(MTPなし・ベースライン)
$ llama-server -m gemma-4-12b-it-Q4_K_M.gguf -ngl 999

# on(MTP・自己投機デコード)
$ llama-server -m gemma-4-12b-it-Q4_K_M.gguf \
    --model-draft gemma-4-12B-it-MTP-Q8_0.gguf \
    --spec-type draft-mtp --spec-draft-n-max 4 -ngl 999

計測は、同一インスタンスで off/on の2サーバーを立て、cold/warm を含めて見ました。費用面は、自己消滅タイマーと確実な destroyで安全側に寄せています。全7ランで、実費は約$0.85でした。

ひとつ、かなり重要な落とし穴

instruction-tunedモデルに対して、llama.cpp の 生/completionチャットテンプレを適用せずに生プロンプトを投げると、即EOSで5トークンしか生成されず、偽の t/s になります。

これはベンチあるあるですが、地味に痛いです。MTP以前に、測定が壊れます。

なので、gemmaチャットテンプレで包むことが必須です。

また、ignore_eos は使わない方がいいです。温度0だと反復ループで採択率を偽って上げることがあり、結果が汚れます。便利そうに見えて、ベンチでは罠になります。

この記事の使い方

この記事は、**「自分のGPUでMTPを試す価値があるか」**を判断するための実測です。

gemma4 12BはどのGPUで動く?実測3点+主要18枚の速度早見表【VRAM 8GBは崖の縁】Bloggemma4 12BはどのGPUで動く?実測3点+主要18枚の速度早見表【VRAM 8GBは崖の縁】gemma4 12Bを手持ちGPUで動かす判断材料を、VRAM別・実測3点・主要18枚の速度早見表で整理。8GBの限界も明確にします。のように絶対速度を並べる記事とは別です。今回はあくまで、同一ビルド内の MTP off/on 倍率を見ています。なお、MTP drafterを12GBのGemma 4 MTP drafter を今すぐ入れるべきか? RTX 4070 Ti 12GB でつまずいた3つのポイントと結論BlogGemma 4 MTP drafter を今すぐ入れるべきか? RTX 4070 Ti 12GB でつまずいた3つのポイントと結論RTX 4070 Ti 12GBでGemma 4 MTP drafterを実測。ドラフター0.14GB、ただし最速はvLLMの162.7 tok/s。導入判断を正直にまとめます。は別記事にあります。

なので、読者が次にやるべきことはシンプルです。

  • 自分のGPUが 3090級 なら、過度に期待せず試す
  • 4090級 なら、MTPを前提にした構成を検討する
  • 5090 なら、少なくとも現時点では「速くなる前提」で買い足さない

まとめ

MTPの3x高速化は、少なくともコンシューマGPUのGemma4 12B実測では再現しませんでした。

  • 3090: ×1.25
  • 4090: ×1.92
  • 5090: ×1.00

そして大事なのは、5090は採択されていたのに速くならなかったことです。これは「機能が動いていない」のではなく、今の実装とBlackwellの組み合わせでは利得に変換できていない疑いがある、というのが正確です。

要するに、MTPはGPU次第です。派手な3xの夢はありますが、実務の判断はもっと地味で、もっと厳しい。そこを見誤らないのが、ローカルGPU運用ではいちばん効きます。

注意点・制約

  • 1ワークロード(技術解説の生成)・温度0・spec-draft-n-max=4での結果です。コード生成や別のプロンプトでは採択率も倍率も動き得ます。
  • Vast.aiのホスト個体差で絶対速度は揺れます(3090は60〜81 t/sの幅)。倍率は安定していましたが、絶対値は参考程度に。
  • 5090の「なぜ」は仮説です。ビルドtoolkit差(CUDA 12.4 vs 12.8)の交絡を完全には切り分けていません。

どのように検証したか

  • 同一ビルド・同一ホストで MTP off / on を立て、256トークン完全生成のt/sを比較しました(cold/warm両方)。
  • 4090と5090は別ホストでも再現を取り、ラッキー値でないことを確認しました。
  • draftの採択統計(draft acceptance)はサーバーログから直接読み、「動いているのに伸びない」を切り分けました。

よくある質問

MTPを有効にすると遅くなることはありますか?

今回の5090がほぼそれでした。倍率×1.00で、利得はゼロです。draft検証のコストが利得を食い合うと、純益がほぼ消えます。理屈の上では、採択率が極端に低い環境では「わずかに遅くなる」こともあり得ます。

採択率(acceptance)が高ければ速くなりますか?

そうとは限りません。今回は3GPUとも0.45〜0.56で近かったのに、倍率は×1.00〜×1.92まで割れました。採択率だけ見て速さを判断するのは危険です。

5090はこの先も効かないままですか?

分かりません。これは2026-06-08時点の、特定のllama.cppビルドでの結果です。Blackwell(sm_120)向けの最適化が進めば変わる可能性は十分あります。あくまで「今は待ち」が正直な答えです。

参考リンク

関連記事

関連リンク

  • 実際の構成を探すなら、GPU 比較ページやローカルLLM向け構成記事もあわせて見ると判断しやすいです。
  • ハードウェア候補は用途別の AI 構成ガイドからたどると、単体製品より違和感なく検討できます。

この記事を書いた人

HW系エンジニアとして20年以上、10,000件を超える顧客訪問と2,000件を超える単独ソリューション実績。AIツールを使った個人開発やIoT農園など、Raspberry Piを使ったオートメーション化なども実践中です!エンジニア専門結婚相談所も運営中、ClaudeCodeで解決できない心の課題も解決いたします!

Gemma 4 26B A4B vs Ornith 1.5、12GBの答えはどちらか
2026年8月30日
開発ログ

Gemma 4 26B A4B vs Ornith 1.5、12GBの答えはどちらか

VRAM 12GB の RTX 4070 Ti で Ornith 1.5 9B と Gemma 4 26B A4B を同条件比較。速度 80.0 対 72.9 tok/s、VRAM は 5.9GB 対 11.6GB で Ornith が優位、コーディングは 60点満点で 26B を上回りました。一方 24問テスト総合は 199 対 220 で日本語力に差。長考の末に無回答となる症状は両モデル共通でした。

#ローカルLLM#Gemma#Ornith#llama.cpp#GPU
Gemma 4 26B A4B 実測:12GBのGPUで72.9 tok/s、24問テストは過去最高スコア
2026年8月30日
開発ログ

Gemma 4 26B A4B 実測:12GBのGPUで72.9 tok/s、24問テストは過去最高スコア

VRAM 12GB の RTX 4070 Ti で Gemma 4 26B A4B を実測。llama.cpp の --cpu-moe を -ncmoe 9 に変えるだけで 35.0 → 72.9 tok/s になり、12B を全部GPUに載せた 58.6 tok/s を上回りました。24問テストは 220/240 でランクS。長考時に空応答を返す弱点もあわせて記録しています。

#ローカルLLM#Gemma#llama.cpp#GPU#gemma-4
Laguna XS 2.1の24問実測——コード60/60と日本語40/60が示す使い分けの線
2026年7月26日
開発ログ

Laguna XS 2.1の24問実測——コード60/60と日本語40/60が示す使い分けの線

Poolsideの新モデルLaguna XS 2.1をVRAM 12GBの自宅GPUで動かし、コード・日本語を含む24問ベンチで実測。--cpu-moeフラグでVRAM使用量を3.4GBに抑え49トークン/秒で動作するも、コードは満点でも日本語は落第点という極端な偏りが判明した。

#localllm#llama.cpp#poolside#ベンチマーク#コーディング
GEMMA4-12B-CODERは何に使うべきか:コード55/60、総合B評価の実測結論
2026年7月1日
開発ログ

GEMMA4-12B-CODERは何に使うべきか:コード55/60、総合B評価の実測結論

GEMMA4-12B-CODERをRTX 4070 Ti 12GBで実測。54.6 tok/s、24問160/240、コード55/60。Gemma 4 12B/E2B/E4Bとの使い分けとMTP可否を整理します。

#gemma4#ローカルLLM#llama.cpp#RTX4070Ti#ベンチマーク

関連AIツール

META-MARK × AI

ローカルAIを動かすGPU、ちゃんと選べていますか?

VRAM・性能・コスパをMetaScoreで数値化。AIアプリ別の推奨ハードウェア要件も確認できます。