In 2026, a production RAG retrieval service with 50 concurrent agents and a corpus under 5 million documents commits roughly 42 GB of GPU memory on a single GPU, leaving about 38 GB for the KV cache. That number covers three VRAM consumers: a small embedding model (1–14 GB), a GPU-accelerated index, and the LLM inference engine. Your exact requirements depend on corpus size, model choice, quantization, and concurrency. This deployment guide provides sizing formulas and three ready-made configurations to plan your GPU infrastructure, whether you are hosting on a US server or another region. Understanding how much GPU memory your RAG pipeline needs starts with these components. You need a dedicated GPU for the LLM. A dedicated GPU also helps for embedding processing. Your LLM model weights and LLM KV cache are the largest consumers. The GPU-accelerated index stores embedding vectors and is part of the retrieval pipeline. Embedding dimension affects index size. The KV cache stores tokens for each session. During inference, tokens require careful planning. Use a 2026 serving framework to manage tokens efficiently. This retrieval guide includes a sizing guide. Determine how much GPU memory your deployment requires.

Key Takeaways

  • A standard RAG service with 50 concurrent agents uses about 42 GB of GPU memory.
  • The embedding model and vector index together use less than 2 GB of GPU memory.
  • The LLM model weights and KV cache consume most of the GPU memory.
  • You can choose from three hardware tiers: budget, standard, and production.
  • Always test your setup with real traffic before you buy more GPUs.

GPU Memory Breakdown for a RAG Stack

Your RAG stack splits GPU memory across three consumers. Two of them stay surprisingly small in 2026. The embedding model and the vector index together often use less than 2 GB. That leaves the rest of your GPU for the LLM.

Embedding Model Footprint

An embedding model co-located on the same GPU uses only 1–14 GB of VRAM today. Older guides quoted 2–8 GB, and that estimate no longer holds. Modern embedding models are compact encoders. You run them in FP16 or INT8 precision. The embedding model also shares context with the retrieval pipeline, so it does not need a dedicated allocation. Each embedding vector it produces is small, and the model itself stays resident without competing for space.

Vector Index Footprint

Vector index memory scales with corpus size. A useful rule of thumb is about 3 GB per million vectors at 768 dimensions. Your gpu-accelerated index holds these vectors for fast retrieval. The tradeoff between GPU-resident and CPU-offloaded indexes matters here.

DimensionGPU OffloadingCPU Offloading
Retrieval latencyGPU-accelerated IVF search beats fast-scan CPU methods by nearly an order of magnitudeCPU retrieval can take up to 2× as long as LLM prefill, raising TTFT from 197ms to 606ms
Memory pressureIndex competes with LLM KV cache and model weightsFrees GPU memory for LLM inference, but CPU memory holds the full index
LLM throughputLess KV cache space degrades LLM throughputNo GPU contention, but slow retrieval bottlenecks generation

Access patterns are skewed. The top 20% of clusters serve roughly 60% of Wiki-All accesses and over 93% of ORCAS accesses. Tiered designs cache hot clusters on GPU and cold clusters on CPU. Adaptive partitioning picks an optimal split point, such as 31.5% GPU-resident under a 400ms SLO. This balance preserves LLM generation performance while improving SLO throughput up to 1.5×. Keep these two consumers lean, and your tokens and KV cache get the room they need.

LLM Inference and KV Cache in RAG

The LLM inference engine consumes most of your GPU memory budget. You split this consumption into two categories: the model weights and the KV cache. Understanding how each scales lets you size your hardware for your target concurrency and context length.

Model Weights by Size

Your choice of model determines the base requirement. You can apply quantization to shrink the footprint. The table below shows the range for Llama 3.3 70B, one of the most popular models in production RAG stacks.

QuantizationTotal VRAM (Llama 3.3 70B)Quality vs. FP16
FP16 (full precision)~144 GB100% (reference)
FP8 / Q8~78 GB99%
Q6_K~60 GB98%
Q5_K_M~52 GB96%
Q4_K_M (most popular)~46 GB93%
Q3_K_M~37 GB85% (noticeable degradation)

You can see that a single 80 GB GPU such as the H100 fits the Q4_K_M variant comfortably while leaving room for other consumers in your pipeline. The Q3_K_M variant fits an L40S 48 GB card but at a noticeable quality drop. You should not use Q3_K_M for sensitive retrieval tasks. Smaller models such as Qwen3-8B require only 16 GB at FP16. An INT4 quantized version of this model needs just 4–5 GB, making it ideal for a low-cost embedding and generation stack.

KV Cache and Concurrency

Model weights are static. The KV cache grows dynamically with each active session. You must account for this variable to avoid out-of-memory errors during peak load.

The formula for total KV cache memory is straightforward. You calculate it as:

Total KV cache bytes = 2 × num_layers × num_key_value_heads × head_dim × cached_tokens × active_sequences × bytes_per_element

