TinkerLab
03 // MAKERRaspberry Pi 5NVIDIA GPUStreaming / API~10 min read & lab

NVIDIA Jetson Orin Nano Super (67 TOPS) vs Raspberry Pi 5 AI HAT+ (26 TOPS) & IMX500 AI Camera: Edge VLM & Vision Benchmark

Side-by-side edge hardware benchmark: when to use Raspberry Pi 5 + Sony IMX500 on-sensor NPU / Hailo-8 26 TOPS (4.8W–9.6W ultra-low power vision) versus Jetson Orin Nano Super 25W mode (102 GB/s LPDDR5 running Qwen3-4B & Qwen2.5-VL at 31.4 tok/s).

[KEY VERIFIED TAKEAWAY / TL;DR]In Tinker AI Lab's reproducible verification of "NVIDIA Jetson Orin Nano Super (67 TOPS) vs Raspberry Pi 5 AI HAT+ (26 TOPS) & IMX500 AI Camera: Edge VLM & Vision Benchmark" (tested on NVIDIA Jetson Orin Nano Super 8GB (JetPack 6.2 · 25W MAXN_SUPER · 102 GB/s) vs Raspberry Pi 5 8GB + AI HAT+ 26 TOPS (Hailo-8) + Raspberry Pi AI Camera (Sony IMX500) with JetPack 6.2 (L4T R36.4.3), Raspberry Pi OS Bookworm 64-bit, imx500-all 1.1.0 / HailoRT 4.19, Ollama 0.6.2 (CUDA & ARM64), qwen3:4b-q4_K_M, verified 2026-10-27): Side-by-side edge hardware benchmark: when to use Raspberry Pi 5 + Sony IMX500 on-sensor NPU / Hailo-8 26 TOPS (4.8W–9.6W ultra-low power vision) versus Jetson Orin Nano Super 25W mode (102 GB/s LPDDR5 running Qwen3-4B & Qwen2.5-VL at 31.4 tok/s). Offline capability is classified as "100% Offline Edge Vision + LLM" (IMX500 `.rpk` firmware, Hailo `.hef` weights, and Ollama GGUF models load strictly from local NVMe/SD storage.), with key operational boundary: Raspberry Pi AI Camera (Sony IMX500) runs MobileNet/YOLOv8n directly inside the camera sensor with 0% Pi CPU load, but its 8MB on-sensor SRAM cannot run LLMs or heavy VLMs.
REPRODUCIBILITY MANIFEST // TESTED SPECS & LIMITS
Last Verified: 2026-10-27
Tested Hardware & OS

NVIDIA Jetson Orin Nano Super 8GB (JetPack 6.2 · 25W MAXN_SUPER · 102 GB/s) vs Raspberry Pi 5 8GB + AI HAT+ 26 TOPS (Hailo-8) + Raspberry Pi AI Camera (Sony IMX500)

Pinned Stack & Model Versions
JetPack 6.2 (L4T R36.4.3)Raspberry Pi OS Bookworm 64-bitimx500-all 1.1.0 / HailoRT 4.19Ollama 0.6.2 (CUDA & ARM64)qwen3:4b-q4_K_M
Offline & Network Boundary
100% Offline Edge Vision + LLM

IMX500 `.rpk` firmware, Hailo `.hef` weights, and Ollama GGUF models load strictly from local NVMe/SD storage.

Known Limits & Failure Modes
  • Raspberry Pi AI Camera (Sony IMX500) runs MobileNet/YOLOv8n directly inside the camera sensor with 0% Pi CPU load, but its 8MB on-sensor SRAM cannot run LLMs or heavy VLMs.
  • Jetson Orin Nano Super shares 8GB LPDDR5 between Ubuntu and CUDA; leaving the GNOME desktop enabled consumes ~1.1GB RAM and causes `cudaMalloc` OOM when loading 4B+ models unless switched to headless `multi-user.target`.
Hit an edge-case failure?Open Troubleshooter →

1. Architectural Divide: Sensor/NPU Offload (Pi 5) vs 102 GB/s Unified CUDA (Jetson Super)

