Method and sources
How FitLocally decides whether a model fits and how fast it runs, and where every number comes from.
Does it fit?
Memory needed = weights + 10% + 1 GB. The 10% covers the KV cache for about 8,000 tokens of context and the 1 GB covers runtime buffers; long contexts need more. A model fits when that total is no larger than the memory a model can use on the machine:
- Graphics cards: video memory minus about 1 GB for the driver and display. Two-card PCs: both cards' memory minus 2 GB.
- Apple Silicon: the default macOS GPU limit, about two thirds of memory up to 36 GB and three quarters above. It can be raised with
sysctl iogpu.wired_limit_mb. - DGX Spark and other GB10 systems: 121.6 GB of the 128 GB is addressable.
- AMD Ryzen AI Max+ 395: the 75% GPU allocation most firmware allows.
The same rule applies to every machine. Memory figures are in binary gigabytes, as operating systems report them.
How the pick is chosen
The pick is the largest model that runs at 4-bit or better and at least 10 tokens per second, drawn from a shortlist of current models: the models GPUwerk documents, plus the models ModelFit scores on the Epoch Capabilities Index. If nothing on the shortlist qualifies, the pick is the largest qualifying model in the whole catalog. Whether GPUwerk rents a machine plays no part.
How fast?
Generating one token reads every active weight once, so decode speed is capped at memory bandwidth ÷ bytes read per token. Our estimate is 0.55 × that ceiling. For mixture-of-experts models, only the active parameters count. Where ModelFit publishes an estimate for the machine, we show theirs instead: it comes from a model fitted on 4,831 published runs, with a typical error near 11% (their figure). Every speed on this site is labelled with its source. Numbers marked measured or reported come from the GPUwerk guide linked beside them, and for the DGX Spark they take precedence over estimates where they exist.
Machines and bandwidth
Machines are listed by type, producer, model and variant. Machines that share one chip and memory size, such as every GB10 system, share one set of results. Bandwidth comes from vendor specifications; where a vendor has not published it, or we have not verified it (Apple M5 Pro, M5 Max, M5 Ultra and M6), it is left blank and speeds come from ModelFit's estimates only.
Quantization
We prefer the highest-precision build that fits. 4-bit (Q4_K_M, MXFP4, IQ4_XS) and above count as a good fit; 3-bit fits are listed separately because quality drops noticeably.
| Build | Approx. bits per weight |
|---|---|
| FP16 | 16 |
| BF16 | 16 |
| Q8_0 | 8.5 |
| Q6_K | 6.6 |
| Q5_K_M | 5.7 |
| Q4_K_XL | 5.0 |
| Q4_K_M | 4.85 |
| Q4_K_S | 4.6 |
| MXFP4 | 4.25 |
| IQ4_XS | 4.25 |
| NVFP4 | 4.5 |
| Q3_K_XL | 4.0 |
| Q3_K_M | 3.9 |
| Q2_K | 3.0 |
Sources
- ModelFit Local LLM Hardware Compatibility Dataset and speed estimates, CC BY 4.0, data updated 2 November 2026: model catalog, loaded memory, minimum RAM, Ollama commands, the hardware list and speeds for the hardware it covers. We changed the format, grouped quantization variants per model and added our own fields. ModelFit's estimates are not measurements, and ModelFit does not endorse this site or GPUwerk.
- Hugging Face model API: parameter counts, checked against each model card. NVFP4 repositories store two weights per byte, so their API count is not compared.
- GPUwerk documentation: DGX Spark speeds and setup notes, each linked to its original source.
- Vendor specifications for memory size and bandwidth.
Data fetched 2 November 2026. The combined dataset is at /data/catalog.json under CC BY 4.0, with the same attribution to ModelFit.