llamaperf

Local model performance on your hardware

Find which open-weight LLMs fit in your GPU or Mac and compare the speeds people report on setups like yours.

What runs on your hardware?

Pick your GPU or Mac, then read the speeds people reported on it, or estimate which models fit and how fast they run.

Free to use. No account needed. Memory estimates and community measurements are labelled separately.

Looking for a particular model?

Search for a model to see its reported speeds across GPUs and Macs.

Local model performance reports from the community

These are individual setups, not a controlled benchmark. Compare GPU count, quantization, context and offloading before comparing speeds. How to read a report →

Model: SmolLM3
Compare setup details

Exact recorded values. Context may be a configured limit; matching filters does not establish identical prompts, offloading or concurrency.

Apple hardware
generation:
119.7 tokens/s
prompt processing (prefill):
2237.2 tokens/s
quant:
Q8_0 (GGUF)
kv:
F16
flash attention:
on
mtp (multi-token prediction):
off

Reported by the source; GPU count, offloading and concurrent requests can change these figures. Prompt-processing speed is input throughput, not time to first token. Check the full setup before comparing.

Historical public-source recovery from Qiu et al., arXiv:2609.14864v1, submitted 2026-09-14. Source: https://arxiv.org/html/2609.14864v1 . Measured columns from Supplement sections 4 and 5 are used; prediction columns B2/P1/P2 are excluded. This is not an independently executed benchmark. Hardware: Mac Studio M4 Max, 128 GB unified system memory, Darwin-arm64, BLAS/MTL. Source specifies 12 performance-core threads, not total physical CPU cores. GPU core count, full CPU core count, macOS version, clocks, power and temperature are unreported. RAM is not dedicated VRAM or measured residency. Model M23: SmolLM3-3B, Q8_0, GGUF. Exact source repository/file: ggml-org/SmolLM3-3B-GGUF/SmolLM3-Q8_0.gguf; 3,275,574,624 bytes. The paper's coarser metadata quant label is Q8_0; the full filename's dynamic UD-/XL identity is preserved when present. Verified current reference: https://huggingface.co/ggml-org/SmolLM3-3B-GGUF/blob/4965cb60b150737b68a0408c36aeefb65078f894/SmolLM3-Q8_0.gguf . Pinned reference revision 4965cb60b150737b68a0408c36aeefb65078f894; LFS SHA256 8aa8cc74656137174a1988d993b00828e65a86fd68773412b632a75aa1373248. Current filename and byte count match the paper. The paper says the Studio files were SHA-verified, but it does not expose the historical per-file hash/revision in its tables; it names companion provenance files whose repository is not linked. Thus this current hash is reference metadata, not asserted as the measured historical bytes. Publisher model card identifies base/reference HuggingFaceTB/SmolLM3-3B; https://huggingface.co/ggml-org/SmolLM3-3B-GGUF/raw/4965cb60b150737b68a0408c36aeefb65078f894/README.md . No model weights were downloaded. Runtime: source identifies the official llama.cpp b10794 archive for this Studio; upstream tag resolves to f9f09f02cc44d87d842dbd2d578857d92d4bb63b. The source does not publish the archive hash itself in its displayed table. The MacBook's unrecovered runtime revision and RTX directory label are different hosts and are not transferred here. Headline is depth 0: PP512 2237.19 and TG128 119.69 tokens/s. All three same-model depth conditions: Prefix depth 0: native PP512 2237.19 tokens/s (within-run CV 0.31%); native TG128 119.69 tokens/s (CV 0.25%). Prefix depth 4096: native PP512 1740.63 tokens/s (within-run CV 0.23%); native TG128 110.40 tokens/s (CV 0.08%). Prefix depth 16384: native PP512 1040.47 tokens/s (within-run CV 0.13%); native TG128 89.60 tokens/s (CV 2.06%). These are separate 512-token prefill and 128-token generation microbenchmarks, not an end-to-end 512-input/128-output conversation. Existing prefix depth is not configured serving context capacity. The depth-0 generation result does not follow the PP512 prompt. No TTFT was measured or reconstructed. The table's rates are rounded to two decimals; per-repetition raw timings are unavailable in the paper. Protocol: single sequence; fresh process for each configuration; five repetitions; 45-second settling; requested GPU layers 99; flash attention; F16 K/V. The chosen rows have 1 acquisition attempt per depth and pre-run macOS one-minute load average 5.97; this is not GPU utilization. Selection prefers complete protocol rows, then lower worst decode CV and lower pre-run load, without reference to prediction residuals. The gate applies to decode; prefill is retained without that gate. No between-run Studio repeatability campaign was performed; execution order was not randomized. No device-memory trace or resident-layer count was recorded. Maximal offload requested does not establish full accelerator residency. Physical GPU quantity 1 is source-protocol and pinned-implementation bound, not inferred from GPU cores or a form default: the paper names the local arm/Metal backend on this Studio and requested offload99. At b10794, Metal initializes MTLCreateSystemDefaultDevice; its implementation expressly uses one physical device, with any GGML_METAL_DEVICES additions being virtual devices on the same physical GPU. This establishes the participating physical Metal device count for the reported Metal protocol, not independent utilization telemetry or proof that all layers reside there. Sources: https://github.com/ggml-org/llama.cpp/blob/f9f09f02cc44d87d842dbd2d578857d92d4bb63b/ggml/src/ggml-metal/ggml-metal-device.m#L1091-L1114 ; https://github.com/ggml-org/llama.cpp/blob/f9f09f02cc44d87d842dbd2d578857d92d4bb63b/src/llama.cpp . Pinned llama-bench semantics: high_resolution_clock timestamps in nanoseconds bracket the timed test; per-repetition rate is (n_prompt+n_gen)*1e9/elapsed_ns, and headline avg_ts averages these rates. Existing depth is preprocessed or restored before the timer. Memory is cleared for each repetition; the requested context is n_prompt+n_gen+n_depth, so there is no single fixed serving-capacity field to fill. Warmup is enabled by the upstream default, but the paper does not print a complete command or separately attest warmup, batch/microbatch, mmap or every environment override; these remain unreported for this campaign. Sources: https://github.com/ggml-org/llama.cpp/blob/f9f09f02cc44d87d842dbd2d578857d92d4bb63b/tools/llama-bench/llama-bench.cpp . No speculative-decoding/MTP workload is described; source uses plain llama-bench PP/TG tests. The paper's frozen metadata snapshot reports 3,075,098,624 total parameters and 3,075,098,624 active parameters (100.0%), 36 layers, and modeled KV bytes at prefix0/4096/16384 of 0/301,989,888/1,207,959,552. These are author-derived metadata/modeling quantities, not independent tensor recounts or observed RAM/VRAM usage. They must not be used to assert measured memory residency. The form rounds the structured PP/TG rates to one decimal; the exact source values are retained above.

