Oct 13, 2026
Summary
Public third-party measurements by Hack-Log, published 2026-10-06. Source: https://note.com/hacklog_stealth/n/nc6dfde6e4ee0?hl=en
Mac mini Apple M4, 16 GB unified memory, macOS 26.4. This is system unified capacity, not a measured working set or dedicated VRAM. GPU core count 10 is supplied by the same author's 2026-10-09 Mac mini M4/16 GB companion: https://note.com/hacklog_stealth/n/n97927ee87cac?hl=en . CPU cores and threads not reported.
One participating physical GPU: the tested new-build startup excerpt identifies MTL0 (Apple M4). The stated benchmark command uses local llama-bench, without RPC/device/CPU-offload overrides. At the exact b11429 revision d81235049384534c167caea52b85a694f6103d14, llama-bench defaults n_gpu_layers=-1 and llama_model::n_gpu_layers maps negative values to all model layers plus output; the Metal implementation selects one system-default physical GPU. Extra Metal devices, if requested, are virtual views of that physical device. This is implementation-bound quantity evidence plus the actual source log, not a GPU count inferred solely from the chip name. Sources: https://github.com/ggml-org/llama.cpp/blob/d81235049384534c167caea52b85a694f6103d14/tools/llama-bench/llama-bench.cpp ; https://github.com/ggml-org/llama.cpp/blob/d81235049384534c167caea52b85a694f6103d14/src/llama-model.cpp ; https://github.com/ggml-org/llama.cpp/blob/d81235049384534c167caea52b85a694f6103d14/ggml/src/ggml-metal/ggml-metal-device.m .
Model: Qwen3.5-4B, Q4_K_M GGUF, source size 2.54 GiB. Filename Qwen3.5-4B-Q4_K_M.gguf. Publisher binding comes from the author's next-day inventory, which names unsloth as the source of their Qwen3.5-4B GGUF: https://note.com/hacklog_stealth/n/n955380d3c86a . Their earlier download example gives the exact matching unsloth repository/filename: https://note.com/hacklog_stealth/n/n90637e37b463 . That earlier article labels its machine MacBook, so it is used only for artifact provenance, not this campaign's hardware. Current file reference: https://huggingface.co/unsloth/Qwen3.5-4B-GGUF/blob/e87f176479d0855a907a41277aca2f8ee7a09523/Qwen3.5-4B-Q4_K_M.gguf . This reference lists 2.74 GB and is compatible with the reported 2.54 GiB. Tested artifact hash/revision is unpublished; the HF pin is a current reference, not a claimed measured revision.
New runtime: llama.cpp 0.6.0, official macOS arm64 build 11429, Metal. Report headline fields preserve the native llama-bench values: PP512 = 352.4 tokens/s; TG64 = 28.3 tokens/s. These are separate prompt-processing and generation microbenchmarks, not one 512-input/64-output request or an end-to-end rate. Flash attention enabled. Source command: llama-bench -m Qwen3.5-4B-Q4_K_M.gguf -fa 1 -p 512 -n 64 -d 0,4096 -r 3. The article's single-generation value is not explicitly mapped to one of the two requested depth settings; generation context depth remains unknown. The article separately identifies PP512 after 4096 existing tokens as 321.5 tokens/s. Context capacity is not a published fixed parameter of this standalone test.
Same campaign baseline: Homebrew llama.cpp 0.4.1 build 10964, PP512 = 355.8, TG64 = 28.8; PP512 after 4096 tokens = 318.8. The author ran old/new/old/new and averaged the two invocations per runtime; the shown single-stream command specifies 3 internal repetitions. Raw repetitions, spread, exact timestamps and temperatures are not published. The new runtime's normal warmup is enabled because the shown command does not disable it; this is code-derived, not an additional source measurement.
Separate batched generation sweep uses llama-batched-bench, FA on, prompt 512, generation 32 per stream, parallel streams 1/2/4/8, context 8192, unified KV enabled. Source-reported TOTAL generation tokens/s over all streams, old/new respectively: 1 = 28.2/28.3; 2 = 38.0/40.0; 4 = 36.6/64.3; 8 = 36.8/95.3. These batched aggregate rates must not be substituted for single-stream TG. No measured TTFT is published; TTFT stays blank and is not derived from PP. Sampling, KV precision, thermal state and memory footprint were not independently measured here.
This report covers the 4B model. The same campaign also measured Qwen3.5-0.8B Q8_0; those rates belong in a separate model report with their own provenance caveats. No new benchmarks were run for this report.