MTPLX/Compare/MTPLX vs Ollama

MTPLX vs Ollama on a Mac.

Ollama is a local model runner: one command pulls a model, and it runs GGUF through llama.cpp and has an MLX runner. MTPLX is a free, open source Mac app and CLI that runs local LLMs on Apple Silicon with native MTP speculative decoding, exact at any temperature.

The MTPLX rows were measured on MTPLX's own M5 Max with fans verified at max. The Ollama rows were published by their authors and measured on their own machines. Created by Youssof Altoukhi, who brought native MTP to the Mac in April 2026.

What Ollama does well

Ollama pulls a model with one command and has a huge catalog. It runs GGUF models through llama.cpp and also has an MLX runner.

The numbers

The three Ollama rows are published third-party runs of Qwen 3.8 27B Q4_K_M. The two MTPLX rows are the Qwen 3.8 27B packs measured for the MTPLX 2.7.0 release on 15 Aug 2026.

EngineModelMachineTaskSamplingDecode tok/sSourceDate
Ollama (version: see source)Qwen 3.8 27B Q4_K_M (GGUF)Mac Studio M3 Ultra, the author's machine5-run average (prompt: see source)see source14.0terminalbytes.com, third partyAug 2026
Ollama (version: see source)Qwen 3.8 27B Q4_K_M (GGUF)M4 Max 128 GB, the author's machinesee sourcesee source16.6chrisleverseo.com, third partyAug 2026
Ollama (version: see source)Qwen 3.8 27B Q4_K_M (GGUF)M1 Max 64 GB, the author's machinesee sourcesee source10.0 to 12.2chrisleverseo.com, third partyAug 2026
MTPLX 2.7.0, MTP depth 3, mtplx serveQwen 3.8 27B Optimized Speed: 4-bit dynamic, 32-weight groupsM5 Max, MTPLX's own machine, fans verified at maxcoding task, medium reasoning, single stream, generation to the model's own stopofficial Qwen 3.8 sampling: temp 1.0 / top-p 0.95 / top-k 2058.7MTPLX 2.7.0 release note15 Aug 2026
MTPLX 2.7.0, MTP depth 3, mtplx serveQwen 3.8 27B Bare Speed: flat 4-bit, 64-weight groupsM5 Max, MTPLX's own machine, fans verified at maxcoding task, single stream, generation to the model's own stopofficial Qwen 3.8 sampling: temp 1.0 / top-p 0.95 / top-k 2065.2MTPLX 2.7.0 release note15 Aug 2026

The Ollama rows are other people's machines, prompts and harnesses. The MTPLX rows are MTPLX's own M5 Max and its own coding task. Different Macs and different prompts: the table shows the scale of each engine's published numbers. It does not show a head-to-head. Cells that read "see source" are recorded only in the linked post.

What is different

  • Native MTP head. MTPLX decodes with the model's own MTP head: on the Qwen 3.8 27B packs the model drafts three tokens ahead, the target verifies them in one forward pass, and the speculative path runs the same model as the AR path. Ollama runs GGUF through llama.cpp and has an MLX runner.
  • Exact at any temperature. Acceptance is probability-ratio min(1, p/q) with residual (p - q)+ resampling (Leviathan–Chen), so output follows the model's distribution at any temperature. MTPLX has never shipped a greedy-only path. Activations stay bf16 (fp16 on M1/M2) on every pass.
  • Prefix caching together with speculation. Since 2.0.0 (6 Jul 2026) MTPLX checkpoints the attention KV cache plus the recurrent and conv GDN state at commit boundaries. A 100k-token session restores in about 2 s after a restart instead of a five-minute cold prefill, and mid-session tool rounds restore warm in under 2 s.
  • Model format. The Ollama rows above are GGUF (Q4_K_M). MTPLX runs MTP-ready MLX builds published under huggingface.co/Youssofal; Forge converts a Hugging Face repo into an MTP-ready MLX build on your own Mac, measures the speedup, and refuses incompatible models instead of silently falling back.
  • One server, two dialects. mtplx start or the app's play button serves an OpenAI-compatible API on 127.0.0.1:8000 (/v1/chat/completions, /v1/completions, /v1/models, /v1/embeddings, /v1/rerank) and an Anthropic-compatible /v1/messages, with streaming and tool calls in both styles. The app and the CLI share one server: mtplx start attaches to the app's loaded model instead of loading a second copy.
Sources. MTPLX numbers link to their release notes; third-party numbers link to their authors. If you measure something different on your Mac, open an issue with the command line and the log.