Skip to main content

I Tested My Local LLM Calculator on Four Machines. It Was Wrong Twice.

I ran three models on an RTX 2060 Super, a Mac mini M4, an Intel NUC and an old Xeon to check my LLM calculator. Real tokens per second, and the two things it got wrong.

I built a calculator that says whether a model will run on your hardware. Then I ran the same three models on four of my own machines to see if it was telling the truth.

🎯 Not sure if this will run on your hardware?Use our free Local LLM Hardware Checker — pick your GPU and RAM, see which models will run with real tokens/sec estimates.
Check my hardware →

The short answer

For graphics cards and Macs the speed estimates held up: all six measurements landed inside the range the calculator gave. For memory it was badly wrong on newer models, claiming one needed 20.5 GB when it runs on an 8 GB card, and it was too optimistic about processors. Both are fixed, and the real numbers are below.

6 of 6graphics-card and Mac speed results inside the predicted range, before any correction
20.5 → 8.1 GBthe memory estimate for one model, before and after the fix
83.7 tok/sthe fastest result: a 4B model on a 2019 RTX 2060 Super

Where this comes from

Measured on 12 October 2026 on four machines I own, using the same model files, the same prompt and the same settings on each. The calculator is Will It Run? on this site. Addresses and paths are removed. Where something was not measured properly, it says so.

Why test my own tool

A calculator like this is only useful if you can trust it, and I had built it from formulas, not from measurements. The memory figure came from the model’s dimensions. The speed figure came from how fast each machine can read memory. Neither had been checked against a real run.

Test setup

Desktop
Core i9-10900K with an NVIDIA RTX 2060 Super, 8 GB. Docker Desktop on Windows 11
Mac
Mac mini, Apple M4, 16 GB. Official llama.cpp build for Mac, run directly
Mini PC
Intel NUC8i7BEH, Core i7-8559U, 16 GB dual-channel DDR4, no graphics card used. Docker on Ubuntu
Old workstation
HP Z620, Xeon E5-2665, 32 GB four-channel DDR3, processor only. Docker in the Linux subsystem on Windows 11
Models
Qwen3.5-4B, Qwen3.5-9B and gemma-4-12b-it, all at Q4_K_M
Settings
llama.cpp server, 8,192-token context, 256 tokens generated at temperature 0, three runs after a warm-up
Advertisement

Method

Each machine ran the same three files. For each model I started llama.cpp’s server, sent one short request to load everything, then asked for 256 tokens three times from a fixed prompt and took the middle result. The three runs agreed to within about 1% everywhere.

On the desktop every layer was placed on the graphics card. On the Mac the model ran on Apple’s graphics. The NUC and the old workstation ran on their processors alone.

Measured speed

Qwen3.5-9B at Q4_K_M

tokens per second, higher is better
Old workstation, Xeon E5-26654.2
Mini PC, Core i7-8559U3.1
Mac mini, M417.7
RTX 2060 Super54.4

Blue bars use a graphics chip. Grey bars are processors only.

Machine Qwen3.5-4B Qwen3.5-9B gemma-4-12b-it
RTX 2060 Super 83.7 54.4 27.7
Mac mini, M4 29.7 17.7 13.1
Mini PC, Core i7-8559U 5.6 3.1 2.3
Old workstation, Xeon E5-2665 6.8 4.2 2.6

Tokens per second. As a rough guide, reading speed is about 5 tokens a second, so anything on the two graphics rows feels instant and the processor rows are usable for short answers.

One result needs a note. The gemma model is 7.1 GB and the card has 8 GB. Forced entirely onto the card it ran at 27.7 tokens a second with the card’s memory full. When I let llama.cpp decide how much to place on the card, it kept some layers in system memory and ran at 11.3.

Where the calculator was right

Before I changed anything, the calculator’s speed ranges for the graphics card and the Mac contained every measurement:

Machine and model Predicted Measured
RTX 2060 Super, Qwen3.5-4B 74 to 123 83.7
RTX 2060 Super, Qwen3.5-9B 35 to 59 54.4
Mac mini M4, Qwen3.5-4B 23 to 38 29.7
Mac mini M4, Qwen3.5-9B 11 to 19 17.7