Oct 13, 2026
Apple hardware
generation:
168.6 tokens/s
prompt processing (prefill):
2142.9 tokens/s
quant:
Q4_K_M (GGUF)
kv:
F16
flash attention:
on
mtp (multi-token prediction):
off

Reported by the source; GPU count, offloading and concurrent requests can change these figures. Prompt-processing speed is input throughput, not time to first token. Check the full setup before comparing.

Historical public-source recovery from Qiu et al., arXiv:2609.14864v1, submitted 2026-09-14. Source: https://arxiv.org/html/2609.14864v1 . Measured columns from Supplement sections 4 and 5 are used; prediction columns B2/P1/P2 are excluded. This is not an independently executed benchmark. Hardware: Mac Studio M4 Max, 128 GB unified system memory, Darwin-arm64, BLAS/MTL. Source specifies 12 performance-core threads, not total physical CPU cores. GPU core count, full CPU core count, macOS version, clocks, power and temperature are unreported. RAM is not dedicated VRAM or measured residency. Model M22: SmolLM3-3B, Q4_K_M, GGUF. Exact source repository/file: ggml-org/SmolLM3-3B-GGUF/SmolLM3-Q4_K_M.gguf; 1,915,305,312 bytes. The paper's coarser metadata quant label is Q4_K_M; the full filename's dynamic UD-/XL identity is preserved when present. Verified current reference: https://huggingface.co/ggml-org/SmolLM3-3B-GGUF/blob/4965cb60b150737b68a0408c36aeefb65078f894/SmolLM3-Q4_K_M.gguf . Pinned reference revision 4965cb60b150737b68a0408c36aeefb65078f894; LFS SHA256 8334b850b7bd46238c16b0c550df2138f0889bf433809008cc17a8b05761863e. Current filename and byte count match the paper. The paper says the Studio files were SHA-verified, but it does not expose the historical per-file hash/revision in its tables; it names companion provenance files whose repository is not linked. Thus this current hash is reference metadata, not asserted as the measured historical bytes. Publisher model card identifies base/reference HuggingFaceTB/SmolLM3-3B; https://huggingface.co/ggml-org/SmolLM3-3B-GGUF/raw/4965cb60b150737b68a0408c36aeefb65078f894/README.md . No model weights were downloaded. Runtime: source identifies the official llama.cpp b10794 archive for this Studio; upstream tag resolves to f9f09f02cc44d87d842dbd2d578857d92d4bb63b. The source does not publish the archive hash itself in its displayed table. The MacBook's unrecovered runtime revision and RTX directory label are different hosts and are not transferred here. Headline is depth 0: PP512 2142.88 and TG128 168.55 tokens/s. All three same-model depth conditions: Prefix depth 0: native PP512 2142.88 tokens/s (within-run CV 0.26%); native TG128 168.55 tokens/s (CV 0.42%). Prefix depth 4096: native PP512 1678.58 tokens/s (within-run CV 0.26%); native TG128 149.85 tokens/s (CV 1.20%). Prefix depth 16384: native PP512 1019.72 tokens/s (within-run CV 0.10%); native TG128 115.65 tokens/s (CV 0.24%). These are separate 512-token prefill and 128-token generation microbenchmarks, not an end-to-end 512-input/128-output conversation. Existing prefix depth is not configured serving context capacity. The depth-0 generation result does not follow the PP512 prompt. No TTFT was measured or reconstructed. The table's rates are rounded to two decimals; per-repetition raw timings are unavailable in the paper. Protocol: single sequence; fresh process for each configuration; five repetitions; 45-second settling; requested GPU layers 99; flash attention; F16 K/V. The chosen rows have 2 acquisition attempts per depth and pre-run macOS one-minute load average 4.33; this is not GPU utilization. Selection prefers complete protocol rows, then lower worst decode CV and lower pre-run load, without reference to prediction residuals. The gate applies to decode; prefill is retained without that gate. No between-run Studio repeatability campaign was performed; execution order was not randomized. No device-memory trace or resident-layer count was recorded. Maximal offload requested does not establish full accelerator residency. Physical GPU quantity 1 is source-protocol and pinned-implementation bound, not inferred from GPU cores or a form default: the paper names the local arm/Metal backend on this Studio and requested offload99. At b10794, Metal initializes MTLCreateSystemDefaultDevice; its implementation expressly uses one physical device, with any GGML_METAL_DEVICES additions being virtual devices on the same physical GPU. This establishes the participating physical Metal device count for the reported Metal protocol, not independent utilization telemetry or proof that all layers reside there. Sources: https://github.com/ggml-org/llama.cpp/blob/f9f09f02cc44d87d842dbd2d578857d92d4bb63b/ggml/src/ggml-metal/ggml-metal-device.m#L1091-L1114 ; https://github.com/ggml-org/llama.cpp/blob/f9f09f02cc44d87d842dbd2d578857d92d4bb63b/src/llama.cpp . Pinned llama-bench semantics: high_resolution_clock timestamps in nanoseconds bracket the timed test; per-repetition rate is (n_prompt+n_gen)*1e9/elapsed_ns, and headline avg_ts averages these rates. Existing depth is preprocessed or restored before the timer. Memory is cleared for each repetition; the requested context is n_prompt+n_gen+n_depth, so there is no single fixed serving-capacity field to fill. Warmup is enabled by the upstream default, but the paper does not print a complete command or separately attest warmup, batch/microbatch, mmap or every environment override; these remain unreported for this campaign. Sources: https://github.com/ggml-org/llama.cpp/blob/f9f09f02cc44d87d842dbd2d578857d92d4bb63b/tools/llama-bench/llama-bench.cpp . No speculative-decoding/MTP workload is described; source uses plain llama-bench PP/TG tests. The paper's frozen metadata snapshot reports 3,075,098,624 total parameters and 3,075,098,624 active parameters (100.0%), 36 layers, and modeled KV bytes at prefix0/4096/16384 of 0/301,989,888/1,207,959,552. These are author-derived metadata/modeling quantities, not independent tensor recounts or observed RAM/VRAM usage. They must not be used to assert measured memory residency. The form rounds the structured PP/TG rates to one decimal; the exact source values are retained above.

