Self-hosted LLM hardware requirements start with GPU memory. Add the model's weights to the KV cache of every conversation running at once. By our arithmetic, Llama 3.3 70B at 8-bit needs about 71 GB for weights. One 96 GB card fits it, with room for fewer than ten 8,000-token conversations before overhead. Size for concurrent users.

How much VRAM do you need for an LLM?
You need enough GPU memory for the model's weights plus the KV cache. Weights equal parameters times bytes per parameter. A 16-bit model uses 2 bytes per parameter, an 8-bit model uses 1 byte and a 4-bit model uses 0.5 byte.
So Llama 3.3 70B needs about 141 GB at 16-bit, about 71 GB at 8-bit and at least 35 GB at 4-bit. Llama 3.1 8B needs about 16 GB, 8 GB or at least 4 GB.
The KV cache is the working memory the model keeps for each conversation, and it grows with every token. Per token, it is 2 (key and value) x layers x KV heads x head dimension x bytes. The layer counts, head counts and parameter counts come from each model's published files on Hugging Face: Llama 3.3 70B Instruct and Llama 3.1 8B Instruct.
- Llama 3.3 70B has 80 layers, 8 KV heads and a head dimension of 128. With a 16-bit cache, that is 2 x 80 x 8 x 128 x 2 = 327,680 bytes, about 0.33 MB per token.
- Llama 3.1 8B has 32 layers, 8 KV heads and a head dimension of 128. With a 16-bit cache, that is 2 x 32 x 8 x 128 x 2 = 131,072 bytes, about 0.13 MB per token.
The table is our worked arithmetic, not a benchmark. It uses decimal units (1 GB is a billion bytes) and leaves out runtime overhead, so real cards need some headroom. The cache is 16-bit in every row.
| Model and precision | Weights | KV cache, one 8,000-token conversation | KV cache, ten conversations at once |
|---|---|---|---|
| Llama 3.3 70B, 16-bit | about 141 GB | about 2.6 GB | about 26 GB |
| Llama 3.3 70B, 8-bit | about 71 GB | about 2.6 GB | about 26 GB |
| Llama 3.3 70B, 4-bit | at least 35 GB | about 2.6 GB | about 26 GB |
| Llama 3.1 8B, 16-bit | about 16 GB | about 1.05 GB | about 10.5 GB |
| Llama 3.1 8B, 8-bit | about 8 GB | about 1.05 GB | about 10.5 GB |
| Llama 3.1 8B, 4-bit | at least 4 GB | about 1.05 GB | about 10.5 GB |
The weights are loaded once. Each extra conversation adds its own cache. For background on what the GPU is doing during a request, see what is LLM inference.
Why do concurrent users drive the memory you need?
Every active conversation holds its own KV cache, so memory use rises with the number of people using the model at the same time. Llama 3.3 70B with ten 8,000-token conversations needs about 26 GB of cache on top of its weights.

