VRAM 16GBの人は古いGPUを挿してみよう

Reddit r/LocalLLaMA / 2026/4/27

💬 オピニオンDeveloper Stack & InfrastructureTools & Practical UsageModels & Research

要点

  • VRAM 16GBのユーザーが密度の高い約30B級のLLMを動かしたい場合、6GB以上のVRAMを持つ古いGPUを追加して実質的なVRAM容量を増やすことを提案しています。
  • 2枚目のカードが弱くても性能向上が見込める理由として、モデル構成を2台のVRAM上に収められることが挙げられています。
  • llama-serverの設定例として、マルチGPU対応のVulkanバックエンドを有効化し、no-mmap と mlock=false でシステムRAM側にモデルを置かないようにしつつ、KVキャッシュ設定をVRAM節約に寄せる工夫を紹介しています。
  • 実例として 16GB(例:RTX 5070 Ti)+6GB(例:GTX 2060)の構成を示し、`llama-server.exe --list-devices` でデバイスIDを確認して設定するよう案内しています。
  • 大きなコンテキストでのスループットの目安(例:実利用で約71kコンテキスト)を挙げ、単一カードより大幅に速くなることを報告しています。

最新の密な約30bモデルを実行したいが、VRAMが16GBしかない人向けです。VRAMが6GB以上の古いカードを持っているなら、挿してください。

2枚のカードであっても、すべてがVRAMに収まることが重要です。片方がかなり非力でも問題ありません。

私は5070Ti 16GBと、古い2060 6GBを持っています。一般的には、最大のパフォーマンスを得るには同じGPUを2枚用意する必要がある、という考えがあります。ですがある日、ふと思いました。試してみればどうだろう?

見てみましょう。LLMのためだけにマザーボードを買っていない限り、おそらくあなたのマザーボードには「本当の」PCI-E x16スロットが1つあり、ほかにx16に見えるけれど実際にはx4で配線されているスロットがいくつかあるはずです。これは私と同じ状況です。そういう古いカード用のスロットはちょうど良いです。

16GB + 6GB = 22GBで、24GBクラスのカードにかなり近づきます。より良い古いカードを持っているなら、運がいいですね!

次に、次のような設定でllama-serverを使います

[*] jinja = true cache-prompt = true n-gpu-layers = 999 no-mmap = true mlock = false np = 1 t = 0 [qwen/qwen3.6-27b] model = ./Qwen3.6-27B-GGUF/Qwen3.6-27B-Q4_K_M.gguf mmproj = ./Qwen3.6-27B-GGUF/mmproj-Qwen3.6-27B-BF16.gguf reasoning = on dev = Vulkan1,Vulkan2 c = 128000 no-mmproj-offload = true cache-type-k = q8_0 cache-type-v = q8_0 

いくつかのポイント:
- dev=Vulkan1,Vulkan2:これで2つのGPUが有効になります。`llama-server.exe --list-devices` を実行して、どれを設定すべきか確認してください。
- no-mmap と mlock=false により、モデルをRAMから遠ざけます
- np=1、no-mmproj-offload(またはmmprojモデルを指定しないこと)、cache-type-k と cache-type-v によって、必要なVRAMを最小化します
- n-gpu-layers=999:GPUオフロードを優先します。とはいえ不要かもしれませんが、私はこれを維持しています
- split-mode=layer:層(layer)をデバイス間で非対称に分割します。「layer」はデフォルトなので、上では表示されません。
- c=128000 は少し無理があるかもしれませんが、私の環境では十分うまく動いています。

ちなみに、私はモニターを接続したインテルの内蔵GPUも持っていて、それがVulkan0です。

いくつかの数値です。基本的に、最大コンテキスト128kで、実際のコンテキスト使用は71k、pp=186t/s、tg=19t/sです。単一カードの4t/sと比べると、かなり実用的な速度です。

[56288] prompt eval time = 5761.53 ms / 1076 tokens ( 5.35 ms per token, 186.76 tokens per second) [56288] eval time = 58000.15 ms / 1114 tokens ( 52.06 ms per token, 19.21 tokens per second) [56288] total time = 63761.69 ms / 2190 tokens [56288] slot release: id 0 | task 654 | stop processing: n_tokens = 71703, truncated = 0 
submitted by /u/akira3weet
[link] [comments]