The factor of 2 accounts for the key and value tensors stored separately. For the 42 GB committed baseline described earlier, you allocate about 38 GB of that for the KV cache when running 50 concurrent agents. Suppose you have a 32-layer LLM with 8 key-value heads, a head dimension of 128, and 8,000 cached tokens. Each token then consumes approximately 64 KB per sequence. Multiply that by 50 agents, and you arrive at a 25 GB-plus cache before any padding or batching overhead.

When you plan for 200 concurrent users, the KV cache alone can exceed 100 GB even for a 7B-parameter model. This forces you onto multi-GPU nodes. Distribution across GPUs becomes mandatory at that concurrency level. You cannot fit everything on one card. You must also consider that the embedding model co-located on the same GPU consumes only 1–14 GB, so your main VRAM constraint remains the LLM’s model weights combined with the KV cache for your peak number of simultaneous sessions.

Model-to-GPU Memory Reference Table

You now understand how weights and KV cache scale. The next step maps specific models to. The table below consolidates the most common 2026 LLM choices into a single reference. Every figure includes 15% overhead and excludes KV cache, so you can add your own concurrency headroom on top.

Dense Models 8B to 70B

Dense models remain the default choice for RAG retrieval services. Each parameter activates on every token, so capability scales directly with size. The tradeoff is straightforward: bigger models need more gpu memory and deliver stronger reasoning.

ModelFP16INT84-bitMinimum GPU
Llama 3.2 3B7 GB4.5 GB2.8 GBL4 24 GB
Llama 3.1 8B18 GB10 GB6.5 GBL4 24 GB
Qwen 2.5 14B31 GB17 GB10.5 GBL4 24 GB
Qwen 2.5 32B70 GB37 GB21 GBL40S 48 GB
Llama 3.1 70B150 GB78 GB44 GB2× H100 80 GB
Qwen 2.5 72B155 GB80 GB46 GB2× H100 80 GB
Mistral Large 123B260 GB133 GB78 GBH100 80 GB
Llama 3.1 405B850 GB440 GB245 GB4× H100 80 GB

The pattern is clear. A 4-bit quantization cuts your footprint to roughly one-third of FP16. That reduction moves a 70B model from a two-GPU server onto a single card. Smaller dense models such as Qwen3-8B need only 16 GB at FP16. These mid-range options fit comfortably on an L40S 48 GB card with room for your embedding model and vector index.

MoE and Quantized Variants

Mixture-of-expert models change the memory math. A MoE model stores all parameters in memory, but it activates only a small subset per token. Your gpu memory footprint tracks total parameters, not active ones. A 30B MoE and a 30B dense model both need roughly 60 GB. The real question is what you get for those gigabytes: dense converts them into capability, MoE into throughput.

Mixtral 8x7B illustrates this tradeoff well. The model holds 46.7B total parameters but activates only about 12.9B per token. At 4-bit quantization, the Q4_K_M build needs 26.44 GB of memory and a maximum of 28.94 GB of RAM. That footprint fits a single 24 GB gpu when you offload some layers. Mixtral 8x22B is a different story. Its 176B total parameters demand a multi-GPU server with 80+ GB of combined VRAM.

Quantized MoE variants deliver strong throughput per gigabyte. Consider a Qwen3.5-35B-A3B MoE model at Q4_K_M. It uses 7.6 GB of VRAM and reaches 8.61 tokens per second. A dense Qwen3.5-27B model at the same quantization uses 7.7 GB but manages only 3.57 tokens per second. The MoE design activates roughly 3B parameters per token across 256 experts, with only 8 routed plus 1 shared expert engaged. This efficiency lets all 99 layers run on the gpu with just 7.6 GB, only 0.1 GB more than a dense 9B model, while delivering 2.4× higher speed.

For smaller deployments, Mistral 7B runs on a single 8 GB consumer gpu or even a laptop CPU. Mistral NeMo 12B serves as a strong mid-range option for one workstation card. These choices keep your inference costs low when your corpus and concurrency stay modest.

The KV cache formula stays the same regardless of architecture. You calculate it as 2 × layers × kv_heads × head_dim × bytes × context × batch ÷ 1e9. For Llama 3.1 8B with grouped-query attention at FP16, each sequence consumes about 0.13 GB per 1,000 tokens. At 8K context with 32 concurrent chats, that KV cache alone reaches roughly 33 GB. Add this headroom to the weight figures above before you commit to hardware.

Three GPU Configurations for RAG in 2026

Budget, Standard, and Production Tiers

You can match your retrieval service to one of three hardware tiers. The budget tier uses a single NVIDIA L4 24 GB. This card handles 7B–14B models at FP16 in roughly 12–16 GB, and it fits embedding models alongside the LLM. The L4 delivers 242 TFLOPS through native FP8 support, which doubles FP16 throughput. It is the lowest cost-per-token data center GPU for serving 7B–13B models. A 70B model at 4-bit needs about 35 GB, so it exceeds the L4’s 24 GB. Keep your corpus small and your concurrency low on this tier.

The standard tier uses a single L40S 48 GB or H100 80 GB. This matches the 42 GB committed baseline for 50 concurrent agents. The production tier spreads multi-H100 or H200 nodes across 200+ concurrent users and several use cases. Exact memory depends on model sizes and concurrency.

