gpt-oss-20b GPU requirements: 13.8 GB at MXFP4, 41.8 GB at BF16
gpt-oss-20b needs 41.8 GB of GPU memory for its weights at BF16, 20.9 GB at FP8 and 13.8 GB at MXFP4, plus 0.81 GB of KV cache for a 32K context. The cheapest node that runs it here is 1× A30 at MXFP4 (native), for $0.05 an hour on spot.
Weights plus a 32K 16-bit KV cache, with 10% of the node's memory kept free. Billed per minute.
- Parameters
- 21B3.6B active per token
- Weights, MXFP4
- 13.8 GBBF16: 41.8 GB
- KV cache, 32K
- 0.81 GBOne sequence, 16-bit cache
- Context window
- 128KNative
How much VRAM gpt-oss-20b needs, format by format.
Weights are parameters × bytes per parameter, except the native MXFP4 row, which is the size of the published checkpoint. Each context column adds the KV cache of one sequence of that length.
| Format | Weights | + 8Kcontext | + 32Kcontext | + 128Kcontext | Cheapest node, 32K |
|---|---|---|---|---|---|
| BF16Published weights, fine-tuning | 41.8 GB | 42.0 GB | 42.6 GB | 45.0 GB | 1× A40 · $0.06/h |
| FP8Hopper, Ada, Blackwell, MI300 | 20.9 GB | 21.1 GB | 21.7 GB | 24.1 GB | 1× RTX PRO 4500 Blackwell · $0.09/h |
| MXFP4 (native)AWQ, GPTQ, GGUF Q4 · the published checkpoint | 13.8 GB | 14.0 GB | 14.6 GB | 17.0 GB | 1× A30 · $0.05/h |
The serving engine adds its own buffers, and an 8-bit KV cache halves the context columns. We keep 10% of a node's memory free when we say a model fits. Speed is a separate question: it follows memory bandwidth and, for a mixture of experts, the active parameters.
GPUs that run gpt-oss-20b, cheapest first.
For each format, the smallest node of each GPU model that holds the weights and a 32K context, sorted by spot price. One row per GPU model; larger nodes of the same GPU work too.
| Format | GPU | GPU memory | Spot | On-demand | 730 h spot | Action |
|---|---|---|---|---|---|---|
| MXFP4 (native) | 1× A30Ampere · 14.6 GB needed | 24 GB | $0.05 | $0.08 | $36.50 | Deploy |
| MXFP4 (native) | 1× L4Ada Lovelace · 14.6 GB needed | 24 GB | $0.05 | $0.08 | $36.50 | Deploy |
| MXFP4 (native) | 1× RTX 3090Ampere · 14.6 GB needed | 24 GB | $0.05 | $0.08 | $36.50 | Deploy |
| MXFP4 (native) | 1× RTX 4000 AdaAda Lovelace · 14.6 GB needed | 20 GB | $0.06 | $0.09 | $43.80 | Deploy |
| FP8 | 1× RTX PRO 4500 BlackwellBlackwell · 21.7 GB needed | 32 GB | $0.09 | $0.19 | $65.70 | Deploy |
| FP8 | 1× RTX 5000 AdaAda Lovelace · 21.7 GB needed | 32 GB | $0.09 | $0.17 | $65.70 | Deploy |
| FP8 | 1× RTX 5090Blackwell · 21.7 GB needed | 32 GB | $0.09 | $0.19 | $65.70 | Deploy |
| FP8 | 1× L40Ada Lovelace · 21.7 GB needed | 48 GB | $0.09 | $0.19 | $65.70 | Deploy |
| BF16 | 1× A40Ampere · 42.6 GB needed | 48 GB | $0.06 | $0.09 | $43.80 | Deploy |
| BF16 | 1× L40Ada Lovelace · 42.6 GB needed | 48 GB | $0.09 | $0.19 | $65.70 | Deploy |
| BF16 | 1× RTX 6000 AdaAda Lovelace · 42.6 GB needed | 48 GB | $0.09 | $0.19 | $65.70 | Deploy |
| BF16 | 1× RTX A6000Ampere · 42.6 GB needed | 48 GB | $0.09 | $0.17 | $65.70 | Deploy |
Spot capacity can be reclaimed with a 2-minute notice; for a live endpoint, use on-demand. How spot works · serving a language model.
What a long context costs in memory.
12 full-attention and 12 sliding-window layers (128 tokens), 8 KV heads of 64.
| Context | KV cache, 1 sequence | 8 sequences |
|---|---|---|
| 8K tokens | 0.2 GB | 1.64 GB |
| 32K tokens | 0.81 GB | 6.47 GB |
| 128K tokens | 3.22 GB | 25.8 GB |
Serving several users
KV cacheEvery concurrent request keeps its own cache, so memory for context grows with users × context length. A server batching 8 requests of 32K needs eight times the single-sequence figure — 6.47 GB here.
- Recommended node1× A30
- Weights at MXFP413.8 GB
- Context that fits, 1 sequence128K
Paged attention (vLLM, SGLang) allocates the cache in blocks as requests grow, so a node holds more short requests than the worst case suggests.
gpt-oss-20b, as published.
- Developer
- OpenAISmall open-weight reasoning model for local and edge serving
- Parameters
- 21B total, 3.6B active per token
- Architecture
- Mixture of experts, 24 layers12 full-attention and 12 sliding-window layers (128 tokens), 8 KV heads of 64
- Context window
- 131,072 tokensAs set in the published configuration
- Published format
- MXFP4, 13.8 GB checkpoint
- Licence
- Apache 2.0
- Released
- 5 August 2025
- Source
- openai/gpt-oss-20bconfig.json read 26 October 2026
Serve it with vLLM
template: vLLMOn 1× A30, from the instance terminal:
$ vllm serve openai/gpt-oss-20b \ --tensor-parallel-size 1 \ --max-model-len 32768
Very recent architectures need a recent vLLM; the model card gives the minimum version and any extra flags.
gpt-oss-20b on a GPU — the questions that come up
How much VRAM does gpt-oss-20b need?
For the weights alone: 41.8 GB at BF16, 20.9 GB at FP8 and 13.8 GB at MXFP4. Add 0.81 GB of KV cache for one 32K-token context, or 3.22 GB at the full 128K window, and keep about 10% of the memory free for activations.
Can gpt-oss-20b run on a single GPU?
One RTX 4090 (24 GB): yes, at MXFP4. One RTX 5090 (32 GB): yes, at FP8. One H100 SXM (80 GB): yes, at BF16. One H200 SXM (141 GB): yes, at BF16. One B200 SXM (180 GB): yes, at BF16. Those answers assume a 32K context and the widest format that still fits.
What is the cheapest way to run gpt-oss-20b?
Here, 1× A30 at MXFP4 (native): $0.05 per hour on spot and $0.08 on-demand, billed per minute — $36.50 for a 730-hour month on spot. That node has 24 GB of GPU memory for the 14.6 GB this setup needs.
Does gpt-oss-20b need less memory because only 3.6B parameters are active?
No. A mixture-of-experts model routes each token through a few experts, but every expert has to be resident in GPU memory, so the memory bill follows the 21B total. What the 3.6B active parameters change is the work per token: generation reads far less of the weights each step than a dense model of the same size would, which is why it is fast for its size.
Which format should I run it in?
gpt-oss-20b is published in MXFP4, a 13.8 GB checkpoint — the format its developers serve it in, so it is the safe default. BF16 keeps the published weights untouched and is the format for fine-tuning. FP8 halves the memory and runs in hardware on Hopper, Ada, Blackwell and MI300-class GPUs. 4-bit quantisation (AWQ, GPTQ, GGUF) quarters it, at a quality cost that is larger on small models than on big ones; check it against your own evaluation before relying on it.
How do I deploy it?
Pick the node in the table above and launch it with the vLLM template; the model downloads from Hugging Face (openai/gpt-oss-20b) on first start. Spread the weights over the node with --tensor-parallel-size equal to the GPU count, and set --max-model-len to the context you need. New architectures need a recent vLLM: check the model card for the minimum version.
Sizing another model? GPU requirements for 64 open models · serving a language model · fine-tuning.
gpt-oss-20b on 1× A30 for $0.05 an hour.
Launch the node with the vLLM template, point it at openai/gpt-oss-20b, stop it when you are done. Prepaid, billed by the minute.
Billed per minute from the moment the instance is reachable. Minimum credit $30, no subscription.