M5 Max vs M3 Max: What the llama.cpp Data Shows
The community llama.cpp benchmark has full M3 Max numbers but no M5 Max results yet, only projected memory bandwidth figures.
M5 Max vs M3 Max: What the llama.cpp Data Shows
People comparing Apple Silicon chips for running local language models often turn to the long-running community benchmark thread in the llama.cpp repository. As of this writing, that thread has complete results for the M3 Max but does not yet have measured throughput for the M5 Max, so a head-to-head comparison based on real numbers is not possible. This article describes only what the source actually reports.
The Benchmark Setup
The reference benchmark lives in the GitHub discussion “Performance of llama.cpp on Apple Silicon M-series” (https://github.com/ggml-org/llama.cpp/discussions/4167). It uses the LLaMA 7B v2 model and reports two metrics in tokens per second: prompt processing (PP), measured at a batch size of 512, and text generation (TG), measured at a batch size of 1. Results are collected across F16, Q8_0, and Q4_0 quantizations. To keep results comparable across the many contributors, the thread asks people to run a fixed build commit so that performance factors stay consistent.
What the M3 Max Numbers Look Like
The M3 Max has full data in the summary table, reported for two GPU configurations.
The 40-GPU-core M3 Max, with 400 GB/s of memory bandwidth, records 779.17 t/s prompt processing and 25.09 t/s text generation in F16, and 759.7 t/s prompt processing with 66.31 t/s text generation in Q4_0.
The 30-GPU-core M3 Max, with 300 GB/s of bandwidth, records 589.41 t/s prompt processing and 19.54 t/s text generation in F16, and 567.59 t/s prompt processing with 56.58 t/s text generation in Q4_0.
These figures show the expected pattern for local inference on this hardware: more aggressive quantization (Q4_0) raises text-generation throughput, and the higher-bandwidth configuration leads on both metrics.
The M5 Max Gap
The summary table includes rows for the M5 series, but they are marked as having no data collected. What the thread does list for the M5 Max are projected memory bandwidth specifications: 460 GB/s for a 32-core variant and 614 GB/s for a 40-core variant. No prompt-processing or text-generation tokens-per-second numbers are populated for the M5 Max.
Memory bandwidth matters for local inference because text generation is often limited by how fast the model weights can be read from memory rather than by raw compute. On that basis, the higher projected bandwidth of the M5 Max suggests room for improvement over the M3 Max. One commenter in the thread pointed to a Geekbench result and speculated about roughly a 30 percent increase, but that is community speculation, not a measured llama.cpp result.
What to Take Away
Anyone wanting a real M5 Max versus M3 Max comparison for local language models should wait for contributors to add measured M5 Max results to the discussion. Until then, the only solid data point is the M3 Max baseline, alongside projected bandwidth figures that hint at, but do not prove, a performance gain. Checking the live thread is the most reliable way to see whether measured M5 Max numbers have been added.
Source: github.com
Related Tips
Auto-Rename Images with Vision Models & Reasoning
How small vision language models like Moondream analyze image content and use a reasoning mode to produce more accurate, descriptive results.
AI Diagrams: Chat-Generated, Fully Editable
How text-based diagramming tools like Mermaid turn plain text definitions into editable flowcharts, sequence diagrams, and more.
Evolutionary Model Merge Skips Backprop
Sakana AI uses evolutionary algorithms to combine open models into new ones without any gradient-based training, reaching strong benchmark results.