NVIDIA RTX 4000 SFF Ada ローカル LLM 推論性能テスト

概要

この記事は、NVIDIA RTX 4000 SFF Ada Generation 20 GB——外部電源コネクタ不要の 70 W カードで ZimaCube に収まる——が、コンテナ化 llama.cpp サーバーを通じて ZimaOS 1.7.1 上でローカル LLM 推論を実行する実測ベンチマークを記録したものです。20 GB の VRAM が 16 GB の RTX PRO 2000との重要な違いです:モデル本来の 256K コンテキストウィンドウが使えるようになります。

5 ステップのデプロイ手順は ローカル LLM 推論をご覧ください。

TL;DR

結論 結果
デプロイ コンテナ化——ghcr.io/ggml-org/llama.cpp:server-cuda、ローカルコンパイル不要
最適なモデル Qwen3.6-35B-A3B、unsloth UD-IQ3_XXS(13.21 GB)
デコード速度 74.5 t/s(Q3_K_S は 83.3 t/s だが 2.3 GB 余計にかかる)
コンテキスト 256K のネイティブコンテキストを達成、KV q4 量子化と併用
MTP 投機的デコード テストのうえ却下——受け入れ率 62〜72% だがデコードの利得は小さく不安定
電力 70 W の壁で 69.8 W、フル負荷で 83 °C

一言で言えば:20 GB の VRAM を備えた RTX 4000 SFF Ada は、16 GB ティアと同じ 35B MoE モデルをフルの 256K コンテキストウィンドウで動かします——推奨構成は 14.5 GB に収まり、十分な余裕があります。

テスト環境

コンポーネント 仕様
GPU NVIDIA RTX 4000 SFF Ada Generation、Compute Capability 8.9、20475 MiB
デバイス ZimaCube(互換 PCIe スロット、70 W で外部電源不要)
OS ZimaOS 1.7.1——カード挿入時にドライバー 580.105.08 が自動で有効化
ランタイム Docker + nvidia-container-toolkit、--gpus all を検証済み
エンジン ghcr.io/ggml-org/llama.cpp:server-cuda(4.3 GB イメージ、sm_80〜120 CUDA カーネル同梱、ローカルビルド不要)
モデル形式 GGUF

特に断りのない限り、ベンチマークは llama-bench を -p 512 -n 256 -r 3(プロンプト 512 トークン、生成 256 トークン、3 回の平均)で使用します。

ベンチマーク結果

量子化比較(llama-bench、512/256)

