LensVLM 9B VRAM requirements
LensVLM 9B needs about 6.61 GB of VRAM at Q4_K_M with 8K context, so it fits an 8 GB card such as the RTX 4060 8GB. LensVLM 9B has 9.4B parameters (Apple's vision-language model built on Qwen3.5-9B; the weights are under Apple's research-only license). With the same 8K context and one request it needs 10.4 GB at FP8 and 20.1 GB at FP16/BF16. The published weights take 17.5 GB (BF16). The smallest setup here that holds it at Q4_K_M with an 8K context is the RTX 4060 8GB; on one 24 GB RTX 3090 / 4090 it runs with its full 256K-token context.
6.61 GB at Q4_K_M, 8K context, one request
- FP8
- 10.4 GB
- FP16 / BF16
- 20.1 GB
- Published weights
- 17.5 GB
- Smallest setup, Q4_K_M
- RTX 4060 8GB
Worked example: LensVLM 9B with 32K tokens
Inputs: LensVLM 9B · Q4_K_M weights · 32,768 tokens of context · one request · FP16 KV cache
- Weights (9.4B at Q4_K_M)
- 5.30 GB
- KV cache (32 KB per token)
- 1.00 GB
- Buffers and runtime (0.5 GB + 10%)
- 1.13 GB
- Total
- 7.43 GB
The smallest setup here that holds it is the RTX 4060 8GB, with about 581 MB to spare. Change the inputs in the calculator
What makes LensVLM 9B's memory use different
24 of its 32 layers keep a fixed-size linear-attention state, so the cache grows by 32 KB per token where caching every layer would take 128 KB.
Per token of context it adds 32 KB of FP16 cache; Granite 4.2 8B (8.8B), the nearest-sized model here with plain full attention, adds 160 KB, so LensVLM 9B needs 20% as much.
Its architecture and size match Ornith 1.0 9B, MiMo V2.6 Distill Qwen 9B, so every memory figure on this page is the same for those models.
How much VRAM does LensVLM 9B need?
LensVLM 9B needs 6.61 GB at Q4_K_M, 11.0 GB at Q8_0 and 20.1 GB at FP16 with 8,192 tokens of context and one request. Each total below is the weights plus the FP16 KV cache and the runtime overhead (0.5 GB plus 10%), and each row opens the calculator with that setting. What the GGUF names mean.
| Precision | Weights | Total | Smallest setup |
|---|---|---|---|
| As published (BF16) | 17.5 GB | 20.1 GB | RTX 3090 (24 GB) |
| FP16 / BF16 | 17.5 GB | 20.1 GB | RTX 3090 (24 GB) |
| FP8 / INT8 | 8.76 GB | 10.4 GB | RTX 3060 12GB |
| INT4 (AWQ / GPTQ) | 4.66 GB | 5.90 GB | RTX 4060 8GB |
| GGUF Q8_0 | 9.31 GB | 11.0 GB | RTX 3060 12GB |
| GGUF Q6_K | 7.19 GB | 8.68 GB | RTX 3060 12GB |
| GGUF Q5_K_M | 6.21 GB | 7.61 GB | RTX 4060 8GB |
| GGUF Q4_K_M | 5.30 GB | 6.61 GB | RTX 4060 8GB |
| GGUF IQ4_XS | 4.77 GB | 6.02 GB | RTX 4060 8GB |
| GGUF Q3_K_M | 4.28 GB | 5.49 GB | RTX 4060 8GB |
| GGUF IQ3_XXS | 3.61 GB | 4.75 GB | RTX 4060 8GB |
| GGUF Q2_K | 3.67 GB | 4.81 GB | RTX 4060 8GB |
Fine-tuning LensVLM 9B? LensVLM 9B VRAM for LoRA, QLoRA and full training.
LensVLM 9B GGUF files on Hugging Face
The 8 GGUF files llama.cpp picks for LensVLM 9B with -hf <repo>:<QUANT>, with the bytes the Hugging Face file list reported on 2026-09-29. Each total is that file plus the FP16 KV cache and 0.5 GB + 10%, one request. "vs estimate" compares the file with the bits-per-weight size the table above uses.
| Quant | File | Size | vs estimate | 8K | 32K | 128K |
|---|---|---|---|---|---|---|
| Q2_K | bartowski/ | 3.39 GB3,644,384,480 bytes | −8% | 4.51 GB | 5.33 GB | 8.63 GB |
| Q3_K_M | bartowski/ | 4.17 GB4,479,952,096 bytes | −3% | 5.36 GB | 6.19 GB | 9.49 GB |
| IQ4_XS | bartowski/ | 4.87 GB5,227,308,256 bytes | +2% | 6.13 GB | 6.96 GB | 10.3 GB |
| Q4_K_M | bartowski/ | 5.44 GB5,841,052,896 bytes | +3% | 6.76 GB | 7.58 GB | 10.9 GB |
| Q5_K_M | bartowski/ | 6.40 GB6,876,128,480 bytes | +3% | 7.82 GB | 8.64 GB | 11.9 GB |
| Q6_K | bartowski/ | 7.26 GB7,793,714,400 bytes | +1% | 8.76 GB | 9.58 GB | 12.9 GB |
| Q8_0 | bartowski/ | 8.89 GB9,545,983,200 bytes | −5% | 10.6 GB | 11.4 GB | 14.7 GB |
| BF16 | bartowski/ | 16.7 GB17,920,697,280 bytes | −5% | 19.1 GB | 20.0 GB | 23.3 GB |
GB here is GiB (1024³ bytes), as everywhere on this site; Hugging Face shows the Q4_K_M file as 5.8 GB, in 10⁹ bytes.
LensVLM 9B GGUF files and visual text compression
LensVLM-9B is Apple's fine-tune of Qwen3.5-9B that reads long text as rendered images: in its paper it keeps accuracy close to reading the full text at 4.3× effective compression. For memory that is the point: a 131,072-token document read as text needs 4.00 GB of FP16 KV cache on top of the weights, and the same document compressed 4.3× (about 30,482 tokens) needs 953 MB. The paper measures this on seven text QA benchmarks; other documents may compress less.
With images, the bartowski Q4_K_M file and its BF16 mmproj at 32K context come to 8.44 GB, which no longer fits an 8 GB card with 0.5 GB free; an RTX 3060 12GB leaves 3.56 GB for longer documents.
Apple publishes only the BF16 safetensors (18,819,722,392 bytes, vision tower included) under its research-only license. The GGUF builds below hold the language model; for images, llama.cpp also loads the 921,704,992-byte (0.86 GB) mmproj file from the same repos. The main GGUF files, with the totals this page's method gives:
| Quant | File | Size | 8K | 32K | 128K |
|---|---|---|---|---|---|
| Q3_K_M | bartowski/ | 4.17 GB4,479,952,096 bytes | 5.36 GB | 6.19 GB | 9.49 GB |
| IQ4_XS | bartowski/ | 4.87 GB5,227,308,256 bytes | 6.13 GB | 6.96 GB | 10.3 GB |
| Q4_K_M | bartowski/ | 5.44 GB5,841,052,896 bytes | 6.76 GB | 7.58 GB | 10.9 GB |
| Q4_K_M | prithivMLmods/ | 5.24 GB5,629,109,184 bytes | 6.54 GB | 7.37 GB | 10.7 GB |
| Q5_K_M | bartowski/ | 6.40 GB6,876,128,480 bytes | 7.82 GB | 8.64 GB | 11.9 GB |
| Q6_K | bartowski/ | 7.26 GB7,793,714,400 bytes | 8.76 GB | 9.58 GB | 12.9 GB |
| Q8_0 | bartowski/ | 8.89 GB9,545,983,200 bytes | 10.6 GB | 11.4 GB | 14.7 GB |
The two Q4_K_M files differ by 211,943,712 bytes (0.20 GB): bartowski keeps more tensors at higher precision. The mmproj file adds 0.86 GB to every total when you pass images. On a Mac, mlx-community/
Which LensVLM 9B GGUF fits a 16, 24, 32, 48 or 80 GB GPU or a Mac
From the file sizes above: the largest file that fits each machine with an 8K context and 0.5 GB left free, the longest context it then has room for, and the longest context for Q4_K_M (5.44 GB). One request, FP16 KV cache.
| Hardware | Largest GGUF, 8K | Its longest context | Q4_K_M, longest context |
|---|---|---|---|
| RTX 5060 Ti 16GB | Q8_0, 8.89 GB | 151K | 256K (full) |
| RTX 4090 (24 GB) | BF16, 16.7 GB | 134K | 256K (full) |
| RTX 5090 (32 GB) | BF16, 16.7 GB | 256K (full) | 256K (full) |
| L40S (48 GB) | BF16, 16.7 GB | 256K (full) | 256K (full) |
| H100 SXM (80 GB) | BF16, 16.7 GB | 256K (full) | 256K (full) |
| M4 Pro Mac (64 GB, 48 GB usable) | BF16, 16.7 GB | 256K (full) | 256K (full) |
| M4 Max Mac (128 GB, 96 GB usable) | BF16, 16.7 GB | 256K (full) | 256K (full) |
Run LensVLM 9B with llama.cpp
llama-server -hf bartowski/LensVLM-9B-GGUF:Q4_K_M -c 262144 LensVLM-9B-Q4_K_M.gguf, 5.8 GB, from bartowski/
LensVLM 9B at 8K, 32K, 128K and 256K (full) tokens of context
8 of its 32 layers use full attention and 24 are linear-attention layers with no growing cache. Each extra token of context adds 32 KB of FP16 cache per request. The last column is the smallest setup here, one card or a group, that holds it at Q4_K_M. How the KV cache works.
| Context | KV cache, FP16 | Total at Q4_K_M | Total at Q8_0 | Smallest setup, Q4_K_M |
|---|---|---|---|---|
| 8K tokens | 256 MB | 6.61 GB | 11.0 GB | RTX 4060 8GB |
| 32K tokens | 1.00 GB | 7.43 GB | 11.8 GB | RTX 4060 8GB |
| 128K tokens | 4.00 GB | 10.7 GB | 15.1 GB | RTX 3060 12GB |
| 256K tokens | 8.00 GB | 15.1 GB | 19.5 GB | RTX 4060 Ti 16GB |
How fast LensVLM 9B writes
Tokens per second for one request with 8,192 tokens of context, estimated from memory bandwidth. A dash means it does not fit on one card. Try other settings in the speed calculator.
| Hardware | Bandwidth | Q4_K_M | FP8 |
|---|---|---|---|
| RTX 3060 12GB | 360 GB/s | 32–44 | 20–28 |
| RTX 4090 | 1,008 GB/s | 82–119 | 53–75 |
| RTX 5090 | 1,792 GB/s | 132–203 | 88–130 |
| M4 Max Mac (128 GB) | 546 GB/s | 47–66 | 30–41 |
| M3 Ultra Mac Studio (512 GB) | 819 GB/s | 68–98 | 44–62 |
| H100 SXM | 3,350 GB/s | 211–348 | 148–230 |
| H200 | 4,800 GB/s | 266–464 | 194–314 |
Longest context on one GPU
How many tokens of context LensVLM 9B fits on a single card with one request, an FP16 KV cache and 0.5 GB left free. "Full" means the model's whole context window fits.
| GPU | Memory | Q4_K_M | Q8_0 | FP8 |
|---|---|---|---|---|
| RTX 3060 | 12 GB | 150K | 21K | 39K |
| RTX 4060 Ti 16GB | 16 GB | 256K (full) | 138K | 155K |
| RTX 3090 / 4090 | 24 GB | 256K (full) | 256K (full) | 256K (full) |
| RTX 5090 | 32 GB | 256K (full) | 256K (full) | 256K (full) |
| A100 40GB | 40 GB | 256K (full) | 256K (full) | 256K (full) |
| Mac, 64 GB unified memory | 48 GB | 256K (full) | 256K (full) | 256K (full) |
| L40S / RTX 6000 Ada | 48 GB | 256K (full) | 256K (full) | 256K (full) |
| A100 / H100 80GB | 80 GB | 256K (full) | 256K (full) | 256K (full) |
| Mac, 128 GB unified memory | 96 GB | 256K (full) | 256K (full) | 256K (full) |
| H200 | 141 GB | 256K (full) | 256K (full) | 256K (full) |
| B200 | 180 GB | 256K (full) | 256K (full) | 256K (full) |
Model details
- Parameters
- 9.4B (9,409,813,744); Apple's vision-language model built on Qwen3.5-9B; the weights are under Apple's research-only license
- Layers
- 8 of its 32 layers use full attention and 24 are linear-attention layers with no growing cache
- Attention cache
- 4 KV heads × 256
- Context length
- 262,144 tokens
- Published weights
- 17.5 GB (BF16)
- On Hugging Face
- apple/LensVLM-9B
- Reported benchmarks
- None published in the model card for GPQA, MMLU-Pro or LiveCodeBench.
Why this estimate looks this way
At Q4_K_M and an 8K-token context, LensVLM 9B uses 5.30 GB for weights, 256 MB for its FP16 KV cache and 1.06 GB for estimated runtime overhead, totaling 6.61 GB. The overhead is a 0.5 GB base plus 10% of weights and cache.
Its attention layout matters for long context: 8 of its 32 layers use full attention and 24 are linear-attention layers with no growing cache. The FP16 cache grows by about 32 KB per additional token per request.
The architecture and published checkpoint size come from the model's config.json and weight files. These are estimates rather than measured peak memory; inference engines can reserve extra buffers or preallocate the full configured cache.
LensVLM 9B next to similar-sized models
The three models here closest to it in parameter count, at Q4_K_M with 8,192 tokens of context.
| Model | Parameters | Total | KV per token | Smallest setup |
|---|---|---|---|---|
| LensVLM 9B | 9.4B | 6.61 GB | 32 KB | RTX 4060 8GB |
| Ornith 1.0 9B | 9.4B | 6.61 GB | 32 KB | RTX 4060 8GB |
| MiMo V2.6 Distill Qwen 9B | 9.4B | 6.61 GB | 32 KB | RTX 4060 8GB |
| Ornith 1.5 9B | 9.7B | 6.76 GB | 32 KB | RTX 4060 8GB |
LensVLM 9B VRAM questions
How much VRAM do I need to run LensVLM 9B locally?
About 6.61 GB at Q4_K_M with an 8K context and one request, by the bits-per-weight estimate, and 20.1 GB at BF16. The Q4_K_M GGUF LensVLM-9B-Q4_K_M.gguf in bartowski/
Can I run LensVLM 9B on a 24 GB GPU?
Yes. On the RTX 4090 (24 GB), the largest listed GGUF that fits with an 8K context and 0.5 GB free is BF16 (16.7 GB), with up to 134K tokens of context. Q4_K_M (5.44 GB) runs with its full 256K-token context.
Which quantization of LensVLM 9B fits in 16 GB of VRAM?
On the RTX 5060 Ti 16GB, the largest listed GGUF that fits with an 8K context and 0.5 GB free is Q8_0 (8.89 GB), with up to 151K tokens of context. Q4_K_M (5.44 GB) runs with its full 256K-token context.
Can I run LensVLM 9B on a Mac?
On the M4 Pro Mac (64 GB, 48 GB usable), the largest listed GGUF that fits with an 8K context and 0.5 GB free is BF16 (16.7 GB), with its full 256K-token context. On the M4 Max Mac (128 GB, 96 GB usable), the largest listed GGUF that fits with an 8K context and 0.5 GB free is BF16 (16.7 GB), with its full 256K-token context. By default macOS lets the GPU use about 75% of unified memory.
How much more VRAM does LensVLM 9B need for 32K or 128K tokens of context?
Its FP16 KV cache is 256 MB at 8K, 1.00 GB at 32K, 4.00 GB at 128K for one request, so 128K adds 3.75 GB over 8K, plus 10% overhead. A q8_0 cache
Why does LensVLM 9B use more VRAM than its GGUF file size?
The file holds only the weights. At Q4_K_M with an 8K context: 5.44 GB of weights (the file's 5,841,052,896 bytes) + 256 MB of FP16 KV cache + 1.07 GB of compute buffers and runtime (0.5 GB + 10%) = 6.76 GB.
Badge for your model card
Paste it into a Hugging Face or GitHub README; it shows the Q4_K_M total above and links to this page. Q8_0 and FP16 badges.
Numbers read from the model files on Hugging Face on . Compare it with other models in the reproducible model and GPU report.