TierGPUBest ForModel Range
BudgetL4 24 GBPrivate RAG, small corpora7B–14B FP16
StandardL40S 48 GB / H100 80 GB50 concurrent agents70B 4-bit
ProductionMulti-H100 / H200200+ usersMixed models

Cost-per-Query Comparison

Cost per query tracks your tokens and your hardware. The budget tier wins on price for light loads. A single L4 serves 7B–13B models at the lowest cost per token among data center GPUs. The standard tier costs more per hour but handles far more tokens per second. The production tier spreads cost across many users, so cost per query drops at high volume. Benchmark your own load before you commit to multi-GPU hardware.

How Much GPU Memory Do You Need? Sizing Formulas

You can now turn the breakdown into two formulas. The first sizes your index. The second sizes your whole deployment.

Index Memory Formula

Start with raw vector storage. The formula is vectors × dimensions × bytes-per-value × (1 + overhead) ÷ 1e9 = GB. At 4 bytes per value and 10% overhead, 5 million vectors at 1024 dimensions need 20.48 GB. The same corpus at 768 dimensions drops to 15.36 GB. At 384 dimensions it falls to 7.68 GB. Doubling your corpus to 10 million vectors doubles each figure, so 1024 dimensions reaches 40.96 GB.

Raw vectors are not the whole story. A working system also needs an index structure, HNSW graph edges or IVF posting lists, which add 10-100+ bytes per vector depending on the method. You need vector IDs to map results back to your documents, typically 8 bytes each. Metadata like timestamps, permissions, and filter fields pile on more. Then there’s allocator overhead, fragmentation, alignment, and padding, which eat another 5-15%. And if you care about reliability, you’re replicating the data, which doubles everything.

Total VRAM Formula

Now add every consumer. Total VRAM = embedding (1–14 GB) + index + model weights + KV cache × concurrency + 10–20% buffer. The embedding model stays tiny when you co-locate it. The index follows the formula above. Model weights come from your quantization choice. The KV cache scales with every active session.

The VRAM math for weights is (params × bits) / 8, plus 20% overhead. For a 70B model at 4-bit: 70 × 4 / 8 = 35 GB, × 1.2 = ~42 GB of weights. That fits one 80 GB card. The leftover ~38 GB becomes your KV cache budget. This reproduces the headline split: roughly 42 GB committed, about 38 GB free for the cache.

That cache budget must cover every concurrent agent. For Qwen2.5-14B at FP16, each concurrent user at 32K context needs ~1.5 GB of KV cache. Eight concurrent users at 128K context consume ~48 GB of cache alone. With 50 concurrent agents, your 38 GB budget divides among them, which limits context length per session. The source also notes roughly 800 KB of KV cache per token, so a worst-case request of 15,700 tokens at p99 yields about 12.5 GB for a single request. Quantization shrinks the weight portion, but GPU capacity remains the limiting factor for longer contexts, larger batches, and larger models.

Run these numbers before you buy hardware. They tell you whether your retrieval service fits one card or needs a multi-GPU node.

Plan your RAG deployment with a checklist. Estimate corpus vectors, pick your embedding dimension, choose the LLM size and quantization, add KV cache headroom for peak concurrency, and reserve 10–20% buffer.

The headline ranges hold. A private RAG service fits in 24 GB. A standard deployment with 50 concurrent agents commits roughly 42 GB. Production setups with 200+ concurrent users push past 320 GB.

Skipping validation is a common pitfall: sizing calculations are estimates, not guarantees. Benchmark a single GPU under realistic traffic before scaling to production.

Treat your estimate as a starting point. Deploy on one dedicated GPU, test with realistic prompts and concurrent requests, then measure actual memory usage and latency.

FAQ

How much GPU memory does a budget tier need?

A single L4 24 GB card runs 7B–14B models at FP16 and fits your embedding model beside the LLM. Keep your corpus small and your concurrency low. This tier suits private RAG deployments with modest traffic.

Why does the embedding model use so little VRAM?

Modern embedding encoders are compact. You run your embedding model in FP16 or INT8, and it shares context with the retrieval pipeline. Expect 1–14 GB for embedding work, not the 2–8 GB older guides quoted. This guide treats that embedding footprint as a rounding error next to the LLM.

Can I offload the vector index to CPU memory?

Yes, and this frees GPU memory for the LLM. The tradeoff is latency: CPU retrieval can take up to 2× as long as LLM prefill. Tiered designs cache hot clusters on GPU and cold clusters on CPU. This guide recommends that split.

How does concurrency change my sizing?

The KV cache grows with every active session in your LLM. At 50 concurrent agents, roughly 38 GB remains after the 42 GB committed baseline. At 200 concurrent users, the cache alone can exceed 100 GB. Multi-GPU nodes become necessary. Keep your vector index lean.

How do I validate my estimate before committing GPU infrastructure?

Deploy on one dedicated GPU first. Test with realistic prompts and concurrent requests. Measure actual memory usage and latency. Add a 10–20% buffer for fragmentation and framework overhead. This guide treats sizing math as a starting point, not a guarantee.