Search for local AI hardware and the results are build lists. A card, a power supply, a case. The lists are not wrong, and for one person at one desk they work. They are incomplete in a way that only shows up when a second person starts using the machine.
The honest order is arithmetic first, then the list of things arithmetic does not cover.
The arithmetic is public, and it is short
Every open-weight model publishes its configuration. Qwen3-32B publishes a file with the numbers that decide memory. Read on 2026-09-23, it states 64 hidden layers, 8 key-value heads, a head dimension of 128 and a bfloat16 tensor type.
Those four numbers give the cache cost of one token. Each layer stores a key and a value, each of them 8 heads wide and 128 deep. That is 2 x 64 x 8 x 128 = 131,072 numbers per token, and at two bytes each it is 262,144 bytes. 256 KiB of memory, for one token, in one conversation.
| Context held | At bfloat16 cache | At fp8 cache |
|---|---|---|
| 1,000 tokens | 0.24 GiB | 0.12 GiB |
| 8,000 tokens | 1.95 GiB | 0.98 GiB |
| 40,960 tokens, the published maximum | 10.0 GiB | 5.0 GiB |
That is per conversation. Ten people holding an 8k conversation at the same moment need about 20 GiB of cache at bfloat16, or about 10 GiB at fp8. The cache dtype is not a detail. It halves the number.
Now put it on a real card
The weights come first, and they are not negotiable. A 32-billion-parameter model at two bytes per parameter is about 64 GB before a single conversation exists.
NVIDIA publishes the memory on its consumer flagship. The GeForce RTX 5090 page, read on 2026-09-23, gives its standard memory configuration:
Standard Memory Config 32 GB GDDR7
NVIDIA, GeForce RTX 5090, read 2026-09-23
So the most expensive consumer card on that page holds 32 GB, and the weights alone want about 64 GB. The model does not fit. Quantisation to 8 bits brings the weights to about 32 GB, which is the whole card, with nothing left for the cache the table above describes.
This is not an argument against local AI. It is the reason the build lists quietly use smaller models. A 7 or 8 billion parameter model fits comfortably, and for many tasks it is enough. The question is whether it is enough for the task the organisation actually has.
What the serving engine does about it
vLLM, one of the engines that serves these models, documents the problem in its own words and lists the levers.
Large models might cause your machine to run out of memory (OOM). Here are some options that help alleviate this problem.
vLLM, Conserving Memory, read 2026-09-23
The options it then names are tensor parallelism across several GPUs, quantisation, and limiting the context length and the batch size. Read the last one again. Two of the four numbers in any honest capacity quote, the context length and the number of concurrent users, are the two knobs the engine documentation tells you to turn down when memory runs out.
The five items no parts list contains
- Power and heat. A workstation card under sustained inference is not a spreadsheet load. The room it sits in has to take the heat, all day, in August.
- The operating system and its updates. Somebody applies them, tests that the engine still starts, and owns the morning it does not.
- The model licence. An open-weight model is not automatically free to use commercially, and the terms differ between families. The licence file is the thing to read, not the blog post.
- Backup and restore. The model can be downloaded again. The configuration, the prompts, the retrieval index and the access rules cannot.
- Who is on call. A machine that the whole company now depends on has an owner, or it has an outage with no owner.
None of these is exotic. All five are the difference between a machine that works at one desk and a system a company can depend on.
What to ask before buying anything
Ask for the four numbers together, and ask which of them were measured. How many people at the same moment, holding how much context each, at how many tokens per second, with which cache dtype. A supplier who answers with one number is quoting the easy one.
Then ask the five questions above. The answers decide the running cost, and the running cost is where a build list is usually wrong.
With Bastion
What Bastion changes
Bastion is a private AI system delivered as one sealed appliance that runs inside your building. One monthly fee covers the hardware, the model, the hardened operating system and support, and nothing your team types leaves the building.
Bastion sells none of this as a parts list. The hardware, the open-weight model, the hardened operating system, the updates and the support arrive as one rented system, with one monthly fee.
Our own capacity figure is calculated from arithmetic of exactly this kind, not measured on a box. The first unit is not built. When it is measured, the measurement replaces the calculation and the page says which one it is showing.
Questions this article answers
- How much VRAM do I need to run a local LLM?
- Weights first, then cache. A 32-billion-parameter model at two bytes per parameter is about 64 GB of weights, which does not fit on a 32 GB card. On top of that, Qwen3-32B costs 256 KiB of cache per token at bfloat16, so one 8,000 token conversation adds about 1.95 GiB.
- Can one graphics card run a local AI server for a team?
- For one person, often yes. For a team the cache is the constraint: ten people each holding 8,000 tokens need about 20 GiB of cache at bfloat16, or about 10 GiB at fp8, on top of the weights. The published NVIDIA GeForce RTX 5090 memory configuration is 32 GB in total.
- What does a local AI hardware list leave out?
- Five things: sustained power and heat, operating system updates and who tests them, the model licence terms, backup of the configuration and retrieval index rather than the model, and a named owner when the machine fails.
On the record
- 1
- 2
- 3
Read next
- For local AI, GPU memory decides more than GPU speedWhere the memory goes, why context length multiplies it, what quantisation buys and costs, and the question that replaces "how fast is the GPU?" when you are buying for local inference.Read the article
- How many people can one AI server actually support?Concurrent users are not employees. Capacity is decided by the model, the context length, the KV cache and the serving engine, and the vLLM project measured a case where the engine alone changed usable memory by a factor of two to five.Read the article