FreeSoft Labs All articles
Lab Benchmarks

Five Local AI Runners, One $250 Mini PC: What Actually Survived Our Benchmarks

FreeSoft Labs
Five Local AI Runners, One $250 Mini PC: What Actually Survived Our Benchmarks

There is a very specific kind of optimism that makes a person buy a $250 mini PC and think, sure, I'll run a 7B model on this. We had that optimism. We also had a stopwatch, a power meter, and four free evenings.

Here is what happened when five open-source local LLM runners fought over 16GB of single-channel DDR4.

The guinea pig

Our test box is the kind of machine you can buy on sale at Micro Center or Amazon without thinking too hard: an Intel N100 quad-core (all efficiency cores, no hyperthreading), 16GB of DDR4-3200 in a single channel, and a 512GB NVMe drive. We paid $239 in October 2026. Ubuntu 24.04 LTS, no swap file, nothing else running.

That last part matters more than any benchmark table. Keep reading.

How the test worked

We are not claiming these are universal numbers. They are one box, one week, one kernel. Your mileage will wobble by 10 to 20 percent.

The results

Runner 7B tok/s 3B tok/s First token, 7B Peak RAM, 7B Install time Idle RAM
llama.cpp (built from source) 4.2 8.7 0.8 s 5.4 GB ~35 min 120 MB
Ollama 4.0 8.2 0.6 s 5.6 GB 4 min ~450 MB
GPT4All 3.6 7.5 1.9 s 5.3 GB 5 min ~600 MB
LocalAI 3.3 6.6 2.2 s 6.1 GB 25 min ~700 MB
Jan 2.9 7.0 2.6 s 6.4 GB 6 min ~900 MB

Sorted by raw speed, since that is what everyone scrolls to first. Now the parts that actually decide whether you keep the thing installed.

Everything here is memory-bandwidth-bound

The gap between fastest and slowest on the 7B is about 30 percent, and none of it comes from clever math. On a chip like the N100, generation speed is essentially a function of how fast you can stream 4.7GB of weights through a single channel of DDR4. Every runner is stuck behind the same wall.

That means the ranking you see is mostly overhead, not intelligence. llama.cpp wins because it does almost nothing except the inference. Jan loses a slice because Electron is sitting on top of the same engine.

A quick note on the integrated GPU: forcing Vulkan offload on the N100's 16-EU iGPU gave us a modest 8 to 14 percent bump in llama.cpp. Real, but not the difference between usable and unusable.

Setup experience, honestly rated

Ollama is the one we would hand to a friend. One curl command, then ollama run qwen2.5:7b, and you are chatting. Model pulls are resumable. The API is OpenAI-compatible. Four minutes from bare Ubuntu to first token.

llama.cpp is the control freak's choice. We compiled it, which took the better part of 35 minutes on four E-cores, and then spent another hour reading flags. In exchange you get total control over quantization, context size, batching, and memory mapping. If you want to understand what is happening, this is the tool that teaches you.

GPT4All is the friendliest for someone who has never opened a terminal. Double-click, pick a model from a built-in list, go. Its API story is thinner, so it is a chat tool more than a building block.

Jan looks the best and feels the heaviest. Its local OpenAI-compatible server is genuinely handy, but around 900MB of idle RAM on a 16GB box is not a rounding error.

LocalAI is the one to pick if you are running a small home server for a handful of apps. Docker Compose up, point clients at it, done. It is also the slowest path on this hardware and the fussiest to configure.

RAM efficiency is the number nobody prints on the box

Here is the finding that reframed the whole test for us. Running a 7B model alone, all five runners sat between 5.3 and 6.4GB of RAM. Comfortable on 16GB.

Then we opened a browser with a dozen tabs and a Slack clone. Peak usage crossed 15GB, the kernel started swapping, and generation collapsed to roughly 1.2 tokens per second on every single runner. The tool you choose does not save you from that. Only more RAM does.

If you are shopping, this is the argument for 32GB and dual-channel memory. Not because the models are bigger, but because you are a human being who does other things.

Would we actually buy one?

For learning and tinkering: yes. Two hundred and forty dollars for a silent, 6-watt box that runs a competent 7B at reading speed is a legitimate bargain. Quantized 3B models at 7 to 8 tokens per second feel genuinely conversational.

As a daily driver for 7B and up: no. Four tokens per second is roughly the pace of a patient typist. If you are doing this every day, put the money into a dual-channel DDR5 mini PC in the $380 to $450 range, or hunt a used desktop with an RTX 3060 12GB — the latter will hand you 25 tokens per second or better on the same model for around $200 to $250 used.

Refurb business micro PCs (the i5-9500T OptiPlex crowd) were our other candidate. We tested one. It is not faster than the N100 on inference and it draws more power. Skip the nostalgia.

What we would install

None of these will replace a frontier model for hard reasoning. That is not the point. The point is that for $239 and an evening, you can have a private, offline, no-subscription assistant that never sends your notes to a data center. On a budget, that is a genuinely good deal.

All Articles

Related Articles

The 'Free' Backup Stack Isn't Free: A Three-Scenario Cost Audit for Small IT Shops

The 'Free' Backup Stack Isn't Free: A Three-Scenario Cost Audit for Small IT Shops