DocsInferenceServe vLLM modelsHardware requirements
Inference · Serve vLLM models

Hardware requirements

How to read VRAM minimums, what each GPU tier fits, and the CPU / RAM / disk budget per worker.

Reading the VRAM minimum

Every example folder ends in _min_<x>gb_vram: the minimum total VRAM the job's model(s) need at the heaviest quantization and a short context. The same number, refined, lives in the yaml as cluster.min_vram_gb_per_worker, which is what the scheduler actually filters workers by.

Minimum means it boots. For production headroom (longer context, more concurrent requests) each README lists a recommended figure, usually the next card size up.

What each tier fits

TierVRAMTypical GPUsWhat fits on one card
small11–12 GBRTX 5070 / 4070 / 3060-12G3B fp16, or 7B AWQ with fp8 KV and 4–8k context
mid16–24 GBRTX 5070 Ti / 4080, L4, A10G7B fp16, or 14B AWQ
large24–48 GBRTX 3090 / 4090, L40S, A4014B fp16, 32B AWQ, multi-engine bundles
frontier80 GB+A100-80G, H100, H20070B AWQ on one card; bigger with tensor parallelism

Models too big for one card split across GPUs: tensor parallelism inside one multi-GPU worker, pipeline parallelism across workers. The sizing arithmetic behind these numbers is in LLMConfig options.

i
Supported GPU generations run from Turing (RTX 20-series, T4) through Blackwell (RTX 50-series, B200). Consumer and datacenter cards are both first-class; most examples are sized for consumer cards on purpose.

Beyond VRAM

VRAM gets the attention, and then a job stalls on one of these:

  • CPU: at least 4 cores per GPU. The yaml default of cpus_per_worker: 8 is a safe floor.
  • RAM:about 2× the GPU's VRAM. Weight loading and tokenization spike host memory during boot.
  • Disk: at least 1.5× the largest checkpoint the worker will host, on top of the ~15 GB serving image. A 19 GB AWQ model wants roughly 46 GB free. Checkpoints download on first boot and stay cached.
  • Time: first boot downloads the checkpoint from HuggingFace Hub. Minutes for small models, longer for large ones; subsequent boots on the same worker reuse the cache.

Each example README carries this table filled in for its own model, so when you adapt an example, its resource row is the starting point to adjust.