16GB VRAM における llama.cpp による LLM ベンチマーク(速度とコンテキスト)
16 GB VRAMでのllama.cppトークン速度(表)。
ここでは、VRAM 16GB 搭載の GPU 上で動作する複数の LLM の速度を比較し、セルフホスティング用に最適なモデルを選定しています。
これらの LLM は、llama.cpp を使用し、19K、32K、および 64K トークンのコンテキストウィンドウで実行しました。
VRAM ブロックとベンチマーク風のチャート付きのスタイライズされた GPU の画像
この記事では、速度という点において、可能な限り高いパフォーマンスを引き出すための試みを記録しています。
LLM 速度比較表(トークン/秒と VRAM)
| モデル | サイズ | 19K VRAM | 19K GPU/CPU | 19K T/s | 32K VRAM | 32K Load | 32K T/s | 64K VRAM | 64K Load | 64K: T/s |
|---|---|---|---|---|---|---|---|---|---|---|
| Qwen3.6-35B-A3B-UD-IQ3_XXS | 13.2 | 13.8GB | 96%/100% | 147.5 | 14.0GB | 96%/101% | 149.1 | 14.7GB | 96%/101% | 145.8 |
| Qwen3.6-35B-A3B-UD-IQ4_XS | 17.7 | 14.3GB | 62%/266% | 95.0 | 14.9GB | 58%/279% | 92.3 | 14.9GB | 57%/293% | 86.4 |
| Qwen3.5-35B-A3B-UD-IQ3_S | 13.6 | 14.3GB | 93%/100% | 136.4 | 14.6GB | 93%/100% | 138.5 | 14.9GB | 88%/115% | 136.8 |
| Qwen3.5-27B-IQ3_XXS-bartowsky | 11.3 | 12.8 | 98/100 | 44.9 | 13.5 | 98/100 | 44.9 | 14.5 | 45/415 | 23.6 |
| Qwen3.5-27B-UD-IQ3_XXS | 11.5 | 12.9 | 98/100 | 45.3 | 13.7 | 98/100 | 45.1 | 14.7 | 45/410 | 22.7 |
| Qwen3.5-27B-IQ4_XS.gguf | 15.0 | 14.6 | 49/406 | 20.5 | 14.7 | 37/465 | 17.4 | 14.7 | 23/533 | 13.3 |
| Qwen3.5-122B-A10B-UD-IQ3_XXS | 44.7 | 14.7 | 30/470 | 22.3 | 14.7 | 30/480 | 21.8 | 14.7 | 28/490 | 21.5 |
| Qwen3.5-122B-A10B-UD-IQ3_S | 46.5 | 14.7 | 25/516 | 19.4 | 14.7 | 24/516 | 19.5 | 14.7 | 24/516 | 19.6 |
| Mistral-Small-4-119B UD-IQ3_XXS | 42.8 | 14.8 | 28/585 | 30.4 | 14.7 | 27/574 | 28.5 | 14.9 | 20/590 | 31.5 |
| Qwen3-Coder-Next-UD-IQ4_XS | 38.4 | 14.6 | 32/460 | 41.1 | 14.7 | 29/440 | 41.3 | 14.8 | 32/460 | 38.3 |
| Nemotron Super 120b IQ3_XXS | 56.2 | 15.0 | 26/517 | 17.5 | 14.6 | 26/531 | 17.4 | 14.6 | 26/535 | 17.6 |
| gemma-4-26B-A4B-it-UD-IQ4_XS | 13.4 | 14.7 | 95/100 | 121.7 | 14.9 | 95/115 | 114.9 | 14.9 | 75/190 | 96.1 |
| gemma-4-31B-it-UD-IQ3_XXS | 11.8 | 14.8 | 68/287 | 29.2 | 14.8 | 41/480 | 18.4 | 14.8 | 18/634 | 8.1 |
| GLM-4.7-Flash-IQ4_XS | 16.3 | 15.0 | 66/240 | 91.8 | 14.9 | 62/262 | 86.1 | 14.9 | 53/313 | 72.5 |
| GLM-4.7-Flash-REAP-23B IQ4_XS | 12.6 | 13.7 | 92/100 | 122.0 | 14.4 | 95/102 | 123.2 | 14.9 | 71/196 | 97.1 |
19K、32K、64K はコンテキストサイズを表しています。
上記の load は GPU Load です。
この列の値が低い場合、モデルは主に CPU で動作しており、このハードウェアでは十分な速度が得られないことを意味します。これは、GPU に収まるモデルの割合が少なかったり、コンテキストにより処理がホストに押し戻されたりする場合に、人々がよく見るパターンと一致します。
llama.cpp、LLM のパフォーマンス、OpenCode などの比較について
インストールパス、llama-cli や llama-server の使用例、および VRAM とトークン/秒(コンテキストサイズ、バッチ処理、-ngl)に影響を与えるフラグについては、まず llama.cpp クイックスタート(CLI と Server 対応) を参照してください。
より広範なパフォーマンスの全体像(スループットとレイテンシの関係、VRAM の制限、並列リクエスト、ハードウェアとランタイム間でベンチマークがどのように組み合わされるか)については、2026 年の LLM パフォーマンス:ベンチマーク、ボトルネックと最適化 をご覧ください。
応答の品質は他の記事で分析されています。例えば:
- OpenCode 向けのベスト LLM - ローカルテスト実施済み。OpenCode についてさらに詳しく知りたい場合は、OpenCode クイックスタート:ターミナル AI コーディングエージェンツのインストール、設定、使用方法 をお読みください。
- Hugo ページ翻訳品質の比較 - Ollama 上の LLM
Ollama 上の LLM でも同様のテストを実施しました:VRAM 16GB GPU での Ollama 向けベスト LLM。
Qwen 3.6 27B または 35B を llama.cpp で実行しており、生成速度をさらに押し上げたい場合は、16GB GPU での Qwen 3.6 MTP と標準デコードの比較 をご参照ください — 27B デンサモデルでは、MTP 投機的デコードにより最大 67% の生成スループット向上が見られ、各 --spec-draft-n-max レベルにおける VRAM コストとコンテキストウィンドウのトレードオフを示す表が掲載されています。
コンテキスト長がトークン/秒を変える理由
19K から 32K または 64K トークンへと移動するにつれ、KV キャッシュは増加し、VRAM への負荷が高まります。一部の行では 64K でトークン/秒が大幅に低下する一方、他の行では平坦な場合があり、これはモデルが一般的に「遅い」と推測するのではなく、クオンティゼーション、コンテキスト制限、またはレイヤーオフロードを再検討すべきシグナルです。これらの数値の背後にある予算計算 — トークンあたりの KV バイト数の正確な公式、32K/64K/128K におけるキャッシュタイプ別の表、独自の余剰容量を計算する方法 — については、16 GB GPU における KV キャッシュ:長いコンテキストを本当に適合させる を参照してください。
テストに選んだモデルとクオンティゼーションは、私が個人的に実行して、この機器においてコスト対効果の面で良い成果をもたらすかどうかを確認するためです。したがって、ここでは 200k コンテキストの q8 クオンティゼーションはありません :) …
GPU/CPU は、nvitop で計測された負荷です。
llama.cpp が GPU へのレイヤーのアンローディングを自動設定する際、1GB を空けるよう試みます。
このパラメータはコマンドラインパラメータ -ngl で手動で指定できますが、ここではそれを微調整しません。
必要なのは、32k から 64k へコンテキストウィンドウサイズを増加させた際の大幅なパフォーマンス低下がある場合、アンロードされたレイヤー数を微調整することで 64k での速度向上を試みられる可能性があることを理解することだけです。
テストハードウェアと llama.cpp の設定
以下の構成の PC で LLM の速度をテストしました:
- CPU: i-14700
- RAM: 64GB 6000Hz (2x32GB)
- GPU: RTX-4080
- Ubuntu (NVidia ドライバー搭載)
- llama.cpp/llama-cli、アンロードされたレイヤーの指定なし
- llama-cli を開始する前の初期 VRAM 使用量: 300MB
128K コンテキストでの追加実行(Qwen3.5 27B と 122B)
| モデル | 128K Load | 128K: T/s |
|---|---|---|
| Qwen3.5-27B-UD-IQ3_XXS | 16/625 | 9.6 |
| Qwen3.5-122B-A10B-UD-IQ3_XXS | 27/496 | 19.2 |
微調整された実行
興味深いいくつかのモデルとクオンティゼーションについては、VRAM をより効率的に利用するために、特別な llama-cpp コマンドラインパラメータを探索してみました。 以下が実現できた内容です:
| モデル | コンテキスト | GPU 上のレイヤー数 | CPU/CPU 負荷 | 速度 |
|---|---|---|---|---|
| Qwen3.5-27B-IQ4_XS.gguf | 18k | 65 | 98%/100% | 38.0 |
| Qwen3.5-27B-IQ4_XS.gguf | 64k | 53 | 33%/488% | 15.7 |
VRAM 16 GB ビルドの要点
- 現在の私の favorito な Qwen3.5-27B-UD-IQ3_XXS は、そのスイートスポットである 50k コンテキストで良好なパフォーマンスを示しています(約 36t/s を得られています)。
- Qwen3.5-122B-A10B-UD-IQ3_XXS は、64K を超えるコンテキストにおいて、パフォーマンス面で Qwen3.5 27B を上回っています。
- Qwen3.5-35B-A3B-UD-IQ3_S を 100k トークンのコンテキスト処理に押し上げることができ、VRAM に収まるため、パフォーマンスの低下はありません。
- gemma-4-31B は 16GB VRAM では使用しませんが、gemma-4-26B はまあまあかな…、テストが必要です。
- Nemotron cascade 2 と GLM-4.7 Flash REAP 23B がどの程度よく動作するかをテストする必要があります。Qwen3.5-35B q3 より良くなるでしょうか? 疑わしいですが、念のためテストして疑念を確認してもよいです。