Oct 13, 2026
Showing 1–2 of 2
Page 1 of 1

Community benchmarks snapshot

Records by GPU

AMD Strix Halo 128GB294NVIDIA RTX 3090190NVIDIA RTX 5090134NVIDIA DGX Spark77M5 Max 48GB65NVIDIA RTX Pro 6000 Blackwell62NVIDIA RTX 5060 Ti 16GB58NVIDIA RTX 3060 12GB54AMD Radeon AI PRO R9700 32GB50M4 Max 128GB49

Records by model

2211 total
Qwen3.81021
Qwen3.6238
DeepSeek V4 Flash147
Gemma 4144
Qwen3.597
Qwen353
other511

Records by engine

1645 total
llama.cpp875
vLLM189
MLX100
Strata70
Ollama62
other349

Use cases

coding 556agentic 357long-context 272tool-use 153vision 109summarization 53math 43creative-writing 37multilingual 23text-generation 9rp 8reasoning 3
coding556agentic357long-context272tool-use153vision109summarization53math43creative-writing37

Median generation t/s by GPU

On Qwen3.8 27B at 4-bit, plain single-GPU runs. Full ranking

RTX 509082RTX Pro 600067M5 Ultra 256GB50RX 7900 XTX48RTX 309036RTX 5090 Laptop 24GB34RTX 409032V100 32GB31Radeon AI PRO R9700 32GB30RX 7800 XT 16GB30

Prompt processing, same model

M5 Ultra 256GB1800RX 7900 XTX530RTX 3090561RTX 40901949V100 32GB941RTX 3080 20GB997Arc Pro B70512M1 Ultra 128GB153Arc Pro B60 24GB380M1 Max 32GB82

Reports by model size

Qwen3.8 27B566Qwen3.8 125B · 6B active371DeepSeek V4 Flash 284B · 13B active130Qwen3.6 35B · 3B active129Qwen3.6 27B72Gemma 4 26B · 4B active36GLM-5.3 320B · 18B active33DeepSeek V4.1 Flash 552B · 16B active28

Quants

Q4_K_M290UD-Q4_K_XL140NVFP4120Q8_0984-bit79Q4_K_XL71IQ4_XS70MXFP458IQ3_XXS52Q450