L LocalNodeOps

Analysis Sep 27, 2026 4 min read

Local LLM Trends: MoE Models and the KV Cache Problem

Why KV cache size, not parameter count, decides which new MoE models fit a 16GB or 24GB GPU. Real GGUF sizes and the math behind each result.

Written by Haseeb

Many of the strongest open-weight models you can run at home are now mixture-of-experts (MoE) models. They advertise small “active” parameter counts, but that number does not tell you how much VRAM you need. This post shows what actually decides whether a model fits your GPU.

Active Parameters Do Not Shrink Your VRAM Bill

An MoE model only uses a few experts per token, but every expert must stay loaded in memory. The weights you need in VRAM are the full file size. Speed improves, memory does not.

The part that varies is the KV cache, the memory that stores your conversation. It depends on the model’s attention design, not on its parameter count.

Same Size Class, Very Different Memory Cost

Numbers below use the real Q4_K_M file from the LocalNodeOps database and the standard formula: total = weights + KV cache + 10% overhead. These are mathematical estimates, not benchmarks.

ModelQ4_K_M fileKV cache at 8KTotal at 8KKV cache at 32KTotal at 32K
gpt-oss 20b10.83 GB0.19 GB~12.1 GB0.75 GB~12.7 GB
Gemma 4 26B A4B15.87 GB0.35 GB~17.8 GB0.82 GB~18.4 GB
Qwen3-Coder 30B17.28 GB0.75 GB~19.8 GB3.00 GB~22.3 GB
GLM-4.7-Flash17.05 GB7.34 GB~26.8 GB29.38 GB~51.1 GB
R1-Distill-Qwen-32B (dense)18.49 GB2.00 GB~22.5 GB8.00 GB~29.1 GB

What the table shows:

  • gpt-oss 20b and Gemma 4 26B A4B use sliding-window attention in most layers, so their KV cache grows slowly. Both stay small even at 32K context.
  • Qwen3-Coder 30B has a normal, grouped KV cache. It fits a 24GB card at 32K, but only just.
  • GLM-4.7-Flash is the warning case. It has about the same file size as Qwen3-Coder, but it uses full multi-head attention, so its KV cache is ten times larger. At 8K context it already needs more than a 24GB card.

Two models with the same file size can need very different GPUs. Always check the model’s own calculator page before you download it.

Context Length Sets Your Memory Bill at Startup

Both llama.cpp and vLLM reserve KV cache memory for your full context window when the model loads. llama.cpp allocates the whole cache for the context you set. vLLM sizes a block pool from a fixed share of VRAM (90% by default). So an out-of-memory error shows up at startup, not halfway through a chat. Two ways to buy back memory:

  • Lower the context window. This is free and works first.
  • Quantize the KV cache to 8-bit. This roughly halves the KV part of the total, with some quality cost. It cannot rescue a model whose weights alone exceed your VRAM.

A Benchmark Baseline, Not Breaking News

DeepSeek-R1-Distill-Qwen-32B was released in January 2025. DeepSeek reported 72.6% pass@1 on AIME 2024 for it. That figure is a useful baseline for judging newer reasoning models, but it is more than a year old, and benchmark setups differ between labs. Treat any comparison as indicative, not exact.

Check Your Own Hardware

Open the VRAM Calculator and pick your model, quantization and context length. If it does not fit, you can rent a GPU by the hour on RunPod (affiliate link) or set up your own server with the LocalNodeOps Docker Stack.

RunPod partner link — we may earn a commission.