The idea behind the estimate is simple: generating a token means reading the model’s weights once, so speed is limited by how fast the machine can read memory. Divide memory bandwidth by the file size, apply an efficiency factor, and you are close.

Where it was wrong

A
It thought one model needed 20.5 GB. It runs on an 8 GB card.

The formula assumed every layer remembers the whole conversation. Newer models do not. Gemma 4 keeps only a 1,024-token window in most of its 48 layers. Qwen 3.5 only looks back over the conversation in every fourth layer. The calculator now reads those settings from each model file. For gemma-4-12b the estimate went from 20.5 GB to 8.1 GB.

B
It was reading the wrong file for eight models.

Some repositories ship a small helper model next to the main one. The calculator was measuring the helper, so eight Gemma models showed 4 layers when they have 48.

C
It was too optimistic about processors.

I had assumed a processor reaches 60% of its memory bandwidth. Both of mine reached about 40%. The mini PC measured 5.6 tokens a second on the small model where the calculator had promised 7 to 12.

D
It did not know my old workstation’s memory.

A Xeon E5 has four memory channels, which makes it faster at this than its age suggests. The calculator had only a generic “older PC” row, which undersold it. The 2012 Xeon beat the 2018 mini PC on every model.

Memory: predicted against seen

Measured on the graphics card, where the reading is exact.

Model Old estimate New estimate Card memory in use
Qwen3.5-4B 4.3 GB 3.5 GB 3.3 GB
Qwen3.5-9B 7.3 GB 6.4 GB 5.5 GB
gemma-4-12b-it 20.5 GB 8.1 GB 6.4 GB, card full, the rest in system memory

The new estimates still run a little high. I would rather the calculator say “tight” when it fits than “fits” when it does not.

After the corrections

With the memory formula fixed and the processor factor lowered, the live calculator’s ranges contain 12 of the 13 measurements. The one miss is the Xeon on the 9B model: 4.15 measured against a range that tops out at 4.0.

Read this before trusting the "12 of 13"
  • The processor factor was tuned on these same runs. So the processor results agreeing afterwards is a fit, not an independent test. The graphics-card and Mac results are the genuine check, because I did not adjust those.
  • Four machines is not many. I have no AMD card result, no current-generation NVIDIA card and no high-memory Mac.
  • Three models, one quantization. Larger models and other quantizations may behave differently.
  • Two machines ran under Windows with a Linux layer on top, which may cost a little speed.
  • Memory on the Mac is missing. My reading there was not reliable, so I left it out.

What changed in the calculator

  • Context memory is now worked out layer by layer from each model’s own settings.
  • Helper files in a repository are ignored.
  • The processor speed factor went from 0.6 to 0.4.
  • Two machines were added to the list: the RTX 2060 Super, and four-channel DDR3 workstations.
  • The page now says it was checked against real runs, and on which machines.

You can try it at Will It Run?. The model list updates every day.

Reproduce it

On a machine with Docker and an NVIDIA card:

docker run -d --gpus all -p 8080:8080 -v /path/to/models:/models:ro \
  ghcr.io/ggml-org/llama.cpp:server-cuda \
  -m /models/your-model.gguf -c 8192 -ngl 99 --parallel 1

Use the server tag without -cuda and -ngl 0 for a processor-only run. Then ask for a completion and read the speed from the reply:

curl -s http://localhost:8080/completion \
  -d '{"prompt":"Explain what a network switch does.","n_predict":256,"temperature":0}' \
  | python3 -c "import sys,json; print(json.load(sys.stdin)['timings']['predicted_per_second'])"

Send one request first to warm up, then take the middle of three.

Takeaway

A formula got the graphics-card speeds right and the memory badly wrong, and I only found out by running the thing. If you publish a tool that makes predictions, measure it against something real, and say what you found.

Your turn

How close was the calculator for your machine?

Try it with a model you already run and compare. If it is off, tell me your hardware and your real speed and I will add it.

Follow the conversation on XEach answer opens a post on X that you can edit before sending.

Keep reading

AI assisted with running the measurements, fixing the calculator and drafting this article. The machines and every figure are from my own setup.

Share this article
Written by Engineer running a 24/7 homelab since 2022. Every guide here is built and tested on my own hardware. No paid placements.

Keep reading