Oct 13, 2026
Summary
Public source measurements by singula2045, published 2026-08-30. Primary source: https://singula2045.hatenablog.com/entry/2026/08/30/000000 . This is historical public-source recovery, not a newly executed benchmark or an independent reproduction.
Hardware: Mac mini M4, 10 CPU cores, 10 GPU cores, 24 GB unified system RAM, all explicitly stated by the author. Unified capacity is not dedicated VRAM or measured model residency. The author dates the purchase to December 2025. macOS version, power mode, cooling, clocks, storage and thermal state for the August run are unreported.
Model: Unsloth Qwen3.8-27B-GGUF, exact filename Qwen3.8-27B-UD-IQ4_XS.gguf, GGUF UD-IQ4_XS. Source native output labels it qwen35 27B IQ4_XS - 4.25 bpw, 13.26 GiB, 27.32 B parameters; the author explicitly clarifies that the tested model is Qwen3.8-27B despite the architecture label. Exact current file reference verified: https://huggingface.co/unsloth/Qwen3.8-27B-GGUF/blob/main/Qwen3.8-27B-UD-IQ4_XS.gguf . It currently lists 14.3 GB and SHA256 40fac4050e940397dbf13087afd50f4734a11805bf9d65ef8ddd7483470e6199. This is reference metadata only: the source does not publish its tested artifact hash/revision, so the current hash is not asserted as the measured bytes.
Runtime: llama.cpp build 9544, source-reported commit 98d5e8ba8, resolved to 98d5e8ba8a2642710c9871d05ac1033a3328b884. The source prints the exact command with a model-path placeholder: llama-bench -m MODEL_PATH -p 512 -n 128. Its output reports MTL,BLAS and 4 CPU threads. Headline metrics preserve the native microbenchmarks: PP512 = 60.78 +/- 1.60 tokens/s; TG128 = 6.47 +/- 0.03 tokens/s. These are separate prompt and generation tests, not one 512-input/128-output request. No TTFT is reported for this run; none is calculated from PP.
Participating GPU quantity is bound to the printed command/build and the exact upstream implementation: one physical Metal GPU. This is not inferred solely from the M4 name or GPU core count. At the pinned revision, llama-bench defaults n_gpu_layers=-1, no explicit devices, layer split, main GPU 0, and no RPC target. llama_model::n_gpu_layers maps the negative value to all layers plus output; default device selection picks available GPU devices. The Metal registry defaults to one logical device; even additional GGML_METAL_DEVICES indices are simulated virtual devices and all initialize via MTLCreateSystemDefaultDevice. The source's MTL,BLAS label records registered backends rather than a per-layer offload trace. No separate startup or layer-placement log is published; the quantity/offload binding is command-and-implementation-based, not an independently measured utilization trace. Sources: https://github.com/ggml-org/llama.cpp/blob/98d5e8ba8a2642710c9871d05ac1033a3328b884/tools/llama-bench/llama-bench.cpp ; https://github.com/ggml-org/llama.cpp/blob/98d5e8ba8a2642710c9871d05ac1033a3328b884/src/llama.cpp ; https://github.com/ggml-org/llama.cpp/blob/98d5e8ba8a2642710c9871d05ac1033a3328b884/src/llama-model.cpp ; https://github.com/ggml-org/llama.cpp/blob/98d5e8ba8a2642710c9871d05ac1033a3328b884/ggml/src/ggml-metal/ggml-metal.cpp ; https://github.com/ggml-org/llama.cpp/blob/98d5e8ba8a2642710c9871d05ac1033a3328b884/ggml/src/ggml-metal/ggml-metal-device.m .
Version-bound defaults, not additional measured observations: 5 internal repetitions; warmup enabled; depth 0; batch 2048; microbatch 512; F16 K/V cache; flash attention AUTO; mmap enabled. Native displayed +/- is the standard deviation of per-repetition token rates; raw repetitions are absent. The code clears sequence memory before each repetition, after its warmup. The standalone microbench creates contexts for its separate tests; no fixed serving context capacity is asserted. TG128 is the depth-0 standalone generation microbenchmark, not decode after a 512-token prompt. No speculative-decoding or MTP option is used by this command.
The article separately reports a vllm-mlx-bench run on mlx-community/Qwen3.8-27B-4bit: 50 requests, 3880 total input tokens and 5926 total output tokens; source-labelled TTFT mean1742.5ms, P95/Max4186.3ms, generation6.8tok/s and processing31.1tok/s. These different-workload MLX numbers are not blended into this report; its runtime revision and exact timing implementation are unpublished, so its claimed TTFT/processing rate are not promoted as independently verified native metrics here. The source also includes M5 Pro forecasts and AI-generated Reddit summaries, which are excluded.
The same author's 2026-10-03 article repeats these M4 numbers as a baseline alongside a new M5 Pro64GB run: https://singula2045.hatenablog.com/entry/2026/10/03/000000 . Existing LlamaPerf report https://llamaperf.com/report/6296aa06-268b-444f-a940-1e5993e2e9fa covers that M5 PP381.62/TG18.45 campaign; this M4 PP60.78/TG6.47 campaign is distinct. The October macOS27.0.1 and newer-machine details are not transferred to the August M4 run.
Structured rates are rounded to the form's 0.1 tok/s step; exact source rates are retained above.