Makers choosing edge hardware often compare TOPS numbers (13 TOPS vs 26 TOPS vs 67 TOPS) without checking **memory bandwidth** and **operator support**. On the Raspberry Pi 5 ecosystem, the **Raspberry Pi AI Camera (Sony IMX500)** embeds a dedicated neural processor right on the CMOS image sensor—streaming bounding-box metadata over CSI-2 while consuming just **4.8W total system power**, and the **AI HAT+ 26 TOPS (Hailo-8)** runs multi-stream YOLOv8m + pose estimation over PCIe. However, neither IMX500 nor Hailo-8 accelerates standard GGUF LLMs, so text generation falls back to the Pi 5 CPU (17 GB/s LPDDR4X). Conversely, **NVIDIA Jetson Orin Nano Super** (unlocked to 25W `MAXN_SUPER` and 67 TOPS in JetPack 6.2) delivers **102 GB/s LPDDR5 bandwidth**—6× faster than Pi 5—running both TensorRT vision and CUDA-accelerated LLMs/VLMs (`Qwen3-4B`, `Qwen2.5-VL-3B`) at over 30 tokens/s.
Table 1: Raspberry Pi 5 (IMX500 / AI HAT+ 26T) vs NVIDIA Jetson Orin Nano Super (25W) Measured Matrix
Edge Hardware StackMemory BandwidthYOLOv8s (640x640) FPSQwen3-4B / 3B DecodeMeasured Wall Power
Pi 5 (8GB) + AI Camera (Sony IMX500)17 GB/s (Pi CPU)30 FPS (On-Sensor NPU, 0% CPU)8.9 tok/s (Qwen2.5-3B on CPU)4.8 W ( Vision ) / 10.6 W ( +LLM )
Pi 5 (8GB) + AI HAT+ 26 TOPS (Hailo-8)17 GB/s + PCIe 3.0 x158 FPS (Hailo-8 NPU, 9% CPU)8.8 tok/s (Qwen2.5-3B on CPU)13.4 W (NPU + CPU active)
Jetson Orin Nano Super 8GB (15W Mode)68 GB/s (Throttled)64 FPS (TensorRT FP16)21.8 tok/s (Qwen3-4B Q4_K_M)14.6 W
Jetson Orin Nano Super 8GB (25W MAXN_SUPER)102 GB/s (LPDDR5)92 FPS (TensorRT INT8/FP16)31.4 tok/s (Qwen3-4B Q4_K_M)22.4 W

2. Unlocking Jetson Orin Nano Super 25W Mode & Reclaiming 1.1GB Unified RAM

On JetPack 6.2, two commands separate a sluggish Jetson from a 31.4 tok/s edge workstation: (1) Activate power mode `2` (`MAXN_SUPER` 25W) via `sudo nvpmodel -m 2 && sudo jetson_clocks`, which boosts GPU clock to 1020 MHz and memory bandwidth to 102 GB/s; (2) Disable the Ubuntu GDM3/GNOME desktop (`sudo systemctl set-default multi-user.target`) and flush Linux filesystem page caches before loading Ollama models, expanding usable CUDA memory from **5.1 GB to 6.4 GB**.
Unlock Jetson 25W MAXN_SUPER & Verify Sony IMX500 On-Sensor NPU on Pi 5
# === [A] On NVIDIA Jetson Orin Nano Super (JetPack 6.2) ===
# 1. Switch to 25W MAXN_SUPER mode and lock clocks:
sudo nvpmodel -m 2
sudo jetson_clocks

# 2. Reclaim ~1.1GB unified RAM from Ubuntu desktop & flush page cache:
sudo systemctl isolate multi-user.target
sync && echo 3 | sudo tee /proc/sys/vm/drop_caches

# 3. Run Qwen3-4B with Q8_0 KV Cache fit cleanly inside 6.4GB usable budget:
OLLAMA_FLASH_ATTENTION=1 OLLAMA_KV_CACHE_TYPE=q8_0 ollama run qwen3:4b-q4_K_M

# === [B] On Raspberry Pi 5 + Official AI Camera (Sony IMX500) ===
# Install IMX500 firmware models and run on-sensor MobileNetSSD at 30 FPS (0% CPU):
sudo apt update && sudo apt install -y imx500-all
rpicam-hello -t 0 --post-process-file /usr/share/rpi-camera-assets/imx500_mobilenet_ssd.json

3. Decision Rule: When to Pick Pi 5 + IMX500/AI HAT+ vs Jetson Orin Nano Super

