Published · Phase 2
RTX 5090 KV Cache: F16 vs Q8 vs Q4
Use Q8 KV cache as the default quality/memory compromise on an RTX 5090. Use Q4 KV cache only when long context or concurrency is the actual bottleneck, and keep F16 for short-context quality-sensitive work with ample headroom.
Editorial review: complete · Updated 2026-08-30
Plain-English answer
Plain-English answer guidance: Use Q8 KV cache as the default quality/memory compromise on an RTX 5090. Use Q4 KV cache only when long context or concurrency is the actual bottleneck, and keep F16 for short-context quality-sensitive work with ample headroom.
Why it matters
Why it matters guidance: This setting matters most for RAG, long documents, agent histories, and multi-user serving. Short personal chats rarely need the risk of the most aggressive cache quantization. Q8 is a practical default for 16K–64K experiments. Q4 becomes attractive for very long windows or many simultaneous sequences when the model weights already fit comfortably.
Real StackBench examples
| Configuration | Evidence state | Metric | Source |
|---|---|---|---|
| Qwen3.8-27B · RTX 5090 owner-collected public lab · llama.cpp | Measured · Grade A | 22840082432 bytes | StackBench controlled lab approved source qwen38-rtx5090-owner-matrix-20260816 |
| Qwen3.8-27B · RTX 5090 owner-collected public lab · llama.cpp | Measured · Grade A | 22489858048 bytes | StackBench controlled lab approved source qwen38-rtx5090-owner-matrix-20260816 |
| Qwen3.8-27B · RTX 5090 owner-collected public lab · llama.cpp | Measured · Grade A | 22898802688 bytes | StackBench controlled lab approved source qwen38-rtx5090-owner-matrix-20260816 |
| Qwen3.8-27B · RTX 5090 owner-collected public lab · llama.cpp | Measured · Grade A | 22349348864 bytes | StackBench controlled lab approved source qwen38-rtx5090-owner-matrix-20260816 |
| Qwen3.8-27B · RTX 5090 owner-collected public lab · llama.cpp | Measured · Grade A | 22452109312 bytes | StackBench controlled lab approved source qwen38-rtx5090-owner-matrix-20260816 |
| Qwen3.8-27B · RTX 5090 owner-collected public lab · llama.cpp | Measured · Grade A | 23446159360 bytes | StackBench controlled lab approved source qwen38-rtx5090-owner-matrix-20260816 |
| Qwen3.8-27B · RTX 5090 owner-collected public lab · llama.cpp | Measured · Grade A | 22642950144 bytes | StackBench controlled lab approved source qwen38-rtx5090-owner-matrix-20260816 |
| Qwen3.8-27B · RTX 5090 owner-collected public lab · llama.cpp | Measured · Grade A | 22632464384 bytes | StackBench controlled lab approved source qwen38-rtx5090-owner-matrix-20260816 |
| Qwen3.8-27B · RTX 5090 owner-collected public lab · llama.cpp | Measured · Grade A | 20898119680 bytes | StackBench controlled lab approved source qwen38-rtx5090-owner-matrix-20260816 |
| Qwen3.8-27B · RTX 5090 owner-collected public lab · llama.cpp | Measured · Grade A | 20774387712 bytes | StackBench controlled lab approved source qwen38-rtx5090-owner-matrix-20260816 |
| Qwen3.8-27B · RTX 5090 owner-collected public lab · llama.cpp | Measured · Grade A | 20854079488 bytes | StackBench controlled lab approved source qwen38-rtx5090-owner-matrix-20260816 |
| Qwen3.8-27B · RTX 5090 owner-collected public lab · llama.cpp | Measured · Grade A | 22313697280 bytes | StackBench controlled lab approved source qwen38-rtx5090-owner-matrix-20260816 |
Common misconception
Common misconception guidance: A cache format may load successfully yet degrade retrieval, copying, or long-range reasoning in subtle ways. Use calibrated scales when the runtime supports them and quality matters.
Measured / example table
| Configuration | Evidence state | Metric | Source |
|---|---|---|---|
| Qwen3.8-27B · RTX 5090 owner-collected public lab · llama.cpp | Measured · Grade A | 22840082432 bytes | StackBench controlled lab approved source qwen38-rtx5090-owner-matrix-20260816 |
| Qwen3.8-27B · RTX 5090 owner-collected public lab · llama.cpp | Measured · Grade A | 22489858048 bytes | StackBench controlled lab approved source qwen38-rtx5090-owner-matrix-20260816 |
| Qwen3.8-27B · RTX 5090 owner-collected public lab · llama.cpp | Measured · Grade A | 22898802688 bytes | StackBench controlled lab approved source qwen38-rtx5090-owner-matrix-20260816 |
| Qwen3.8-27B · RTX 5090 owner-collected public lab · llama.cpp | Measured · Grade A | 22349348864 bytes | StackBench controlled lab approved source qwen38-rtx5090-owner-matrix-20260816 |
| Qwen3.8-27B · RTX 5090 owner-collected public lab · llama.cpp | Measured · Grade A | 22452109312 bytes | StackBench controlled lab approved source qwen38-rtx5090-owner-matrix-20260816 |
| Qwen3.8-27B · RTX 5090 owner-collected public lab · llama.cpp | Measured · Grade A | 23446159360 bytes | StackBench controlled lab approved source qwen38-rtx5090-owner-matrix-20260816 |
| Qwen3.8-27B · RTX 5090 owner-collected public lab · llama.cpp | Measured · Grade A | 22642950144 bytes | StackBench controlled lab approved source qwen38-rtx5090-owner-matrix-20260816 |
| Qwen3.8-27B · RTX 5090 owner-collected public lab · llama.cpp | Measured · Grade A | 22632464384 bytes | StackBench controlled lab approved source qwen38-rtx5090-owner-matrix-20260816 |
| Qwen3.8-27B · RTX 5090 owner-collected public lab · llama.cpp | Measured · Grade A | 20898119680 bytes | StackBench controlled lab approved source qwen38-rtx5090-owner-matrix-20260816 |
| Qwen3.8-27B · RTX 5090 owner-collected public lab · llama.cpp | Measured · Grade A | 20774387712 bytes | StackBench controlled lab approved source qwen38-rtx5090-owner-matrix-20260816 |
| Qwen3.8-27B · RTX 5090 owner-collected public lab · llama.cpp | Measured · Grade A | 20854079488 bytes | StackBench controlled lab approved source qwen38-rtx5090-owner-matrix-20260816 |
| Qwen3.8-27B · RTX 5090 owner-collected public lab · llama.cpp | Measured · Grade A | 22313697280 bytes | StackBench controlled lab approved source qwen38-rtx5090-owner-matrix-20260816 |
Decision rule
Decision rule guidance: Start Q8. Move to Q4 only after measuring memory pressure and confirming answer quality; move to F16 only when cache is small and precision-sensitive output justifies it.
Related benchmarks
Related benchmarks guidance: Quantized cache usually changes maximum context/concurrency more than raw decode speed. Q8 often preserves quality well; Q4 can save substantial memory but deserves a task-specific regression set. Reduce maximum context, cap concurrency, enable prefix caching, or choose a smaller weight quantization before adopting an untested cache format.
Planner / Explore CTA
Compare this recommendation against your model, context, concurrency, latency, and budget in the ComputeSage Planner.
Sources / methodology
Recommendations combine official specifications, public model/runtime documentation, adjacent benchmark observations, and clearly labeled engineering estimates. Review the ComputeSage evidence methodology.