128GB vs 192GB Unified-Memory AI PCs (Fall 2026): NVIDIA RTX Spark (N1X · Windows on ARM) vs AMD Ryzen AI Max+ PRO 495 (Gorgon Halo) — Model Fit, Decode Ceilings & a Reproduction Protocol
RTX Spark laptops/mini desktops (shipping since mid-October 2026) and Ryzen AI Max+ 400 "Gorgon Halo" mini PCs both promise "run 100B+ models locally". The real difference is not TOPS: it is ~300 GB/s vs ~273 GB/s memory bandwidth (decode speed), CUDA Tensor Cores vs RDNA 3.5 (prefill speed), and 128GB vs 160GB GPU-addressable memory (whether Qwen3-235B-A22B Q4 fits at all). This guide derives decode ceilings from published specs, marks every number as an estimate, and ships a script so you can replace our estimates with your own measurements.
Spec basis (not lab-measured): NVIDIA RTX Spark N1X top bin (20-core Grace ARM CPU + Blackwell GPU 6,144 CUDA cores · up to 128GB LPDDR5X 256-bit · ~300 GB/s reported) vs AMD Ryzen AI Max+ PRO 495 (16C Zen 5 + Radeon 8065S 40CU RDNA 3.5 gfx1151 · up to 192GB LPDDR5X-8533 256-bit · ~273 GB/s · up to 160GB GPU-allocatable)
Both platforms run llama.cpp/vLLM entirely on local unified memory. Windows Copilot / OEM AI assistants preinstalled on RTX Spark devices are cloud-hybrid by default and are out of scope here.
- Evidence level: SPEC-DERIVED ESTIMATE. Tinker has not yet run these two machines in-house; every tok/s number below is computed as bandwidth × 0.68 ÷ active-weight bytes (the same formula as our VRAM calculator). Run the attached script and treat your own numbers as authoritative.
- NVIDIA has not published an official memory-bandwidth figure for RTX Spark; ~300 GB/s comes from press reports of a 256-bit LPDDR5X-9400/9600 interface. Lower-RAM SKUs (24GB/32GB) may ship with a narrower bus — check your exact model.
- On Gorgon Halo, the 160GB GPU allocation is a BIOS/driver setting (Windows: AMD Variable Graphics Memory; Linux: amdgpu GTT/TTM limits). Out-of-the-box defaults are usually far lower.
- Windows on ARM: Python/PyTorch wheels must be native ARM64. An x64 Python interpreter running under Prism emulation silently falls back to CPU-only inference.
1. What Actually Changed This Fall: Two 256-bit Unified-Memory Platforms, Two Very Different Software Stacks
| Item | NVIDIA RTX Spark (N1X top bin) | AMD Ryzen AI Max+ PRO 495 | Why it matters |
|---|---|---|---|
| Max memory / GPU-addressable | 128GB / ~110GB practical (est.) | 192GB / up to 160GB (configured) | Decides which models fit without CPU offload |
| Memory bandwidth | ~300 GB/s (reported, unofficial) | ~273 GB/s (LPDDR5X-8533 × 256-bit) | Caps decode tok/s on dense & large-active models |
| GPU matrix hardware | Blackwell 5th-gen Tensor Cores (FP4/NVFP4) | RDNA 3.5 WMMA (no dedicated matrix cores) | Prefill / long-prompt speed; batch throughput |
| OS / runtime path | Windows 11 ARM64 (CUDA, TensorRT-LLM, llama.cpp, vLLM port) or WSL2 | Windows x64 (Vulkan / Lemonade) or Linux (ROCm, Vulkan RADV) | x64-only tools need emulation on RTX Spark |
| Power envelope | 45–80W laptop · up to ~140W desktop | 45–120W cTDP (55W nominal) | Sustained decode in thin laptops drops when throttled |
2. Model Fit & Decode Ceilings (Estimated, Not Measured)
| Model (GGUF) | File size / active per token | RTX Spark 128GB (~300 GB/s) | Max+ PRO 495 192GB (~273 GB/s) |
|---|---|---|---|
| Qwen3-30B-A3B Q4_K_M | ~18.6 GB / ~2.0 GB | fits · ceiling ~150 · expected ~100 tok/s | fits · ceiling ~136 · expected ~93 tok/s |
| Qwen3-32B (dense) Q4_K_M | ~19.8 GB / ~19.8 GB | fits · ceiling ~15 · expected ~10 tok/s | fits · ceiling ~14 · expected ~9 tok/s |
| Llama-3.3-70B (dense) Q4_K_M | ~42.5 GB / ~42.5 GB | fits · ceiling ~7 · expected ~4.8 tok/s | fits · ceiling ~6.4 · expected ~4.4 tok/s |
| Qwen3-Next-80B-A3B Q4_K_M | ~48 GB / ~1.8 GB | fits · ceiling ~165 · expected ~110 tok/s* | fits · ceiling ~150 · expected ~100 tok/s* |
| Qwen3-235B-A22B Q4_K_M | ~142 GB / ~13.2 GB | **does not fit** (use Q2_K ~86 GB: expected ~25 tok/s, lower quality) | fits with 160GB carve-out · ceiling ~21 · expected ~14 tok/s |
3. Reproduction Protocol: Measure Instead of Trusting Anyone's Table (Including Ours)
# 0) Same model file on both machines — verify the hash first
sha256sum Qwen3-30B-A3B-Q4_K_M.gguf
# 1a) RTX Spark (Windows 11 ARM64, PowerShell): confirm native ARM64 + CUDA
# python -c "import platform; print(platform.machine())" # must print ARM64
# nvidia-smi --query-gpu=name,memory.total --format=csv
# 1b) Gorgon Halo (Linux): confirm GPU-addressable memory after raising GTT/TTM limits
cat /sys/class/drm/card*/device/mem_info_gtt_total | awk '{printf "GTT: %.1f GB\n", $1/1024/1024/1024}'
# 2) Throughput: prompt 2048 / generate 128, 3 repetitions, flash attention on
./llama-bench -m Qwen3-30B-A3B-Q4_K_M.gguf -ngl 99 -fa 1 -p 2048 -n 128 -r 3 -o md
# 3) Sustained decode (10 min) — exposes laptop thermal throttling
timeout 600 ./llama-cli -m Qwen3-30B-A3B-Q4_K_M.gguf -ngl 99 -fa \
-n -1 --ignore-eos -p "Write a long technical report about memory bandwidth." \
2>&1 | tail -n 5Frequently Asked Questions & Edge Cases
Q: If I mainly run ~30B MoE coding models, which one should I buy?
For 30B-A3B-class MoE models the two are within ~10% on decode (bandwidth-bound), so the decision is about everything else: RTX Spark if you want CUDA tooling, faster prefill on long code contexts, and a thin laptop; Gorgon Halo if you need x64 Windows/Linux compatibility or plan to grow into 200B+ MoE models that need more than 128GB.
Q: Is the 192GB Gorgon Halo just a 128GB Strix Halo with more RAM?
Mostly yes for LLM inference: same 40CU RDNA 3.5 GPU class and gfx1151 target, ~6.6% more bandwidth (8533 vs 8000 MT/s). If your target models already fit in 96–110GB, an existing Max+ 395 box gives nearly the same tok/s. The upgrade only pays off when you need the extra ~50–60GB of GPU-addressable memory.
Q: Why do you publish estimates instead of benchmarks for this guide?
Because we have not run these two machines in-house yet, and we would rather label a number as an estimate than invent a "measured" figure. The guide is marked SPEC-ESTIMATE in its manifest; when we get hardware time, we will replace Table 2 with measured results and update the verified date.
RTX Spark / Gorgon Halo Unified-Memory Fixed Benchmark (llama-bench + sustained decode)
Verifies model SHA256, reports platform (ARM64/CUDA or gfx1151 GTT size), runs llama-bench pp2048/tg128 ×3 and a sustained decode run, and writes a Markdown result file so you can replace the guide estimates with measured numbers. Run under Linux, WSL2, or Git Bash on Windows.
#!/usr/bin/env bash
# Tinker AI — Unified-Memory AI PC Fixed Benchmark: RTX Spark (N1X) / Ryzen AI Max+ PRO 495 (Guide #37)
set -euo pipefail
MODEL="./models/Qwen3-30B-A3B-Q4_K_M.gguf"
BIN="./build/bin"
SUSTAIN="600"
OUT="bench-$(hostname)-$(date +%Y%m%d-%H%M).md"
echo "=== [1/4] Model integrity ==="
sha256sum "$MODEL" | tee -a "$OUT"
echo "=== [2/4] Platform snapshot ==="
{
echo "- arch: $(uname -m)"
if command -v nvidia-smi >/dev/null 2>&1; then
echo "- gpu: $(nvidia-smi --query-gpu=name,memory.total,driver_version --format=csv,noheader)"
fi
for f in /sys/class/drm/card*/device/mem_info_gtt_total; do
[ -r "$f" ] && echo "- amdgpu GTT total: $(awk '{printf "%.1f GB", $1/1024/1024/1024}' "$f")"
done
} | tee -a "$OUT"
echo "=== [3/4] llama-bench pp2048 / tg128 x3 (flash attention on) ==="
"$BIN/llama-bench" -m "$MODEL" -ngl 99 -fa 1 -p 2048 -n 128 -r 3 -o md | tee -a "$OUT"
echo "=== [4/4] Sustained decode for $SUSTAIN s (thermal check) ==="
timeout "$SUSTAIN" "$BIN/llama-cli" -m "$MODEL" -ngl 99 -fa -n -1 --ignore-eos \
-p "Write a long technical report about memory bandwidth and local LLM inference." \
2>&1 | grep -E "eval time|tokens per second" | tail -n 3 | tee -a "$OUT" || true
echo "Results written to $OUT — compare against Table 2 estimates in the guide."