16GB VRAM LLM ベンチマーク:llama.cpp による速度とコンテキスト評価

llama.cpp の 16 GB VRAM におけるトークン生成速度(表)。

目次

ここでは、VRAM 16GB の GPU で動作するいくつかの LLM の速度を比較し、セルフホスティングに最適なモデルを選定しています。

私は llama.cpp 上で、コンテキストウィンドウを 19K、32K、64K トークンでこれらの LLM を実行しました。

Stylized GPU with VRAM blocks and benchmark-style charts

本記事では、速度の観点から可能な限り高いパフォーマンスを引き出すための試みを記録しています。

LLM 速度比較表(トークン/秒と VRAM)

Model Size 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
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 負荷」です。 この項目の数字が低い場合、モデルは主に CPU で実行されており、このハードウェアでは十分な速度が出せていないことを意味します。このパターンは、GPU に収容できるモデルの容量が少なすぎる場合や、コンテキストがホスト(CPU/システムメモリ)への転送を促す場合に現れます。

llama.cpp、LLM パフォーマンス、OpenCode および他の比較について

インストールパス、llama-clillama-server の例、および VRAM とトークン/秒(コンテキストサイズ、バッチ処理、-ngl など)に影響するフラグについては、まず llama.cpp クイックスタート(CLI とサーバー) から始めてください。

より広範なパフォーマンスの全体像(スループットとレイテンシ、VRAM 制限、並行リクエスト、およびハードウェアとランタイムにわたるベンチマークの整合性)については、2026 年の LLM パフォーマンス:ベンチマーク、ボトルネック、最適化 を参照してください。

レスポンスの質については、他の記事で分析されています。例えば以下があります:

Ollama 上の LLM についても同様のテストを行いました:16GB VRAM GPU 向けのベスト LLM.

コンテキスト長がトークン/秒に与える影響

19K から 32K や 64K トークンへと移行する際、KV キャッシュが成長し、VRAM への圧力が高まります。一部の行では 64K でトークン/秒が大幅に低下するのに対し、他の行は平坦な状態を維持します。これは、モデルが一般的に「遅い」と仮定するのではなく、量子化、コンテキスト制限、またはレイヤーオフロードを見直す必要がある信号となります。

私がテストのために選んだモデルと量子化は、自分で実行し、この環境でコスト/ベネフィットの観点から良い利益を得られるかどうかを確認するためです。したがって、ここでは 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)

Model 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 コマンドラインパラメータを試みました。 以下が達成できた結果です:

Model Context Layers on GPU CPU/CPU load Speed
Qwen3.5-27B-IQ4_XS.gguf 18k 65 98%/100% 38.0
Qwen3.5-27B-IQ4_XS.gguf 64k 53 33%/488% 15.7

16 GB VRAM 構築のまとめ

  • 私の現在の最推しである 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 に収容させることができ、パフォーマンスの低下はありません。
  • 16GB VRAM では gemma-4-31B は使用しないが、gemma-4-26B は中程度に良いかもしれない… 確認が必要。
  • Nemotron cascade 2 と GLM-4.7 Flash REAP 23B がどれほど良く動作するかテストする必要があります。Qwen3.5-35B q3 よりも優れているでしょうか?疑わしいですが、依然として確認のためにテストする価値があります。

購読する

システム、インフラ、AIエンジニアリングの新記事をお届けします。