What GPU do I need to run datalab-to/surya-ocr-2?

686M parameters, published in BF16. View on Hugging Face

686M
Parameters
BF16
Native precision
Qwen3_5ForConditionalGeneration
Architecture
image-text-to-text
Pipeline

surya-ocr-2 is published by datalab-to on Hugging Face, with 1,327,583 downloads and 100 likes to date. It's a Qwen3_5ForConditionalGeneration 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.

PrecisionWeight sizeRequired VRAMCheapest live fitGPUs neededEst. $/hr (full fit)
BF161.3 GB1.5 GBRTX 30601$0.110/hr
FP8 (quantized)0.6 GB0.8 GBRTX 40801$0.173/hr
INT4 (quantized)0.3 GB0.4 GBRTX 30601$0.110/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 surya-ocr-2 at its published (BF16) precision: 1× RTX 3060, at $0.110/hr per GPU ($0.110/hr total). Quantizing to FP8 or INT4 (rows above) can cost less, but requires a compatible quantized checkpoint to exist for this model.

surya-ocr-2: 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.

Hybrid: only the full-attention layers cache per token; the other layers keep a fixed-size state. Cached per token: 12,288 bytes at 16-bit.

ContextKV cache, one sequence
4K0.05 GB
32K0.38 GB
128K1.5 GB
256K (model maximum)3.0 GB

Computed from the layer, head and window counts in the model's own configuration (datalab-to/surya-ocr-2), at 16 bits per cached value. Each concurrent sequence needs its own cache, on top of the weights.

surya-ocr-2: common questions

How much VRAM does surya-ocr-2 need?

1.5 GB at BF16, 0.8 GB at FP8 (quantized), 0.4 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 1.3 GB of weights plus inference overhead is the whole requirement.

How many copies of surya-ocr-2 fit on one RTX 3060?

7, by VRAM alone. That card carries 12.0 GB and one copy needs 1.5 GB at BF16, on a live rate of $0.110/hr for the whole card. Throughput is not modelled here, so 7 copies is not 7 times the requests served.

Weight-to-VRAM math, the fit rules, and how live prices are normalized: full methodology.

More datalab-to models

All 3 datalab-to models: VRAM and GPU requirements

Alternatives at this size

Other models for image-text-to-text within about a third of surya-ocr-2's 686M parameters, from other model lines.

More on surya-ocr-2

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.

Submit the job. Everything after that is ours.

Sign up in 60 seconds. Pay for the GPU minutes you actually use.

© 2026 Aquanode. All rights reserved.

All trademarks, logos and brand names are the property of their respective owners.