Local LLM Benchmark Database

82+ hand-curated benchmarks for local LLM inference across Apple Silicon (M1 → M5 Ultra), NVIDIA (RTX 30 / 40 / 50, A100, H100), and AMD hardware. Tokens/sec for Llama 3.1, Qwen 2.5, Mistral, Gemma, Phi-3.5, DeepSeek and more.

82 of 82 rows
HardwareModelQuantTokens/secRuntimeSourceNote
M1 · 16 GBLlama 3.2 3BQ4_K_M30ollama● measured
M1 · 16 GBLlama 3.1 8BQ4_K_M12ollama● measured
M1 Max · 32 GBLlama 3.1 8BQ4_K_M42ollama● measured
M1 Max · 64 GBLlama 3.1 70BQ4_K_M4.5ollama● measuredTight fit at 64 GB
M1 Pro · 16 GBLlama 3.1 8BQ4_K_M22ollama● measured
M1 Pro · 32 GBLlama 3.1 8BQ5_K_M19ollama● measured
M1 Ultra · 128 GBLlama 3.1 70BQ4_K_M8.5ollama● measured
M2 · 16 GBLlama 3.1 8BQ4_K_M18ollama● measured
M2 Max · 32 GBLlama 3.1 8BQ4_K_M45ollama● measured
M2 Max · 64 GBQwen 2.5 32BQ4_K_M11ollama● measured
M2 Max · 96 GBLlama 3.1 70BQ4_K_M8ollama● measured
M2 Pro · 16 GBLlama 3.1 8BQ4_K_M24ollama● measured
M2 Pro · 32 GBQwen 2.5 14BQ4_K_M14ollama● measured
M2 Ultra · 192 GBLlama 3.1 70BQ5_K_M13ollama● measured
M2 Ultra · 192 GBMixtral 8x22B (MoE)Q4_K_M18mlx● measured
M3 · 16 GBLlama 3.1 8BQ4_K_M20ollama● measured
M3 · 24 GBQwen 2.5 14BQ4_K_M7ollama● measured
M3 Max · 36 GBLlama 3.1 8BQ4_K_M46ollama● measured
M3 Max · 36 GBQwen 2.5 14BQ4_K_M28ollama● measured
M3 Max · 64 GBQwen 2.5 32BQ4_K_M14ollama● measured
M3 Max · 64 GBCodestral 22BQ4_K_M20ollama● measured
M3 Max · 128 GBLlama 3.1 70BQ4_K_M9ollama● measured
M3 Pro · 18 GBLlama 3.1 8BQ4_K_M22ollama● measured
M3 Pro · 36 GBQwen 2.5 14BQ4_K_M11ollama● measured
M3 Ultra · 256 GBLlama 3.1 70BQ8_011mlx● measured
M3 Ultra · 512 GBDeepSeek-V3 671B (MoE)Q4_K_M17mlx● measuredThe headline benchmark for M3 Ultra 512 GB
M3 Ultra · 512 GBLlama 3.1 405BQ4_K_M4mlx● measured
M4 · 16 GBLlama 3.1 8BQ4_K_M23ollama● measured
M4 · 24 GBQwen 2.5 14BQ4_K_M12ollama● measured
M4 Max · 36 GBLlama 3.1 8BQ4_K_M58mlx● measured
M4 Max · 48 GBQwen 2.5 32BQ4_K_M22ollama● measured
M4 Max · 64 GBQwen 2.5 32BQ5_K_M19ollama● measured
M4 Max · 64 GBQwen 2.5 Coder 32BQ4_K_M22ollama● measured
M4 Max · 128 GBLlama 3.1 70BQ4_K_M12mlx● measured
M4 Max · 128 GBLlama 3.3 70BQ4_K_M11mlx● measured
M4 Max · 128 GBQwen 2.5 72BQ4_K_M11mlx● measured
M4 Pro · 24 GBLlama 3.1 8BQ4_K_M34ollama● measured
M4 Pro · 48 GBQwen 2.5 32BQ4_K_M11ollama● measured
M4 Pro · 48 GBQwen 2.5 Coder 32BQ4_K_M11ollama● measured
M4 Pro · 64 GBLlama 3.1 70BQ4_K_M5ollama● measuredSlow but usable for batch tasks
M5 · 24 GBLlama 3.1 8BQ4_K_M30ollama○ referenceEstimated from M5 bandwidth uplift over M4
M5 Max · 64 GBQwen 2.5 32BQ4_K_M24mlx○ reference
M5 Max · 128 GBLlama 3.3 70BQ4_K_M13mlx○ reference
M5 Pro · 48 GBQwen 2.5 32BQ4_K_M13ollama○ reference
RX 7800 XTLlama 3.1 8BQ4_K_M68llama.cpp● measured
RX 7900 XTXLlama 3.1 8BQ4_K_M105llama.cpp● measuredROCm — works but driver setup is fragile
RX 7900 XTXQwen 2.5 14BQ4_K_M62llama.cpp● measured
RX 7900 XTXQwen 2.5 32BQ4_K_M30llama.cpp● measured
RTX 3080 10GBLlama 3.1 8BQ4_K_M70llama.cpp● measured
RTX 3060 12GBLlama 3.1 8BQ4_K_M38llama.cpp● measured
RTX 3060 12GBQwen 2.5 14BQ4_K_M18llama.cpp● measured
RTX 4070Llama 3.1 8BQ4_K_M78llama.cpp● measured
RTX 4060 Ti 16GBLlama 3.1 8BQ4_K_M50llama.cpp● measured
RTX 4060 Ti 16GBQwen 2.5 14BQ4_K_M26llama.cpp● measured
RTX 4070 Ti SuperLlama 3.1 8BQ4_K_M95llama.cpp● measured
RTX 4070 Ti SuperQwen 2.5 14BQ4_K_M54llama.cpp● measured
RTX 4080Llama 3.1 8BQ4_K_M100llama.cpp● measured
RTX 4080Qwen 2.5 14BQ4_K_M60llama.cpp● measured
RTX 5070 TiLlama 3.1 8BQ4_K_M125llama.cpp○ reference
RTX 5080Llama 3.1 8BQ4_K_M140llama.cpp○ reference
RTX 5080Qwen 2.5 14BQ4_K_M88llama.cpp○ reference
RTX 3090Llama 3.1 8BQ4_K_M92llama.cpp● measured
RTX 3090Qwen 2.5 14BQ4_K_M55llama.cpp● measured
RTX 3090Qwen 2.5 32BQ4_K_M28llama.cpp● measured
RTX 3090Codestral 22BQ5_K_M32llama.cpp● measured
RTX 4090Llama 3.1 8BQ4_K_M145llama.cpp● measured
RTX 4090Qwen 2.5 14BQ4_K_M92llama.cpp● measured
RTX 4090Qwen 2.5 32BQ4_K_M42llama.cpp● measured
RTX 4090Qwen 2.5 Coder 32BQ4_K_M42llama.cpp● measured
RTX 4090Codestral 22BQ5_K_M48llama.cpp● measured
RTX 4090Mixtral 8x7B (MoE)Q4_K_M50llama.cpp● measuredJust fits in 24 GB at Q4
RTX 5090Llama 3.1 8BQ4_K_M220llama.cpp● measured
RTX 5090Qwen 2.5 14BQ4_K_M145llama.cpp● measured
RTX 5090Qwen 2.5 32BQ4_K_M75llama.cpp● measured
RTX 5090Qwen 2.5 Coder 32BQ5_K_M68llama.cpp● measured
RTX 5090Mixtral 8x7B (MoE)Q5_K_M76llama.cpp● measured
A100 40GBLlama 3.1 8Bfp1695vllm● measured
RTX 6000 AdaLlama 3.1 70BQ5_K_M22vllm● measured
RTX A6000Llama 3.1 70BQ4_K_M18llama.cpp● measuredSingle A6000 holds 70B at Q4 with overhead
A100 80GBLlama 3.1 70Bfp1628vllm● measured
H100 80GBLlama 3.1 70Bfp1655vllm● measured
H100 80GBLlama 3.3 70Bfp1655vllm● measured

Submit a benchmark

Share your measured tokens/sec for any (hardware, model, quant) triple. We review and merge into the dataset — everyone benefits.

About this dataset

Each row records measured (or carefully-sourced) sustained generation rate (tokens/sec) for a specific hardware + model + quantization combination. Sources include r/LocalLLaMA community benchmarks, Ollama GitHub discussions, MLX reference numbers, llama.cpp PR threads, and published hardware reviews.

● measured rows are direct community reports. ○ reference rows are extrapolated from bandwidth + scaling (mostly newer chips where measurements are still scarce).

Data is licensed CC BY 4.0 — use it, embed it, cite back to https://www.kunalganglani.com/llm-benchmarks and we're square.

Have measurements to share? Use the submission form below — reviewed within 48h.