量子化の出所がモデルの MTP(次トークン予測)層の有無を決めます:prithivMLmods/...-MTP-GGUF の量子化は MTP を保持し、unsloth/...-GGUF の UD 量子化はそれを除去します(ロード時に model doesn't contain MTP layers と報告されます)。

量子化 サイズ MTP デコード t/s プリフィル t/s メモ
Q3_K_S(標準 K-quant) 15.55 GB あり 83.3 1692.6 CUDA カーネルへの適合が最良
IQ3_XXS(unsloth UD) 13.21 GB なし 74.5 1771.2 デコードが 10.6% 遅く、2.3 GB 節約

20 GB カードは IQ3_XXS を選ぶべきです:KV q4 で 256K コンテキストのための余地が残ります。Q3_K_S の 15.55 GB は 16 GB カードではロードすらできません。

モデルの選択自体は 16 GB ティアと同じです:Qwen3.6-35B-A3B はこのクラスのカードに収まる最強のモデルで、ハイブリッド MoE アーキテクチャはエージェントとコーディングのシナリオ向けに作られています——帯域幅の完全な分析は RTX PRO 2000のページにあります。本格的なコーディングやナレッジベースのワークロードには、122B / Flash ティアが次のステップで、より大きなカードが必要です。

最適化スイッチ A/B(llama-bench、512/256、3 回の平均)

構成 プリフィル デコード
ベースライン(最適化なし) 1713.3 83.7
+ flash-attn 1295.6(−24%) 84.2
+ KV q8 1692.6 83.3
+ ubatch 2048 2312.9(+36%)

Flash Attention と長コンテキスト

プロンプト プリフィル(fa=on)
4096 1691.7
8192 1635.1
16384 1580.8

fa=off では 4096 トークンでも failed to create context で失敗します。このモデルでは flash attention が長コンテキストの必須条件です。

256K コンテキストのメモリ計算

構成 結果 VRAM
KV f16 + 256K メモリ不足 >20 GB
KV q8 + 256K(MTP なし) 動作 ~18.35 GB(Q3_K_S)/ 16186 MiB(IQ3_XXS)
KV q4 + 256K(MTP なし) 動作 14906 MiB(IQ3_XXS)
KV q4 + 256K + MTP 動作(Q3_K_S) 18894 MiB

MTP 投機的デコード

測定項目 結果
実際の受け入れ率(サーバーログ) 62〜72%
デコード利得、自然な短い返信 +3.9%
デコード利得、固定 256 トークン、temp=0.8 +26.1%
デコード利得、貪欲 temp=0 −10.1%

MTP は 20 GB ティアでは却下です:受け入れ率は高いものの、デコードは帯域幅でロックされており——MoE モデルはトークンごとに約 3B のアクティブエキスパートを読まざるを得ません。利得は小さく不安定なので、MTP はスキップが推奨です。

エージェントワークロード:長コンテキストでの DeepSeek Harness

実際の DeepSeek Harness エージェントセッションをワークロードとして測定:

総コンテキスト デコード t/s
76K 39.2
101K 33.0

コンテキストが大きくなるとデコードは遅くなります(KV の読み取りが増え、アテンションも増えるため)。これは長コンテキストの固有コストであり、欠陥ではありません——オーバーフローもトランケーションもありません。約 100K のコンテキストでも、約 33 t/s はストリーミングエージェントにとって依然として流暢です。DeepSeek Harness や Codex スタイルのコーディングエージェントにとって、この 256K ウィンドウこそが 16 GB ティアではなくこのカードを選ぶ理由です。

消費電力と温度(フル負荷)

項目
消費電力 69.8 W(70 W 制限いっぱい)
温度 83 °C(正常。スロットリング閾値は約 90 °C+)
使用率 96〜100%
電力制限の調整可否 調整不可(-pl は拒否され exit 4)

なぜここでは MTP が効かないのか

16 GB の RTX PRO 2000では、デコードはメモリ帯域幅で約 65〜70 t/s に制限されます。4000 SFF Ada は帯域幅が大きく(320 GB/s)、デコードは 74〜83 t/s に上がります——しかし同じ MoE の帯域幅ロジックは依然として成立します:トークンごとに約 3B のアクティブエキスパートを読む必要があります。MTP はその上にドラフトモデルを追加し、62〜72% の受け入れ率では、自然なテキストでの実利得は数パーセントで、貪欲サンプリングではマイナスです。メモリは KV q4 と 256K ウィンドウに使う方が価値があります。

推奨構成(20 GB ティア)

項目
量子化 Qwen3.6-35B-A3B UD-IQ3_XXS(13.21 GB)
Flash attention オン
KV キャッシュ q4_0
コンテキスト 256K
ubatch 2048
MTP スキップ
VRAM 14906 MiB(14.56 GB、約 5.5 GB の余裕)

1 コマンドでサーバーを起動します:

docker run -d --name llm-server --gpus all -p 8080:8080 \
-v "$PWD/models/llm:/models" \
ghcr.io/ggml-org/llama.cpp:server-cuda \
-m /models/Qwen3.6-35B-A3B-UD-IQ3_XXS.gguf \
--host 0.0.0.0 --port 8080 \
-c 262144 --n-gpu-layers 999 \
-fa on --cache-type-k q4_0 --cache-type-v q4_0

サービスは http://<host-ip>:8080/v1 で OpenAI 互換エンドポイントを公開します(API key はプレースホルダーで、サーバーは認証しません)。OpenAI 形式のクライアントやエージェントならどれでも直接接続できます。

ティア比較

ティア 組み合わせ VRAM
20 GB IQ3_XXS + 256K + KV q4 14.5 GB
20 GB Q3_K_S + 256K + KV q4 + MTP 18.45 GB(タイト)
16 GB IQ3_XXS + 128K + KV q4 約 14 GB(Q3_K_S はロード時に OOM)

制限事項

  1. MTP のデータポイントと長コンテキストの減衰は単一サンプルです。分散は厳密には評価していません。最適化マトリクス(A/B 表)は 3 回の平均です。
  2. ハードウェアで検証したのは 20 GB 単一カードティアのみです。16/24/32 GB ティアは理論上の互換マトリクスに従い、本測定の対象外です。
  3. NVFP4(Blackwell のみ)、EAGLE、電力制限の調整はこのカードでは利用できず、テストに含めていません。