MTPの3x高速化は誇大だった—3090/4090/5090で実測した倍率の結論
Gemma4 MTP自己投機デコードを3090/4090/5090で実測。3xではなくGPU次第で1.0〜1.9倍、5090は採択されても伸びませんでした。
こんにちは。傘を手放せない日が増えてきましたね。洗濯物が乾かない日は、GPU の数字を眺めて過ごすのも悪くありません。
Gemma4 12B の MTP(自己投機デコード。モデル自身に少し先の言葉を下書きさせ、当たった分だけまとめて進めて速くする仕組み)を、RTX 3090・4090・5090 の3枚で測りました(2026-06-08)。「3倍速」はコンシューマ GPU では再現せず、倍率は 1.0〜1.9倍で GPU 次第でした。 いちばん効いたのは 4090 の ×1.94、3090 は ×1.25 の微増、そして最も高価な 5090 は、下書きが44%採択されていたのに ×1.00 で伸びませんでした。
MTP を無意味だと言いたいわけではありません。どの GPU で、どのモデルで、どの実装を使うかで結果がはっきり割れる、という話です。「3x」と聞いてローカルで Gemma を回している身として期待した分、実測の手応えはかなり地味でした。
3枚の結果は、価格の順には並ばなかった
同じ条件で MTP の off と on を比べた結果です。
t/s は1秒あたりに生成できるトークン(文字のかたまり)の数です。3枚の中では 4090 がスイートスポットで、5090 は最も高価なのに今回の条件ではまったく伸びませんでした。価格順に伸びるわけではない、というのが今回いちばん引っかかった点です。
もう一つ大事なのは、採択率(下書きが本番に採用された割合)は3枚とも 0.45〜0.56 程度で大差なかったことです。倍率の差は「下書きがどれだけ当たったか」では説明がつかず、ハードウェアかビルド側の差だと考えています。
計測は同一ビルド・同一ホストの off↔on 比較にそろえた
ふわっとした印象で比べないよう、条件はこう揃えました。計測日は 2026-06-08 で、llama.cpp もこの時点の master です。後で触れる 5090 の話は、時間とともに変わり得ます。
- モデル: Gemma4 12B(Q4_K_M)
- 実装: llama.cpp master をソースビルド
- 比較方法: 同一ホスト内で MTP off / on を比較(cold/warm 両方)
- 生成: 256トークン完全生成
- 温度: 0
- テンプレート: gemmaチャットテンプレを適用
- ワークロード: 技術解説の生成1種類・spec-draft-n-max=4
肝心なのは、ここで見ているのが同じビルド・同じホストの中での off↔on の倍率だという点です。ollamaOllama(ローカルLLMランタイム)手元の PC でオープンウェイトの LLM を手軽に動かすための、無料のソフト。詳しく → の値や別のランタイムの速度とは並べていません。混ぜると判断を誤ります。4090 と 5090 は別のホストでも再現を取り、下書きの採択統計(draft acceptance)はサーバーログから直接読んで、「動いているのに伸びない」のかどうかを切り分けています。
3090は伸びるが、劇的ではない
RTX 3090(sm_86)は 81.3 → 101.6 t/s、×1.25、採択率は 0.48 でした。
借りたホストの個体差でベースラインは 60〜81 t/s の幅で揺れましたが、倍率そのものは安定していました。絶対速度は揺れても、MTP の効き方は崩れていないということで、実際に回す側としては、ここが大事な点です。
3090 をお使いなら、「MTP で爆速になる」とまでは期待しない方がいいと思います。それでも微増では済まない場面もあるので、無視するには惜しい、という位置づけです。
4090は1.9倍で、別ホストでも再現した
RTX 4090(sm_89)は 96.4 → 187.1 t/s、×1.94、採択率は 0.56 でした。
別の2ホストでも 1.90 → 1.94 で再現したので、たまたま出たラッキー値ではありません。1.9倍は誤差で片付く差ではなく、ローカルでチャットや短文のやり取りを繰り返す使い方なら、体感の差として十分に意味があります。
今回の3枚では、4090 が最も MTP の恩恵を受けました。
5090は、下書きが採択されても速くならなかった
RTX 5090(sm_120 / Blackwell)は 134.5 → 134.6 t/s、×1.00、採択率は 0.45 でした。
これが一番厄介です。draft-mtp 自体は正常にロードされていて、44.5%採択で投機は走っています。 機能が死んでいるのではなく、採択しても速さに変換できていない状態です。最高額の GPU が最弱という結果には、期待していた分だけ少し肩を落とします。ただ、無理に持ち上げる方が不誠実だと思っています。
「MTP を有効にすると逆に遅くなることはあるのか」と聞かれれば、今回の 5090 がほぼそれでした。下書きを検証する手間が利得を食い合うと、純益はほぼ消えます。理屈の上では、採択率が極端に低い環境なら「わずかに遅くなる」こともあり得ます。
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/s の 1.39倍止まりでした。メモリ帯域は約1.8倍という見方もあるので、MTP を足す前のベースラインからして振るいません。ここから先は仮説ですが、Blackwell 側の最適化不足か、現行ビルドとの相性を疑うのが自然です。
では 5090 はこの先も効かないままかというと、分かりません。これは 2026-06-08 時点の特定の llama.cpp ビルドでの結果で、Blackwell(sm_120)向けの最適化が進めば変わる可能性は十分あります。いまは「待ち」が正直な答えです。
採択率が近くても、倍率はここまで割れる
採択率を並べると、近さがよく分かります。
- 3090: 0.48
- 4090: 0.56
- 5090: 0.45
それでも倍率は ×1.25 / ×1.94 / ×1.00 です。MTP の効きは採択率だけでは決まりません。 採択率の数字だけ見て「よし、走っている」と判断すると外します。効いているのは、採択した後の処理が速いか、投機が本当にスループットスループット / TFLOPS決まった時間にこなせる処理の量と、その計算力を表す単位 TFLOPS のこと。詳しく →に変換されるか、のほうです。
「3x高速化」は、B200や31Bモデルの話だった
MTP の「3x」は、B200 や 31B モデルの話です。今回のようなコンシューマ向けの 12B、しかも 7.4GB で帯域律速・すでに高速な条件とは別物です。
理屈としては派手でも、実際には下書きと検証で帯域を食い合います。すでに速い領域に投機を足しても、純益は小さいことがあり、GPU によっては今回の 5090 のように利得が消えることもあります。夢で釣って真実で返すなら、真実はこのあたりです。
自分のGPUで試すかどうかの目安
この記事は「自分の GPU で MTP を試す価値があるか」を判断するための実測です。読者の次の判断は、だいたいこの3つに絞られると思います。
- 3090級なら、MTPは「微増はするが主役ではない」。過度に期待せず試す
- 4090級なら、MTPはかなり効くので、MTPを前提にした構成を検討する価値がある
- 5090は、現時点では「待ち」。少なくとも「速くなる前提」で買い足さない
特に 5090 は、買った人ほど期待しやすいはずです。ですが今回の実測では、現状待ちが正直な答えです。
なお、これは 1 ワークロード(技術解説の生成)・温度0・spec-draft-n-max=4 での結果です。コード生成や別のプロンプトでは、採択率も倍率も動き得ます。Vast.ai のホスト個体差で絶対速度も揺れる(3090 は 60〜81 t/s の幅)ので、倍率は安定していましたが、絶対値は参考程度に見てください。
GPU ごとの絶対速度を並べたいなら、ベンチ早見表(gemma4 12BをどのGPUで動かすか)が別にあります。今回はあくまで同一ビルド内の MTP off/on の倍率だけを見ています。12GB の RTX 4070 Ti に MTP drafter を入れる話は、こちらの導入編にまとめました。
再現は難しくないが、テンプレート抜きだと数字が壊れる
再現は、Vast.ai(GPU を時間単位で借りられるサービス)の上で llama.cpp master を cmake でソースビルドして行いました。プリビルドのイメージでは MTP の arch が反映されないので、そこは避けています。llama.cpp 自体の導入手順は gemma4:12bはollamaで動かない — 12GB GPUでllama.cpp実測52t/sの最短ルート に書いています。
フラグはこれだけです。off(ベースライン)は draft 系を外し、on(MTP)だけ --model-draft と --spec-type draft-mtp を足します。同じビルドで揃えるのがポイントです。
# プリビルドは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でした。
チャットテンプレートで包まないと、5トークンで止まる
一つ、かなり重要な落とし穴があります。instruction-tuned(指示に従うよう調整された)モデルに、llama.cpp の 生の /completion でチャットテンプレートを適用せずにプロンプトを投げると、すぐに終了記号(EOS)が出て5トークンしか生成されず、偽の t/s になります。
ベンチあるあるですが、地味に痛いです。MTP 以前に測定そのものが壊れるので、gemma チャットテンプレートで包むことが必須です。
もう一つ、ignore_eos は使わない方がいいです。温度0だと同じ文の反復ループに入り、採択率を偽って押し上げることがあって、結果が汚れます。便利そうに見えて、ベンチでは罠になります。
MTPはGPU次第。5090は動いていても伸びない
コンシューマ GPU の Gemma4 12B では、MTP の3x高速化は再現しませんでした。3090 が ×1.25、4090 が ×1.94、5090 が ×1.00 です。
覚えておきたいのは、5090 は採択されていたのに速くならなかったことです。「機能が動いていない」のではなく、今の実装と Blackwell の組み合わせでは利得に変換できていない疑いがある、というのが正確なところです。派手な 3x の夢はありますが、実務の判断はもっと地味で、もっと厳しい。そこを見誤らないのが、ローカル GPU の運用ではいちばん効くと思います。
参考リンク
- gemma4 12BはどのGPUで動く?速度早見表【18枚実測】 — 絶対速度の比較はこちら
- Gemma 4 MTP drafterを今すぐ入れるべきか? RTX 4070 Ti 12GBの結論 — 12GB GPUでのMTP導入編
- gemma4:12bはollamaで動かない — llama.cpp実測52t/sの最短ルート — llama.cppの導入手順
- GPUコスパ計算機・ランキング — META-MARK
この記事を書いた人
HW系エンジニアとして20年以上、10,000件を超える顧客訪問と2,000件を超える単独ソリューション実績。AIツールを使った個人開発やIoT農園など、Raspberry Piを使ったオートメーション化なども実践中です!エンジニア専門結婚相談所も運営中、ClaudeCodeで解決できない心の課題も解決いたします!
関連記事
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可否を整理します。
Google Gemma 4が変えたこと——Apache 2.0と本格マルチモーダルで「使えるオープンモデル」の基準が上がった
Google DeepMindが2026年4月にリリースしたGemma 4の実力を整理する。Apache 2.0への変更、E2B〜31Bの4モデル構成、画像・動画・音声対応のマルチモーダル実装、そしてQwen 3.5やDeepSeek V3.2との比較まで。「ローカルで動かして本当に使えるか」という目線で書く。
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。長考時に空応答を返す弱点もあわせて記録しています。
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 で日本語力に差。長考の末に無回答となる症状は両モデル共通でした。
関連AIツール
META-MARK × AI
ローカルAIを動かすGPU、ちゃんと選べていますか?
VRAM・性能・コスパをMetaScoreで数値化。AIアプリ別の推奨ハードウェア要件も確認できます。
PR広告:GPU・キャリアまわりのサービス