How much context fits on your card?
The longest context each recommended model keeps comfortably on the most common cards, at the level it would be downloaded at — with the default fp16 KV cache and with the cache quantized to q8_0 or q4_0.
Rows are the models this site recommends for each card: the largest that fits comfortably, and the largest that leaves a third of the card free, for chat, code and image tasks. Every figure is the VRAM calculator's own at 4K context and batch 1, and each row opens there with the same settings.
Each figure is the longest context that stays green (at most 88% of the card), found by running the calculator itself at every step. "Full window" means the model's own maximum fits; a longer context than that is not on offer. "Tight to" is how far it goes if you accept an amber fit.
RTX 5060 Ti 16G · RTX 4060 Ti 16G · Radeon RX 9070 XT
16 GB
| Model | Level | fp16 cache | q8_0 cache | q4_0 cache | |
|---|---|---|---|---|---|
| Mistral Small 24B Instructmax 32K | AWQ INT4 | 8Ktight to 24K | 16Ktight to 32K | 31Ktight to 32K | Calculator |
| Devstral Small 1.1 24Bmax 128K | AWQ INT4 | 10Ktight to 26K | 19Ktight to 49K | 36Ktight to 92K | Calculator |
| Magistral Small 1.2 24Bmax 128K | AWQ INT4 | 10Ktight to 26K | 19Ktight to 49K | 36Ktight to 92K | Calculator |
| Falcon 3 10B Instructmax 32K | Q4_K_M | 32K · full window | 32K · full window | 32K · full window | Calculator |
| Gemma 4 E4B ITmax 128K | Q8_0 | 128K · full window | 128K · full window | 128K · full window | Calculator |
RTX 4060 Ti 8G
8 GB
| Model | Level | fp16 cache | q8_0 cache | q4_0 cache | |
|---|---|---|---|---|---|
| Falcon 3 10B Instructmax 32K | GPTQ INT4 | 9Ktight to 17K | 17Ktight to 32K | 32K · full window | Calculator |
| Qwen3.5 9Bmax 256K | Q4_K_M | 17Ktight to 57K | 32Ktight to 107K | 62Ktight to 202K | Calculator |
| Qwen3 4B Instructmax 32K | Q6_K | 23Ktight to 32K | 32K · full window | 32K · full window | Calculator |
| Qwen3.5 2Bmax 256K | Q8_0 | 256K · full window | 256K · full window | 256K · full window | Calculator |
RTX 5070
12 GB
| Model | Level | fp16 cache | q8_0 cache | q4_0 cache | |
|---|---|---|---|---|---|
| DeepSeek-V2-Lite Chatmax 160K | Q4_K_M | 18Ktight to 81K | 35Ktight to 153K | 67Ktight to 160K | Calculator |
| Gemma 3 12B ITmax 128K | Q5_K_M | 14Ktight to 44K | 33Ktight to 89K | 70Ktight to 128K | Calculator |
| Granite 3.1 8B Instructmax 128K | Q4_K_M | 31Ktight to 43K | 58Ktight to 81K | 111Ktight to 128K | Calculator |
| Gemma 4 E2B ITmax 128K | Q8_0 | 128K · full window | 128K · full window | 128K · full window | Calculator |
RTX 3090 · RTX 4090
24 GB
| Model | Level | fp16 cache | q8_0 cache | q4_0 cache | |
|---|---|---|---|---|---|
| Recursive Flint 40B-A2.5Bmax 256K | Q3_K_M | 21Ktight to 157K | 43Ktight to 256K | 84Ktight to 256K | Calculator |
| MiniCPM-V 4.7 35B-A3Bmax 256K | Q4_K_S | 15Ktight to 205K | 28Ktight to 256K | 54Ktight to 256K | Calculator |
| ERNIE 4.5 21B-A3Bmax 128K | Q4_K_M | 119Ktight to 128K | 128K · full window | 128K · full window | Calculator |
| GPT-OSS 20Bmax 128K | MXFP4 | 128K · full window | 128K · full window | 128K · full window | Calculator |
| Gemma 3 12B ITmax 128K | Q5_K_M | 128K · full window | 128K · full window | 128K · full window | Calculator |
RTX 5090 · 32 GB RAM (CPU)
32 GB
| Model | Level | fp16 cache | q8_0 cache | q4_0 cache | |
|---|---|---|---|---|---|
| Nemotron 3.5 Bolt 74B-A9Bmax 256K | IQ2_XXS | 256K · full window | 256K · full window | 256K · full window | Calculator |
| GLM-4.7-Flashmax 128K | Q4_K_M | 128K · full window | 128K · full window | 128K · full window | Calculator |
| Gemma 3 27B ITmax 128K | Q4_K_M | 117Ktight to 128K | 128K · full window | 128K · full window | Calculator |
Mac M4 Pro 24G
24 GB
| Model | Level | fp16 cache | q8_0 cache | q4_0 cache | |
|---|---|---|---|---|---|
| Qwen3-VL 30B-A3B Instructmax 40K | Q3_K_M | 4Ktight to 33K | 7Ktight to 40K | 14Ktight to 40K | Calculator |
| North Mini Code 1.0 30B-A3Bmax 256K | Q3_K_M | 23Ktight to 132K | 54Ktight to 256K | 114Ktight to 256K | Calculator |
| DeepSeek-V2-Lite Chatmax 160K | Q4_K_M | 160K · full window | 160K · full window | 160K · full window | Calculator |
| Gemma 3 12B ITmax 128K | Q5_K_M | 91Ktight to 128K | 128K · full window | 128K · full window | Calculator |
Another card? Each of the 78 cards in the index has its own page with every model that fits: all GPU pages
Why context costs memory
Every token of context leaves a key and a value vector in every layer that keeps a cache: 2 × layers × kv_heads × head_dim × bytes per token. Two models of the same size can differ several-fold here. Grouped-query attention shares one KV head between several attention heads; sliding-window layers keep only a fixed window; hybrid models such as Qwen3.5/3.6 keep a growing cache in a quarter of their layers. That is why some models reach their full window on a card where a same-size model stops at a few thousand tokens. Each figure here is found by running the calculator itself at every step, not by inverting the formula.
Quantizing the KV cache
The cache does not have to be fp16. ggml's q8_0 stores 32 values in 34 bytes, about 53% of fp16, and q4_0 stores them in 18, about 28%. Ollama's documentation describes q8_0 as a very small loss in precision that usually has no noticeable impact, and q4_0 as a small-to-medium loss that may be more noticeable at long contexts, varying by model. Both runtimes need Flash Attention for it. In llama.cpp pass -ctk q8_0 -ctv q8_0 (the default -fa auto turns Flash Attention on); in Ollama set OLLAMA_KV_CACHE_TYPE=q8_0 on the server, which applies to every model it loads.
Common questions
- Is a q8_0 cache worth it?
- For long documents and code, usually yes: it roughly doubles the context that fits for the cache's share of memory, and Ollama's own documentation calls the precision loss very small.
q4_0stretches further but its loss is larger and more visible at long contexts, so try it on your own task before relying on it. - Why does a model stop at "full window" even with memory to spare?
- Because that is the longest context the model was trained or configured for; this page never sizes a model past its own window. Runtimes may let you set a longer context, but the model was not built to use it, and answers past the window degrade.
- Does llama.cpp use this much context by default?
- Recent llama.cpp starts from the model's trained context when you omit
-c, then trims it to fit the card, and Ollama picks its own default. Set the context yourself (-c 32768in llama.cpp,num_ctxin Ollama) so you get the length you planned for rather than whatever the runtime settled on.