The vLLM paper (Kwon et al., SOSP 2023) describes the mechanism. It says high throughput requires batching many requests at a time. It also says the KV cache for each request is huge and grows and shrinks dynamically.
The vLLM optimisation guide says requests are preempted when there is not enough KV cache space. It notes that preemption and recomputation can hurt end-to-end latency. As of October 2026, it suggests raising gpu_memory_utilization or tensor_parallel_size to give the cache more memory.
A fast test with one user will not show this. Memory left after the weights sets the ceiling on how many people the card can serve.
Which GPU for LLM inference?
The right card is the one whose memory covers your weights plus the cache for your busy hour. The memory sizes below come from NVIDIA's product pages, as of October 2026. The "what fits" column is our arithmetic, before runtime overhead.
| Card | Memory (NVIDIA, as of October 2026) | What fits on one card |
|---|---|---|
| RTX 5090 | 32 GB GDDR7 | Llama 3.1 8B at 16-bit (16 GB) plus ten conversations (10.5 GB). 70B at 4-bit (35 GB or more) does not fit. |
| L40S | 48 GB GDDR6 with ECC | Llama 3.3 70B at 4-bit (35 GB or more), leaving at most about 13 GB, so at most four conversations. 70B at 8-bit (71 GB) does not fit. |
| RTX PRO 6000 | 96 GB GDDR7 with ECC | Llama 3.3 70B at 8-bit (71 GB), leaving about 25 GB. That is fewer than ten 8,000-token conversations. |
| H200 | 141 GB | Llama 3.3 70B at 8-bit, leaving about 70 GB for cache. |
Llama 3.3 70B at 16-bit does not fit one RTX 5090, L40S or RTX PRO 6000. For 70B at 8-bit, two 48 GB cards with tensor parallelism give 96 GB in total, before each card's own overhead.
For a larger multi-card setup, see our earlier post, four lessons from a GPU cluster.
What hardware does a team of 5 to 10 need?
A team of 5 to 10 should size for how many people use the model at the same time, not for headcount.
- Count simultaneous conversations. Ten people do not always prompt at the same moment, so estimate the busiest period and multiply by the cache figure for your model.
- Expect users to share throughput. Batching means the engine runs several requests together, so people share the card's throughput. Test at your own load.
- Include your longest real documents in that test.
- Test before you buy. Run the exact model you want, with your real prompts, on rented or hosted GPUs. Then buy the card the test says you need.
By our arithmetic, Llama 3.3 70B at 8-bit on one 96 GB card holds fewer than ten 8,000-token conversations before overhead. Treat that as a hypothesis to test, not a promise.
Is a small card (6 to 8 GB) enough?
For one person running a small model, often yes. Llama 3.1 8B at 4-bit needs at least 4 GB for weights, so it fits on an 8 GB card.
A single 8,000-token conversation adds about 1.05 GB of cache. On an 8 GB card, that leaves room for about three conversations at most, before overhead. That is tight for a team, and a team is better served by a larger card.
Where Xinference fits
Xinference is an AI inference platform for enterprise teams. The self-hosted platform runs in your own environment and puts one OpenAI-compatible API in front of every model. You choose the serving engine per model: vLLM, SGLang, llama.cpp, Transformers or MLX. More on the Dedicated Inference page.
If you would rather not buy cards, the Model API is a separate hosted service for two other models, Kimi K3 and DeepSeek V4.1 Flash. As of October 2026, Kimi K3 costs US$3.00 input and US$15.00 output, and DeepSeek V4.1 Flash costs US$0.30 input and US$1.20 output, per 1M tokens. It is hosted in Australia on dedicated GPUs. The pricing page has the details.
Get API access. Don't see the model you need? Talk to us about adding it.
Questions
Is 24 GB VRAM enough for a local LLM?
Yes for Llama 3.1 8B at 8-bit. By our arithmetic, that is about 8 GB of weights plus about 10.5 GB for ten 8,000-token conversations, before overhead. Llama 3.3 70B at 4-bit needs at least 35 GB for weights alone, so it does not fit.
Can I run an LLM on 8 GB of VRAM?
Yes, for one person. Llama 3.1 8B at 4-bit uses at least 4 GB for weights, leaving at most about 4 GB for cache and overhead.
How many users can one LLM server handle?
It depends on the memory left after the weights. Divide that by the cache per conversation, about 2.6 GB for Llama 3.3 70B or about 1.05 GB for Llama 3.1 8B at 8,000 tokens. Llama 3.3 70B at 8-bit on a 96 GB card gives fewer than ten, before overhead.
Can LLMs run on multiple GPUs?
Yes. The vLLM optimisation guide describes tensor parallelism as sharding model weights across GPUs, which leaves each GPU more memory for KV cache.
Is self-hosting cheaper than using an API?
It depends on how busy you keep the cards and which model you run. Our post on LLM inference cost, API versus self-hosted works through the comparison.