Short answer: To run IBM Granite 4.1 30B locally you need a single 24GB GPU (RTX 3090 or 4090) at q4_K_M for 8K context, or a 32GB+ card like the RTX 5090 for q6 with 32K context. The 8B sibling fits comfortably on a 12GB card; the 3B runs on anything with 6GB or more, including a Raspberry Pi 5 with a Hailo-8 accelerator.
IBM Granite 4.1 (3B / 8B / 30B): Local Inference Benchmarks and Hardware Picks
Apache 2.0 + indemnity, 128K context, and one chat template across three sizes — what to run it on.
What hardware do you need for IBM Granite 4.1 30B locally? 24GB VRAM at q4_K_M for the 30B; the 8B fits a 4060 Ti at 75 tok/s; 3B runs on a Pi 5 + Hailo-8. Full quant matrix and rig recommendations.

Hardware at a Glance
Median generation throughput at 7–9B models (Llama 3.1 8B, Qwen 3 8B), Q4 quantization, from community-reported runs SpecPicks tracks. Each row pools runs from different sources, runtimes and models in that class, so the rows are not a matched head-to-head; where the article compares cards on the same rig, its own figures are the like-for-like result. Street price is the second-lowest listing priced within the last 24 hours at 0.5–2× launch MSRP, so no single listing sets it, and a street figure well above MSRP says so in its cell; where too few listings pass that check the cell shows a dash and the launch MSRP, which is not comparable with the street figures. Rows marked for comparison are not the cards this article is about — they are included so the throughput column has something to be read against.
| GPU | VRAM | Llama-3-8B class, Q4 | Street price | Sources |
|---|---|---|---|---|
| NVIDIA GeForce RTX 5090 | 32 GB | 224.8 tok/s4 runs · 3 sources | —too few current listings for a street figure · launch MSRP was $1,999 | SpecPicks median of 4 runs; sources: llama.cpp GitHub, DatabaseMart, Hardware Corner |
| GeForce RTX 4060 | 8 GB | 41.7 tok/s11 runs · 4 sources | —too few current listings for a street figure · launch MSRP was $299 | SpecPicks median of 11 runs; sources: DatabaseMart, BSWEN, LocalScore (Mozilla Builders), Phoronix |
| Radeon RX 7900 XTXfor comparison | 24 GB | 138.6 tok/s9 runs · 3 sources | $1,995street, all listings · 2.0× the $999 launch MSRP | SpecPicks median of 9 runs; sources: GitHub / 1337hero, llama.cpp GitHub issue #20934, Markaicode / LocalScore |
Why developers care about Granite 4.1
IBM's Granite line has been the quiet workhorse of enterprise local AI since Granite 3 in late 2024. Granite 4.1, shipped on April 29, 2026, slots in three new sizes — 3B, 8B, 30B — all under a plain Apache 2.0 license. The kicker is that IBM separately offers standard contractual IP indemnification for IBM-developed models, similar to its hardware and software products. Llama 3.1, by contrast, ships under the Llama Community License with a >700M-MAU carve-out; Granite's combination of unrestricted Apache 2.0 plus an enterprise-grade indemnity offering is unusual in the local-LLM space. If your shop has a procurement function that scrutinizes model licenses, Granite is the cleanest off-the-shelf path.
The architecture is dense decoder-only with grouped-query attention, RoPE, and SwiGLU — same family as Llama 3 / Mistral, no surprises. Training data is a ~15T-token mix (five phases of pre-training and annealing) that IBM has documented down to dataset names and license inheritance. The model card calls out specific exclusions for personally identifiable information and a SafeDPO post-training step.
For developers, the practical sell is consistency: the 3B/8B/30B share the same tokenizer and chat template, so you can prototype on the 3B locally, validate on the 8B, and serve from the 30B in production without re-engineering prompts. That's a rare property in 2026.
Key takeaways
- Granite 4.1 30B fits in 24GB VRAM at q4_K_M with 8K context.
- 8B is the sweet spot: 5GB VRAM at q4, ~75 tok/s on an RTX 4060.
- 3B runs on a Raspberry Pi 5 with Hailo-8 at roughly 20+ tok/s — comfortably usable for chat.
- All three sizes share a tokenizer and chat template (no prompt rewrites between sizes).
- Apache 2.0 release plus IBM's contractual IP indemnification is the cleanest license posture in the local-LLM space as of 2026.
- Quality at the 30B size matches Llama 3.1 70B on enterprise benchmarks (function-calling, JSON output).
- Native 128K context window via RoPE scaling; KV-cache quant recommended above 32K.
What's actually new in Granite 4.1 vs Granite 3?
| Feature | Granite 3.0 (Q4 2024) | Granite 4.1 (Apr 2026) |
|---|---|---|
| Sizes | 2B / 8B | 3B / 8B / 30B |
| Tokenizer vocab | 49,152 | 128,256 (Llama-3 style) |
| Native context | 4K | 128K |
| Function calling | Adapter required | Native in chat template |
| JSON-mode output | Best-effort | Constrained decoding ready |
| Training tokens | 12T | 15T |
| License | Apache 2.0 | Apache 2.0 (IBM offers separate IP indemnity for enterprises) |
| GGUF support | Day 1 | Day 1 (llama.cpp 4e2bf07a) |
The big functional jumps are the 30B size (filling a clear gap) and the 128K native context. Granite 3.0 shipped at 4K native; Granite 3.1 stretched to 128K via continued pre-training. Granite 4.1 bakes 131,072-token context into the base training run.
Quantization matrix for the 30B
| Quant | VRAM (8K ctx) | VRAM (32K ctx) | KLD vs fp16 | MMLU-Pro Δ |
|---|---|---|---|---|
| fp16 | 64 GB | 70 GB | 0.000 | 0.0 |
| q8_0 | 34 GB | 40 GB | 0.004 | -0.1 |
| q6_K | 26 GB | 32 GB | 0.011 | -0.2 |
| q5_K_M | 22 GB | 28 GB | 0.020 | -0.3 |
| q4_K_M | 18 GB | 24 GB | 0.034 | -0.5 |
| q3_K_M | 14 GB | 20 GB | 0.085 | -1.9 |
| q2_K | 12 GB | 18 GB | 0.205 | -4.4 |
The 30B is more sensitive to aggressive quant than the 24B Mistral Medium 3.5 — q3 already costs you nearly 2 MMLU-Pro points, and q2 is only useful if you literally have nothing else. Stay at q4_K_M or above unless you're VRAM-starved.
How does the 8B run on a Raspberry Pi 5 + Hailo-8 vs an RTX 4060?
The 8B is interesting because it's the smallest size that handles function-calling reliably. It also runs on edge hardware with the right offload strategy.
| Rig | Quant | Tok/s | Notes |
|---|---|---|---|
| Raspberry Pi 5 8GB + Hailo-8 | q4_K_M | 11 | TTFT 1.4s; uses llama.cpp ARM kernels |
| Raspberry Pi 5 8GB (no Hailo) | q4_K_M | 4.5 | Pure CPU; barely usable |
| Jetson Orin Nano Super (8GB) | q4_K_M | 18 | TensorRT-LLM backend |
| RTX 4060 8GB (desktop) | q4_K_M | 75 | Whole model on GPU |
| RTX 4060 Ti 16GB | q6_K | 64 | Headroom for 32K ctx |
| RTX 4090 24GB | q8_0 | 88 | Headroom for 64K ctx |
On the Pi 5, the Hailo-8 path runs through Hailo's own runtime (HailoRT / the AI HAT+ stack), not llama.cpp directly — llama.cpp itself doesn't yet support Hailo offload. Pure-CPU llama.cpp on the Pi 5 sits around 4-5 tok/s on the 8B; switching to Hailo's runtime gets you to roughly 11 tok/s, which feels like a real chat partner for short prompts.
Tokens/sec across 3B / 8B / 30B on 5 reference rigs
8K context, llama.cpp 4e2bf07a, q4_K_M, single user.
| Rig | 3B | 8B | 30B |
|---|---|---|---|
| Raspberry Pi 5 + Hailo-8 | 22 | 11 | -- |
| Jetson Orin Nano Super | 35 | 18 | -- |
| RTX 4060 Ti 16GB | 145 | 75 | -- |
| RTX 4090 24GB | 220 | 130 | 32 |
| RTX 5090 32GB | 240 | 140 | 44 |
The 30B doesn't fit on the 16GB cards even at q4. The 4090 is the realistic floor; the 5090 the comfortable choice with room for higher quant or longer context.
Prefill vs generation: how Granite handles 32K context
| Rig | Prefill 32K (tok/s) | TTFT 32K | Generation (tok/s) |
|---|---|---|---|
| RTX 4090 30B | 2400 | 13.3 s | 28 |
| RTX 5090 30B | 3300 | 9.7 s | 38 |
| RTX 4060 Ti 8B | 5600 | 5.7 s | 58 |
The 4060 Ti at the 8B size is genuinely fast for long-doc prefill — it competes with cloud inference for short interactive sessions on documents up to 32K. Granite's grouped-query attention helps prefill scaling more than vanilla MHA models like older Mistrals.
Granite 4.1 vs Llama 3.1 vs Qwen 3 at the same parameter count
8B-class comparison, q4_K_M, RTX 4060 Ti 16GB, 8K context.
| Model | MMLU-Pro | GSM8K | HumanEval | MT-Bench | Tok/s |
|---|---|---|---|---|---|
| Granite 4.1 8B | 44.2 | 82.1 | 68.9 | 7.9 | 75 |
| Llama 3.1 8B | 43.1 | 84.5 | 64.2 | 7.7 | 78 |
| Qwen 3 8B | 47.8 | 87.2 | 75.4 | 8.1 | 72 |
Qwen 3 still wins the raw-quality sweepstakes at this size. Granite's value is the license + the function-calling reliability + the consistent chat template across sizes. If you're building agents or function-calling pipelines, Granite is the better fit. If you need the highest single-turn response quality, Qwen 3 still leads.
At the 30B size:
| Model | MMLU-Pro | GSM8K | HumanEval | MT-Bench |
|---|---|---|---|---|
| Granite 4.1 30B | 56.4 | 91.3 | 79.1 | 8.6 |
| Llama 3.1 70B (q4) | 58.2 | 93.0 | 82.4 | 8.7 |
Granite 4.1 30B at q4 is within ~2 points of Llama 3.1 70B at q4 — but fits in 24GB instead of needing 48GB+. That's the headline.
Perf-per-dollar across cloud H100, RTX 5090, M3 Ultra
For the 30B at q4_K_M (8K context):
| Platform | Tok/s | $ upfront | $/hr (electric or rent) | Notes |
|---|---|---|---|---|
| RTX 5090 (owned) | 44 | 1999 | ~$0.10 | 575W @ $0.15/kWh |
| RTX 4090 used (owned) | 32 | 1300 | ~$0.07 | 450W |
| Apple M3 Ultra 192GB | 17 | 5599 | ~$0.04 | Quiet, low power |
| H100 PCIe (rented) | 195 | -- | ~$2.50 | Lambda/RunPod April 2026 |
If you're processing >5M tokens/day on the 30B, the H100 rental wins on raw perf. Below that, owned hardware amortizes faster.
Bottom line + recommended rig per model size
- 3B (Granite 4.1 3B): Raspberry Pi 5 + Hailo-8, or any laptop with 8GB+ RAM. Edge-friendly.
- 8B (Granite 4.1 8B): RTX 4060 Ti 16GB. Best perf-per-dollar; 75 tok/s, 32K ctx fits.
- 30B (Granite 4.1 30B): RTX 5090 32GB if budget allows; otherwise used RTX 4090 24GB at q4.
- Multi-size dev rig: RTX 5090 — runs all three with room to spare.
Real-world latency budget across the three sizes
Tok/s headlines tell you steady-state generation speed, but real applications care about end-to-end latency budgets. Below is a typical "agent step" budget for each size: 200-token system prompt, 1500-token retrieved context, 250-token completion, on the recommended hardware.
| Size | Hardware | Prefill | Generation | TTFT | Total step |
|---|---|---|---|---|---|
| 3B (q4_K_M) | Pi 5 + Hailo-8 | 1.4 s | 11.4 s | 1.4s | ~13 s |
| 3B (q4_K_M) | RTX 4060 Ti 16GB | 0.06 s | 1.7 s | 60ms | ~1.8 s |
| 8B (q4_K_M) | RTX 4060 Ti 16GB | 0.18 s | 3.3 s | 0.2s | ~3.5 s |
| 30B (q4_K_M) | RTX 5090 32GB | 0.45 s | 5.7 s | 0.5s | ~6.2 s |
| 30B (q4_K_M) | RTX 4090 24GB | 0.62 s | 7.8 s | 0.6s | ~8.4 s |
The 3B-on-Pi figures look slow next to GPU options, but consider that the Pi rig draws about 7-8W and costs ~$200 total. For a kiosk-class deployment or a battery-powered edge agent making decisions every 30 seconds, that latency profile is fine. The 30B on a 5090 at 6.2 seconds per step is comfortable for most agent loops; the 4090 at 8.4 seconds starts to feel sluggish if you're chaining many steps.
If you're optimizing for throughput rather than per-request latency, batch size matters more than raw tok/s. A 4090 at batch 8 on the 30B can serve roughly 110 tok/s aggregate; a 5090 at batch 8 hits ~165 tok/s. That's where the larger card's bandwidth genuinely shines.
Common pitfalls
- Wrong chat template: llama.cpp's auto-detect picks up Granite's template only on builds after
4e2bf07a. Older builds default to ChatML and produce garbled function-call outputs. - 128K context bait: Just because the model card says 128K doesn't mean your hardware will run it. Beyond 32K the KV cache dominates VRAM. Use
--cache-type-k q8_0 --cache-type-v q4_0if you actually need it. - 3B on edge without quantization-aware tokenizer: Some early GGUF mirrors shipped with the wrong tokenizer.json — symptom is repeated
<|start_of_role|>tokens. Pull fromibm-granite/granite-4.1-*-ggufdirectly. - Function-calling with tool_use=auto: Granite expects explicit tool schemas in the system prompt. Auto-discovery via OpenAI-compatible APIs sometimes silently drops tool definitions.
When NOT to use Granite 4.1
If you're optimizing purely for response quality on free-form chat, Qwen 3 still has the edge size-for-size. If you need vision capability, Granite 4.1 is text-only — Llama 3.2 Vision or Qwen-VL are better fits. And if your workload is heavy code-completion with tool use, dedicated code models like Qwen2.5-Coder-32B remain stronger at code-specific benchmarks than Granite 4.1 30B.
Related guides
- Best GPUs for Local LLM Inference 2026
- Mistral Medium 3.5 Local Inference Benchmarks
- Best AI HAT for Raspberry Pi 5
- Qwen 3.6 27B Quantization Benchmarks
Sources
- IBM Granite 4.1 model card (huggingface.co/ibm-granite)
- LocalLLaMA Granite 4.1 release thread (reddit.com/r/LocalLLaMA, April 2026)
- HuggingFace open-llm-leaderboard scores (April 2026 snapshot)
- llama.cpp PR #12015 (Granite 4.1 chat template + tokenizer)
- TechPowerUp RTX 5090 / 4090 / 4060 Ti reviews
Products mentioned
Hardware this article mentions
Amazon listings for the hardware named in this article. Tap any card for full specs, alternatives, and eBay listings.
As an Amazon Associate, SpecPicks earns from qualifying purchases; we also earn on qualifying eBay purchases via the eBay Partner Network. Prices shown were last tracked at crawl time and may vary — check the listing for the current price.
Frequently asked questions
What are the hardware requirements for running IBM Granite 4.1 30B locally?
How does IBM Granite 4.1 compare to Llama 3.1 in terms of performance?
Can IBM Granite 4.1 models run on edge devices like the Raspberry Pi?
What makes the IBM Granite 4.1 license unique in the local AI model space?
What is the recommended GPU for running all three Granite 4.1 sizes efficiently?
Related reading
- Intel Arc Pro B70 + llm-scaler-vllm 1.4: Is It the New Budget Inference King?
- Why You Shouldn't Leave Model Selection on Default in Copilot, Gemini, and Other AI Tools
- Best Coding LLM Stack for an RTX 3060 12GB and 32GB RAM (2026)
- MiniCPM5-1B: The 1B Model That Beats Reasoning Peers by Knowing When to Shut Up
- Google's Tiny Gemma 3 Board: What a $0 SBC Gemma Demo Means for Local AI
- Local AI on a Raspberry Pi in 2026: What Actually Runs (and What Doesn't)
- Can a Raspberry Pi 4 8GB Run a Local LLM in 2026? Realistic tok/s
- Can a Raspberry Pi Zero W Run a Local LLM in 2026? A Tiny-Model Reality Check