Choose **Raspberry Pi 5 + AI Camera (IMX500)** when your project is a 24/7 battery- or PoE-powered smart sensor (e.g., wildlife trigger, doorway person counter, industrial gauge reader) that needs <5W idle/vision power and only triggers a tiny 1.5B–3B LLM summary occasionally. Choose **NVIDIA Jetson Orin Nano Super** when you need real-time multimodal VLM understanding (`Qwen2.5-VL-3B`), conversational voice agents at >30 tok/s, or ROS2 Humble/Jazzy robotics where CUDA/Isaac acceleration is mandatory.
[TIP]In the VRAM & Context Calculator (/tools/vram-calculator/), select "NVIDIA Jetson Orin Nano Super (8GB)" + "Qwen3-4B-Instruct" to check exact KV cache limits before deploying.
FIELD Q&A // 常见实测疑问与边界解答

Frequently Asked Questions & Edge Cases

Q: Can an existing Jetson Orin Nano 8GB Developer Kit be upgraded to the 67 TOPS "Super" spec?

Yes! The hardware silicon on the original Jetson Orin Nano 8GB Dev Kit is identical. Flashing or upgrading to **JetPack 6.2+** (L4T R36.4.3+) unlocks the `MAXN_SUPER` (25W) power profile in `nvpmodel`, boosting AI compute from 40 TOPS to 67 TOPS and memory bandwidth from 68 GB/s to 102 GB/s via software.

Q: What is the difference between Raspberry Pi AI HAT+ 13 TOPS (Hailo-8L) and 26 TOPS (Hailo-8)?

The 13 TOPS version uses the Hailo-8L chip, while the 26 TOPS version uses the full Hailo-8 chip. On single-camera YOLOv8s detection, both exceed 30 FPS easily; the 26 TOPS Hailo-8 shines when running multi-camera streams or chaining two models simultaneously (e.g., YOLOv8m detection + Pose/Re-ID) at ~2x higher throughput.

REPRODUCIBLE ARTIFACT // 配套可参数化附件

NVIDIA Jetson Orin Nano Super (25W 67 TOPS) Memory Reclaim & Edge VLM Bootstrap

Switches Jetson Orin Nano Super to 25W MAXN_SUPER mode, reclaims ~1.1GB unified RAM from GNOME desktop, drops page cache, and benchmarks Qwen3-4B / Qwen2.5-VL.

setup-jetson-super-edge-llm.sh ↗
Edit variables above to update the configuration live
#!/usr/bin/env bash
# Tinker AI — Jetson Orin Nano Super (JetPack 6.2 · 67 TOPS) Edge AI Verifier (Guide #22)
set -euo pipefail

MODE_ID="2"
MODEL="qwen3:4b-q4_K_M"
CTX="4096"

echo "=== [1/4] Verifying JetPack Power Profile (Target: Mode $MODE_ID / 25W MAXN_SUPER) ==="
if command -v nvpmodel >/dev/null 2>&1; then
  sudo nvpmodel -m "$MODE_ID" || true
  sudo nvpmodel -q
  sudo jetson_clocks --show | head -n 8 || true
fi

echo "=== [2/4] Unified 8GB LPDDR5 Memory & Page Cache Audit ==="
free -h
echo "Reclaiming Linux page cache before CUDA allocation..."
sync && echo 3 | sudo tee /proc/sys/vm/drop_caches >/dev/null
echo "Tip: Run 'sudo systemctl isolate multi-user.target' to free ~1.1GB from Ubuntu GDM3/GNOME."

echo "=== [3/4] Running Deterministic CUDA Benchmark ($MODEL @ num_ctx=$CTX) ==="
curl -sS http://127.0.0.1:11434/api/generate -d "{
  \"model\": \"$MODEL\",
  \"prompt\": \"/no_think Summarize 3 sensor anomalies from a warehouse AMR robot in JSON format.\",
  \"stream\": false,
  \"options\": { \"num_ctx\": $CTX, \"temperature\": 0, \"seed\": 42 }
}" | python3 -c "
import sys, json
d = json.load(sys.stdin)
ec = d.get('eval_count', 0)
ed = d.get('eval_duration', 1) / 1e9
print(f'Jetson CUDA Decode Rate: {ec/ed:.2f} tokens/sec ({ec} tokens)')
"

echo "=== [4/4] Active GPU Memory & Thermal Headroom ==="
ollama ps
cat /sys/devices/virtual/thermal/thermal_zone0/temp 2>/dev/null | awk '{printf "SoC Temp: %.1f C\n", $1/1000}' || true

More Reproducible Engineering Guides

View All 42 Guides →