ggufit
Check whether a local LLM can run on your machine, CPU-only — from PowerShell or any terminal.
Uses real formulas (model memory footprint, KV cache size, and a measured memory-bandwidth micro-benchmark) rather than guesses, to estimate whether a model fits in RAM and roughly how fast it'll generate tokens. Correctly handles MoE models (speed driven by active experts, not total params) and SSM/MLA architectures (Mamba, DeepSeek's MLA) that don't use standard multi-head attention.
Install
# Recommended - works everywhere, gives you a global `ggufit` command
pipx install ggufit
# Or plain pip (Windows PowerShell, or inside a venv on Linux/macOS)
pip install ggufit
Installing from source (for development)
git clone <this repo> # or unzip the source
cd ggufit/ # the folder containing pyproject.toml
pipx install -e . # editable install - code changes apply without reinstalling
# or: pip install -e . (inside a venv, or with --break-system-packages)
Usage
# Full hardware scan: shows your CPU/RAM/bandwidth and which models fit
ggufit scan
# Check one specific model
ggufit llama3.1
ggufit mistral
ggufit qwen2.5-14b
# Force a specific quantization level
ggufit llama3.1 --quant q4
# Evaluate at a longer context length
ggufit qwen2.5-32b --context 16384
How it works
For each model:
- Model size (RAM) = total params × bytes-per-parameter (varies by quant: FP16, Q8, Q6, Q5, Q4, Q3, Q2)
- KV cache =
2 × layers × hidden_size × context_len × bytes_per_param × kv_cache_multiplierkv_cache_multiplierdefaults to 1.0 (standard MHA), and is set lower for architectures that don't use full attention at every layer:0.0for pure SSM/Mamba (no attention at all),~0.15for MLA (DeepSeek-V2/V3/R1, MiniCPM3),~0.125for hybrid Mamba+attention (Jamba).
- Total RAM needed =
(model size + KV cache) × 1.2overhead factor - Speed estimate =
measured_memory_bandwidth / active_size, whereactive_sizeis the total model size for dense models, or just the active experts' size for MoE models (active_params_billion) — since only those weights are streamed from RAM per token.
ggufit runs a quick real memory-bandwidth benchmark (a large array copy) instead of guessing
from RAM specs, since achievable bandwidth depends heavily on channel configuration.
Adding models
Edit ggufit/models_db.py and add an entry to the MODELS dict with params_billion,
layers, and hidden_size (found in the model's Hugging Face config.json). Optional:
moe: True+active_params_billion: Xfor Mixture-of-Experts modelskv_cache_multiplier: Xfor non-standard attention architectures (see above)
Known limitations
- Speed estimates assume batch size 1, single-user chat.
- The bandwidth benchmark is single-threaded; real inference engines use multiple threads.
- Quant byte-per-param values are approximations of real GGUF file sizes.
- KV cache still assumes full hidden_size for standard (non-flagged) models even though most modern ones use GQA with fewer KV heads than query heads — this is intentionally conservative (over-estimates KV, doesn't affect the dominant "does it load" answer).
kv_cache_multipliervalues for MLA/hybrid architectures are approximate, not per-model-measured.
Notes
This is a side-project CLI. The full hardware-scan desktop app (Rust/Tauri) is a separate, more thorough tool still in development.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ggufit-0.1.1.tar.gz.
File metadata
- Download URL: ggufit-0.1.1.tar.gz
- Upload date:
- Size: 19.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.2.0 CPython/3.11.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e939b4e7b9211a587fea7162bd7741637e57ccefd8a3ffdfd9b7e4ed0c7bd27f
|
|
| MD5 |
ca60d4ba2a656e713f798886e6bffd79
|
|
| BLAKE2b-256 |
5330c0ec132719435df424eea9e8eedd0bc47ff720eb54669a30cacedbe27688
|
File details
Details for the file ggufit-0.1.1-py3-none-any.whl.
File metadata
- Download URL: ggufit-0.1.1-py3-none-any.whl
- Upload date:
- Size: 19.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.2.0 CPython/3.11.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
daa34d410aa3ea97aad8053f8bfd1b211e1b7007d66eaff3b241bb58947170cd
|
|
| MD5 |
dba0d15aff0c8eb79d5b3bdf7f553c29
|
|
| BLAKE2b-256 |
6385ddc5ce8ea8e851ec63e8044962fe60be2248423b83611c0a40a7b0a15561
|