# Running 3B LLMs on Edge SBCs & MCUs

Why parameter count isn't the bottleneck for on-device LLMs: memory bandwidth, GGUF/INT4 quantization math, and ANE lessons from Thumbdash and itria.

Canonical page: https://makerportal.ai/blog/running-3b-llms-on-microcontrollers
Author: Joshua Hrisko, Principal Engineer — MakerPortal
Published: 2026-08-03
Section: Field note / Edge Hardware Systems · 6 min read
Tags: on-device-ai, local-llm, llama.cpp, edge-sbc

---

When developers try running local LLMs on low-power devices (Raspberry Pi 5, Jetson Orin Nano, or Apple Silicon), they almost always blame **FLOPs** or CPU core counts when generation crawls to a halt.

In practice, autoregressive LLM inference during the token generation phase is strictly **memory bandwidth bound**. Understanding the arithmetic behind weight bandwidth and KV-cache scaling is the difference between a sluggish 1.2 tok/sec experience and a snappy 25+ tok/sec local app.

---

## 1. The Autoregressive Memory Bottleneck

During matrix-vector multiplication in token generation, every single weight parameter must be fetched from main RAM (or Unified Memory) into L1/L2 cache once per output token.

The theoretical token generation speed $T_{\text{gen}}$ is bounded by:

$$
T_{\text{gen}} \approx \frac{\text{Memory Bandwidth (GB/s)}}{\text{Model Weight Size (GB)}}
$$

### Measured SBC Bandwidth Baseline

| Hardware Target | Memory Type | Rated Bandwidth | 3B Q4 Model (1.8 GB) | 7B Q4 Model (4.2 GB) |
|---|---|---|---|---|
| **Apple M4 Max** | LPDDR5X (Unified) | 400 GB/s | ~220 tok/sec | ~95 tok/sec |
| **NVIDIA RTX 4090** | GDDR6X (Dedicated) | 1,008 GB/s | ~560 tok/sec | ~240 tok/sec |
| **NVIDIA Jetson Orin Nano** | LPDDR5 128-bit | 68 GB/s | ~37 tok/sec | ~16 tok/sec |
| **Raspberry Pi 5 (8GB)** | LPDDR4X 32-bit | 17 GB/s | ~9.4 tok/sec | ~4.0 tok/sec |

---

## 2. Quantization Tradeoffs: Q4_K_M vs Q8_0 vs FP16

Quantization reduces memory footprint, which directly increases token generation speed by reducing total bytes transferred across the bus.

- **FP16 (2.0 B/param):** 3B Model = 6.0 GB VRAM (Requires 16GB+ RAM Board)
- **Q8_0 (1.06 B/param):** 3B Model = 3.2 GB VRAM (Fits 4GB Board)
- **Q4_K_M (0.56 B/param):** 3B Model = 1.7 GB VRAM (Fits 2GB Board — Recommended)

In our testing on [Thumbdash](https://thumbdash.makerportal.ai) (which embeds `SmolLM2-360M-Instruct` via `llama.cpp` + Metal on iOS), quantization down to `Q4_K_M` delivered a 3.5x speedup with negligible loss in Levenshtein text scoring compared to full FP16.

---

## 3. Recommended Studio Hardware Picks

When configuring local edge AI test benches in the studio, we rely on verified hardware:

- <a href="https://www.sparkfun.com/products/21227?ref=rOtrc44SZw" target="_blank" rel="sponsored noopener noreferrer">NVIDIA Jetson Orin Nano Developer Kit</a> — 68 GB/s LPDDR5 memory bus with 1024 CUDA cores.
- <a href="https://www.amazon.com/dp/B0GMWYYRQL?tag=engineersport-20" target="_blank" rel="sponsored noopener noreferrer">SanDisk 1TB Extreme Portable SSD</a> — 2000 MB/s USB-C transfer speeds for loading large GGUF model weights.
- <a href="https://www.amazon.com/dp/1098125975?tag=engineersport-20" target="_blank" rel="sponsored noopener noreferrer">Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow</a> — Essential reference for quantization and neural net optimization.

Try out our interactive [LLM VRAM & KV-Cache Footprint Calculator](/lab/llm-vram-kvcache-calculator) to test custom model configurations and hardware targets live in your browser.

---

## 4. Final Thoughts

Building on edge hardware forces a deep understanding of memory architectures that cloud developers rarely encounter. It’s a space where optimization directly translates to viability—and where every byte saved is a token earned. As newer quantizations arrive (like FP8 and INT4), the barrier to running powerful local AI will continue to lower, putting previously unimaginable capabilities into the palms of our hands.

## Questions this note answers

### Why is memory bandwidth more important than TFLOPS for local LLMs?

During autoregressive token generation, every weight parameter must be loaded from memory to cache once per output token. If your memory bandwidth is 68 GB/s, reading a 3.4 GB model weights file caps generation at 20 tokens/sec, regardless of whether your NPU has 10 TFLOPS or 100 TFLOPS.

### What is the best single-board computer for running local 3B/7B LLMs?

For ARM CUDA workloads, the NVIDIA Jetson Orin Nano Super (68 GB/s LPDDR5) is the top choice. For x86 compatibility, the DFRobot LattePanda 3 Delta provides full desktop OS support. For Apple Silicon, any M-series Mac with Unified Memory provides up to 400 GB/s bandwidth.
