moondream2 GPU requirements: VRAM and cheapest GPU
moondream2 has 1.9B parameters, published in BF16. It reads images as well as text; each image adds tokens to the context. It is released under apache-2.0, which allows commercial use.
- Parameters
- 1.9B
- Smallest footprint (INT4)
- about 2.9 GB
- Cheapest GPU per hour (FP16)
- $0.25
- Type
- Vision
vikhyatk/moondream2
- Parameters 1.9B
- Type Vision
- Task image-text-to-text
- Licence apache-2.0
- Downloads 2.4M
- Likes 1.5K
Calculating for moondream2
More settings
moondream2 needs about 6 GB of GPU memory
Inference (vLLM), FP16 / BF16, 8K tokens context, one request at a time. Some of the model settings were missing, so the KV cache is an estimate.
Where the memory goes
- Weights 3.9 GB
- KV cache 0.7 GB
- Runtime overhead 1.5 GB
- Total 6 GB
GPU counts keep 10% of each card free for spikes. Plan extra if you expect long prompts or many users at once.
| Rank | Configuration | Per GPU / hr | GPUs needed | Total / hr | Total / month (24/7) | Provider |
|---|---|---|---|---|---|---|
| 1 | 1 × RTX 3090 24GBCheapestAmpere · GDDR6X | $0.25 | 1 | $0.25 | $183 | Vast.ai (opens in a new tab)1x RTX 3090 (median of 29 offers) |
| 2 | 1 × V100 16GBVolta · HBM2 | $0.15 | 1sold as 2 GPUs; you need 1 | $0.30 | $220 | Vast.ai (opens in a new tab)2x Tesla V100 (median of 4 offers) |
| 3 | 1 × RTX 4090 24GBAda Lovelace · GDDR6X | $0.48 | 1 | $0.48 | $354 | Vast.ai (opens in a new tab)1x RTX 4090 (median of 34 offers) |
| 4 | 1 × RTX PRO 6000 96GBBlackwell · GDDR7 | $0.50 | 1 | $0.50 | $365 | RunPod (opens in a new tab)1x RTX PRO 6000 MaxQ |
| 5 | 1 × T4 16GBTuring · GDDR6 | $0.53 | 1 | $0.53 | $384 | AWS (opens in a new tab)g4dn.xlarge |
| 6 | 1 × A40 48GBAmpere · GDDR6 | $0.59 | 1 | $0.59 | $431 | RunPod (opens in a new tab)1x A40 |
| 7 | 1 × RTX 6000 Ada 48GBAda Lovelace · GDDR6 | $0.67 | 1 | $0.67 | $488 | Vast.ai (opens in a new tab)1x RTX 6000Ada (median of 8 offers) |
| 8 | 1 × A100 40GBAmpere · HBM2 | $0.68 | 1 | $0.68 | $497 | Vast.ai (opens in a new tab)1x A100 SXM4 (median of 8 offers) |
| 9 | 1 × RTX A6000 48GBAmpere · GDDR6 | $0.69 | 1 | $0.69 | $504 | RunPod (opens in a new tab)1x RTX A6000 |
| 10 | 1 × L4 24GBAda Lovelace · GDDR6 | $0.69 | 1 | $0.69 | $504 | RunPod (opens in a new tab)1x L4 |
| 11 | 1 × L40S 48GBAda Lovelace · GDDR6 | $0.78 | 1 | $0.78 | $571 | Vast.ai (opens in a new tab)1x L40S (median of 6 offers) |
| 12 | 1 × RTX 5090 32GBBlackwell · GDDR7 | $0.87 | 1 | $0.87 | $634 | Vast.ai (opens in a new tab)1x RTX 5090 (median of 55 offers) |
| 13 | 1 × A10 24GBAmpere · GDDR6 | $1.01 | 1 | $1.01 | $734 | AWS (opens in a new tab)g5.xlarge |
| 14 | 1 × A100 80GBAmpere · HBM2e | $1.21 | 1 | $1.21 | $884 | Vast.ai (opens in a new tab)1x A100 SXM4 (median of 8 offers) |
| 15 | 1 × GH200 96GBHopper · HBM3 | $1.99 | 1 | $1.99 | $1,453 | Vultr (opens in a new tab)vbm-72c-480gb-gh200-gpu (bare metal) |
| 16 | 1 × MI300X 192GBCDNA 3 · HBM3 | $2.39 | 1 | $2.39 | $1,745 | RunPod (opens in a new tab)1x MI300X |
| 17 | 1 × H100 80GBHopper · HBM3 | $2.89 | 1 | $2.89 | $2,110 | RunPod (opens in a new tab)1x H100 PCIe |
| 18 | 1 × H100 NVL 94GBHopper · HBM3 | $3.19 | 1 | $3.19 | $2,329 | RunPod (opens in a new tab)1x H100 NVL |
| 19 | 1 × H200 141GBHopper · HBM3e | $3.79 | 1 | $3.79 | $2,767 | RunPod (opens in a new tab)1x H200 NVL |
| 20 | 1 × B200 180GBBlackwell · HBM3e | $7.99 | 1 | $7.99 | $5,833 | RunPod (opens in a new tab)1x B200 |
| 21 | 1 × B300 288GBBlackwell Ultra · HBM3e | $8.99 | 1 | $8.99 | $6,563 | RunPod (opens in a new tab)1x B300 |
| 22 | 1 × GB200 186GBBlackwell · HBM3e | $10.50 | 1sold as 4 GPUs; you need 1 | $42.00 | $30,660 | CoreWeave (opens in a new tab)GB200 NVL72 |
| Provider | Instance | Per GPU / hr | GPUs needed | Total / hr | Total / month (24/7) |
|---|---|---|---|---|---|
| Vast.ai (opens in a new tab)Cheapest | 1x RTX 3090 (median of 29 offers)worldwide marketplace | $0.25 | 1 × RTX 3090 24GB | about $0.25 | about $183 |
| RunPod (opens in a new tab) | 1x RTX 3090 Tius | $0.46 | 1 × RTX 3090 24GB | about $0.46 | about $336 |
| AWS (opens in a new tab) | g4dn.xlargeus-east-1 | $0.53 | 1 × T4 16GB | about $0.53 | about $384 |
| Azure (opens in a new tab) | NC4as_T4_v3eastus | $0.53 | 1 × T4 16GB | about $0.53 | about $384 |
| Google Cloud (opens in a new tab) | g2-standard-4us-central1 | $0.71 | 1 × L4 24GB | about $0.71 | about $516 |
| Lambda (opens in a new tab) | 1x A6000us | $1.09 | 1 × RTX A6000 48GB | about $1.09 | about $796 |
| Nebius (opens in a new tab) | 1x L40S 48GBeu/us | $1.55 | 1 × L40S 48GB | about $1.55 | about $1,132 |
| Vultr (opens in a new tab) | vcg-l40s-16c-180g-48vramus | $1.67 | 1 × L40S 48GB | about $1.67 | about $1,220 |
| CoreWeave (opens in a new tab) | GH200us | $6.50 | 1 × GH200 96GB | about $6.50 | about $4,745 |
Prices collected Nov 13, 2026. Every cost is approximate: on-demand, US dollars, mostly US regions (marketplaces such as Vast.ai are worldwide).
Memory by precision and workload
| Precision | Inference | LoRA fine-tune | QLoRA fine-tune | Full fine-tune |
|---|---|---|---|---|
| FP16 / BF16 | 6 GB | 7.8 GB | – | 37 GB |
| INT8 | 4 GB | – | – | – |
| INT4 | 2.9 GB | – | 4.7 GB | – |
Cheapest GPU by precision
Inference with an 8K context and one request at a time.
FP16 / BF16
about 6 GB · 8K tokens
The weights as published. Nothing lost, but the largest footprint.
1 × RTX 3090 24GB
Vast.ai (opens in a new tab) · 1x RTX 3090 (median of 29 offers)
- Per GPU / hr
- $0.25
- GPUs needed
- 1
- Total / hr
- about $0.25
- per month, 24/7, approx.
- $183
INT8
about 4 GB · 8K tokens
Weights at half the size. Most chat and RAG work shows no visible difference.
1 × RTX 3090 24GB
Vast.ai (opens in a new tab) · 1x RTX 3090 (median of 29 offers)
- Per GPU / hr
- $0.25
- GPUs needed
- 1
- Total / hr
- about $0.25
- per month, 24/7, approx.
- $183
INT4
about 2.9 GB · 8K tokens
Weights at a quarter of the size. Small drops show up first in maths and code.
1 × RTX 3090 24GB
Vast.ai (opens in a new tab) · 1x RTX 3090 (median of 29 offers)
- Per GPU / hr
- $0.25
- GPUs needed
- 1
- Total / hr
- about $0.25
- per month, 24/7, approx.
- $183
Inference vs fine-tuning
Inference (FP16)
1×
of the memory inference needs
6 GB
1 × RTX 3090 24GB · about $0.25
LoRA fine-tune
1.3×
of the memory inference needs
7.8 GB
1 × RTX 3090 24GB · about $0.25
QLoRA fine-tune
0.8×
of the memory inference needs
4.7 GB
1 × RTX 3090 24GB · about $0.25
Full fine-tune
6.1×
of the memory inference needs
37 GB
1 × RTX PRO 6000 96GB · about $0.50
Serving it at FP16 fits on 1 × RTX 3090 24GB (Vast.ai). LoRA needs 1 × RTX 3090 24GB (Vast.ai), QLoRA 1 × RTX 3090 24GB (Vast.ai) and a full fine-tune 1 × RTX PRO 6000 96GB (RunPod). Training keeps activations and optimiser state in memory as well as the weights, which is why it so often needs more GPUs than serving the same model.
Will it run on a Mac or a single RTX 4090?
RTX 4090 (24 GB)
Yes, at FP16 / BF16 with an 8K context: about 6 GB fits in the card’s 24 GB.
Mac with Apple silicon
Yes, with enough memory. At INT4 it needs about 2.9 GB, so a Mac with 16 GB or more of unified memory (macOS lets the GPU use about three quarters of it). Expect slower generation than on a data-centre GPU.
Similar models
Open models of a similar size.
- Qwen3 VL 2B InstructVision2.1B · about 6.7 GB FP16 · 1.1M ↓GPU needs
- FireRed-OCRVision2.1B · about 5.7 GB FP16 · 13.8K ↓GPU needs
- Qwen2 VL 2B InstructVision2.2B · about 6.1 GB FP16 · 1M ↓GPU needs
- Infinity-Parser2-FlashVision2.2B · about 6 GB FP16 · 15K ↓GPU needs
- Qwen3.5 2BVision2.3B · about 6.1 GB FP16 · 4.6M ↓GPU needs
- Rax 4.5Vision2.3B · about 6.1 GB FP16 · 501.9K ↓GPU needs
moondream2: common questions
How much VRAM does moondream2 need?
About 6 GB at FP16, 4 GB at INT8 and 2.9 GB at INT4, with an 8K context and one request at a time. Longer contexts and more parallel requests add KV cache on top.
What is the cheapest GPU to run moondream2?
1 × RTX 3090 24GB (about $0.25 per GPU / hour) on Vast.ai, at about $0.25 an hour for FP16 / BF16 inference with an 8K context. Prices collected Nov 13, 2026; they change often.
Can I fine-tune moondream2 on a single GPU?
Yes, with QLoRA: it needs about 4.7 GB, which fits one 80 GB GPU. LoRA needs about 7.8 GB and a full fine-tune about 37 GB.
How are these numbers calculated?
Weights are parameters times bytes per parameter (2 at FP16, 1 at INT8, 0.5 at INT4). The KV cache comes from the model’s layers, KV heads, head size and context length. We add about 10% plus 1 GB for the runtime and fill each GPU to 90%. Prices are on-demand list prices in US regions, collected from each provider’s public pricing.
Can moondream2 run on a consumer GPU like the RTX 4090?
Yes, at FP16 / BF16 with an 8K context: about 6 GB fits in the card’s 24 GB.
Does moondream2 fit on a single H100 80GB?
Yes, at FP16 / BF16, INT8, INT4 with an 8K context.
How many GPUs do I need for moondream2?
At FP16 with an 8K context: 1 × 80 GB, 1 × 48 GB or 1 × 24 GB GPUs. At INT4 you need about a quarter of the memory for the weights.
How much VRAM does moondream2 need at INT8?
About 4 GB: 2 GB for the weights, 0.7 GB for an 8K KV cache and 1.3 GB of runtime overhead.
How much does it cost to run moondream2 24/7 for a month?
About $183 on the cheapest setup we found (1 × RTX 3090 24GB (about $0.25 per GPU / hour), $0.25 an hour for 730 hours). The cheapest on AWS, Google Cloud or Azure is about $384 a month.
FP16 vs INT8 vs INT4: which should I use?
FP16 keeps full quality and needs the most memory (about 6 GB here). INT8 halves the weights with little loss for most chat work. INT4 (AWQ, GPTQ or GGUF Q4) cuts them to a quarter, about 2.9 GB in total, with a small drop in quality that shows most in maths and code.
Can moondream2 run on a Mac?
Yes, with enough memory. At INT4 it needs about 2.9 GB, so a Mac with 16 GB or more of unified memory (macOS lets the GPU use about three quarters of it). Expect slower generation than on a data-centre GPU.
vLLM or llama.cpp?
vLLM is built for serving many requests at once on NVIDIA and AMD GPUs and reserves most of the GPU memory for KV cache. llama.cpp runs GGUF files on almost anything, including Macs and CPUs, and suits one user or a small team. Memory needs are similar for the same precision.
Prices collected Nov 13, 2026. Every cost is approximate: on-demand, US dollars, mostly US regions (marketplaces such as Vast.ai are worldwide).
How we calculate
- Weights. Parameters times bytes per parameter: 2 at FP16, 1 at INT8, 0.5 at INT4, plus about 5% for the quantisation scales at INT8 and INT4.
- KV cache. 2 × layers × KV heads × head size × context × requests × 2 bytes, from the model’s config.json. Where a setting is missing we estimate it and say so.
- Overhead. About 10% plus 1 GB for the runtime, in line with what vLLM reserves.
- Fine-tuning. LoRA keeps 16-bit weights and adds a small adapter, its optimiser and activations. QLoRA does the same over 4-bit weights. A full fine-tune needs about 16 bytes per parameter with mixed-precision Adam (weights, gradients and optimiser states), plus activations.
- GPUs. We fill each GPU to 90% of its memory and stop at 8 per node. Costs are on-demand list prices in US regions; marketplace clouds show the median offer.