Skip to main content

Lab · LLM VRAM · SmolLM

Computed

SmolLM2 135M Instruct memory requirements

135M parameters — 257 MiB of weights at FP16, 101 MiB at Q4_K_M, and 22.5 KiB of KV cache per token on top. Solved against 22 real accelerators; 22 of them can hold it.

Parameters

135M

134,515,008 exactly

Weights, Q4_K_M

101 MiB

257 MiB unquantized

KV cache

22.5 KiB

per token · 30L × 3 KV × 64

Smallest card (Q4)

8 GB

Jetson Orin Nano Super (8GB)

Weights at each precision

PrecisionBits/weightWeightsSourceNotes
FP16 / BF1616.00257 MiBmeasured fileUnquantized. Two bytes per parameter, exactly.
Q8_08.61138 MiBmeasured fileEffectively lossless; the usual reference point for quantized quality.
Q6_K8.23132 MiBmeasured fileQuality loss is hard to measure on most benchmarks.
Q5_K_M6.67107 MiBmeasured fileA middle point when Q4 fits with too little room for context.
Q4_K_M6.27101 MiBmeasured fileThe default choice for local inference — the best size/quality knee.
Q3_K_M5.5689 MiBmeasured fileMeasurable quality loss. Worth it only to make a model fit at all.

Every accelerator

Largest quant that fits with at least 4k of context, the context it leaves, and the bandwidth ceiling on decode speed. Each row links to the worked page for that pairing.

AcceleratorMemoryBandwidthBest quantMax contextCeiling
Apple M3 Ultra (512GB)512 GB819 GB/sFP16 / BF168,1921789 tok/s
H200 141GB (SXM)141 GB4800 GB/sFP16 / BF168,19210485 tok/s
Apple M4 Max (128GB)128 GB546 GB/sFP16 / BF168,1921193 tok/s
H100 80GB (SXM5)80 GB3350 GB/sFP16 / BF168,1927318 tok/s
A100 80GB (SXM)80 GB2039 GB/sFP16 / BF168,1924454 tok/s
Jetson AGX Orin (64GB)64 GB204.8 GB/sFP16 / BF168,192447 tok/s
RTX 6000 Ada Generation48 GB960 GB/sFP16 / BF168,1922097 tok/s
L40S48 GB864 GB/sFP16 / BF168,1921887 tok/s
Apple M4 Pro (48GB)48 GB273 GB/sFP16 / BF168,192596 tok/s
A100 40GB (SXM)40 GB1555 GB/sFP16 / BF168,1923397 tok/s
GeForce RTX 509032 GB1792 GB/sFP16 / BF168,1923914 tok/s
GeForce RTX 409024 GB1008 GB/sFP16 / BF168,1922202 tok/s
Radeon RX 7900 XTX24 GB960 GB/sFP16 / BF168,1922097 tok/s
GeForce RTX 309024 GB936 GB/sFP16 / BF168,1922045 tok/s
Apple M4 (24GB)24 GB120 GB/sFP16 / BF168,192262 tok/s
GeForce RTX 508016 GB960 GB/sFP16 / BF168,1922097 tok/s
GeForce RTX 5070 Ti16 GB896 GB/sFP16 / BF168,1921957 tok/s
GeForce RTX 4080 SUPER16 GB736 GB/sFP16 / BF168,1921608 tok/s
GeForce RTX 4070 Ti SUPER16 GB672 GB/sFP16 / BF168,1921468 tok/s
GeForce RTX 4060 Ti 16GB16 GB288 GB/sFP16 / BF168,192629 tok/s
GeForce RTX 3060 12GB12 GB360 GB/sFP16 / BF168,192786 tok/s
Jetson Orin Nano Super (8GB)8 GB102 GB/sFP16 / BF168,192223 tok/s

Questions about this model

How much VRAM does SmolLM2 135M Instruct need?

257 MiB for the weights at FP16 and 101 MiB at Q4_K_M, from an exact count of 134,515,008 parameters. On top of that, the KV cache costs 22.5 KiB per token of context — 180 MiB at 8k and 720 MiB at 32k.

What is the smallest GPU that runs SmolLM2 135M Instruct?

Of the 22 accelerators here, the smallest that holds Q4_K_M weights is the Jetson Orin Nano Super (8GB) at 8 GB — 101 MiB of weights against 6.0 GiB usable, leaving room for 8k tokens. For unquantized weights you need at least a Jetson Orin Nano Super (8GB).

Why is the KV cache for SmolLM2 135M Instruct the size it is?

Because it stores one key and one value vector per token, per layer: 30 layers × 3 KV heads × 64 dimensions × 2 (K and V) × 2 bytes = 22.5 KiB per token. Grouped-query attention shares those 3 KV heads across 9 query heads, cutting the cache by 3× against multi-head attention. None of this can be read off the parameter count.

Compare with

Method and limits. The parameter count and every architecture figure on this page are read from the model's own published config and the Hub's index over its tensor shapes, fetched 2026-08-07 — nothing here is recalled from a model's name. Weight bytes are the size of a real published file wherever one exists and the parameter count times the published llama.cpp bits-per-weight where it does not; every row says which. Speed figures are roofline bounds — memory bandwidth divided by bytes read per token — not benchmarks. Nothing on this page is written by a language model.