What GPU do I need to run ibm-granite/granite-docling-258M?
258M parameters, published in BF16. View on Hugging Face
granite-docling-258M is published by ibm-granite on Hugging Face, with 212,627 downloads and 1,258 likes to date. It's a Idefics3ForConditionalGeneration model built for image-text-to-text, published natively in BF16.
VRAM required & cheapest live GPU fit
Required VRAM = weight size at each precision times a flat 1.2 overhead for activations and fragmentation. The KV-cache grows with context and is not in that factor; it is listed per model below where the architecture is published. Full formula and assumptions: methodology.
| Precision | Weight size | Required VRAM | Cheapest live fit | GPUs needed | Est. $/hr (full fit) |
|---|---|---|---|---|---|
| BF16 | 0.5 GB | 0.6 GB | RTX 4070 Super | 1 | $0.121/hr |
| FP8 (quantized) | 0.2 GB | 0.3 GB | RTX 4070 Super | 1 | $0.121/hr |
| INT4 (quantized) | 0.1 GB | 0.1 GB | RTX 4070 Super | 1 | $0.121/hr |
A GPU is only matched to a row if its hardware supports that precision, and the primary recommendation is always a single-GPU fit when one exists.
INT4 requires a quantized checkpoint actually published for this model, check its Hugging Face page before relying on this row.
Cheapest way to run granite-docling-258M at its published (BF16) precision: 1× RTX 4070 Super, at $0.121/hr per GPU ($0.121/hr total). Quantizing to FP8 or INT4 (rows above) can cost less, but requires a compatible quantized checkpoint to exist for this model.
granite-docling-258M: KV cache by context length
The KV cache is the memory the attention layers hold for every token of context, on top of the weights. It is not part of the flat 1.2x overhead in the table above, grows with context length and with every concurrent request, and is why a long-context deployment needs more VRAM than the table shows.
Grouped-query attention: every layer caches keys and values for a few shared KV heads. Cached per token: 23,040 bytes at 16-bit.
| Context | KV cache, one sequence |
|---|---|
| 4K | 0.09 GB |
| 8K (model maximum) | 0.18 GB |
Computed from the layer, head and window counts in the model's own configuration (ibm-granite/granite-docling-258M), at 16 bits per cached value. Each concurrent sequence needs its own cache, on top of the weights.
granite-docling-258M: common questions
How much VRAM does granite-docling-258M need?
0.6 GB at BF16, 0.3 GB at FP8 (quantized), 0.1 GB at INT4 (quantized). All of those sit under 6 GB, the smallest capacity this page reasons about, so VRAM is not what limits where this model runs. The 0.5 GB of weights plus inference overhead is the whole requirement.
How many copies of granite-docling-258M fit on one RTX 4070 Super?
20, by VRAM alone. That card carries 12.0 GB and one copy needs 0.6 GB at BF16, on a live rate of $0.121/hr for the whole card. Throughput is not modelled here, so 20 copies is not 20 times the requests served.
Weight-to-VRAM math, the fit rules, and how live prices are normalized: full methodology.
Alternatives at this size
Other models for image-text-to-text within about a third of granite-docling-258M's 258M parameters, from other model lines.
- Florence-2-base (232M, F16)
- SmolVLM-256M-Instruct (256M, BF16)
More on granite-docling-258M
Fits on an 8 GB GPU at BF16: every model that fits in 8 GB.
Best vision-language models: how granite-docling-258M ranks against the rest.
Best OCR and document parsing models: how granite-docling-258M ranks against the rest.
Related reading: H100 pricing and specs, How much VRAM you need for LLMs, Serving LLMs with vLLM, vLLM vs TensorRT-LLM vs SGLang, and Best GPU for LLM inference.