Oct 13, 2026
Summary
Source-reported historical ZINC project campaign, target generated_at 2026-09-13T03:37:48.775Z; recovered 2026-10-13, not locally rerun. This report is the llama.cpp arm. Pinned primary data: https://github.com/zolotukhin/zinc/blob/29bc350ac4cbf9f110ec628b9e177ea04ac816fb/site/src/data/zinc-performance.json (targets[id=metal], models[id=qwen38-27b-q4k-m]). Data publication commit is 29bc350ac4cbf9f110ec628b9e177ea04ac816fb; main and pinned JSON were byte-identical at recovery. Site: https://zolotukhin.ai/zinc/benchmarks/#metal . The September 25 top-level artifact date covers multiple targets; it is not this Mac campaign's measurement date.
Hardware: one Apple Mac Studio, Mac16,9, M4 Max, 40-core GPU, 64 GB installed unified memory, Darwin 24.6.0. Forty GPU cores and Mac Studio identity are explicitly stated on the project's hardware/landing page: https://zolotukhin.ai/zinc/ . CPU core count, power mode, temperature/clocks, swap, other-process activity, and storage are not recorded. Unified RAM is not dedicated VRAM. No measured memory usage or model peak is published; leave VRAM/RSS fields blank.
Model identity: source model ID qwen38-27b-q4k-m; GGUF Qwen3.8-27B-Q4_K_M.gguf from https://huggingface.co/unsloth/Qwen3.8-27B-GGUF. Pinned managed catalog: https://github.com/zolotukhin/zinc/blob/68a03ec6c6415efaeabbac7d4dec83ffdaea9608/src/model/catalog.zig . The harness resolves this ID to the managed cache's model.gguf and passes the same file to the baseline. This binds the intended artifact by code/catalog; raw on-run path/hash logs and measured HF repository revision are absent. Current or historical HF metadata verification: https://huggingface.co/unsloth/Qwen3.8-27B-GGUF/blob/4121cb19390a7984a0e6dc0f46bea9177b846f15/Qwen3.8-27B-Q4_K_M.gguf .
Catalog intended SHA256=7e78da5d7e3ae28d178121f58646953305f3e5bd3cb46f4a75584e8b6c6fe169; independently matched HF metadata. That file was deleted from HF main on August 19; the historical revision linked above still exposes it. The tested HF revision is unknown; do not substitute today's differently named UD-Q4_K_M file.
Runtime provenance: llama-server 0.4.0-dev, reported commit 790cf51aa, Metal; runtime binary checksum unknown. Paired harness: https://github.com/zolotukhin/zinc/blob/68a03ec6c6415efaeabbac7d4dec83ffdaea9608/tools/performance_suite.mjs at ZINC 68a03ec6c6415efaeabbac7d4dec83ffdaea9608. It prefers one resident local llama-server per model for all scenarios, and can fall back to llama-cli on server-launch failure. The stored binary name and nonempty completion previews support the server path here; a per-run full command/startup log is not retained. Server method specifies -ngl 999, --ctx-size 4096, --parallel 1, -b 4096, -ub 1024, --flash-attn on, --no-cache-prompt. These settings are code-derived protocol evidence, not individually logged runtime readbacks; context and FA form fields remain blank rather than claiming independently verified allocations. GPU offload request 999 is not measured layer count. CPU threads and KV precision unknown.
One discarded warmup plus three measured nonstreaming requests per scenario. /v1/chat/completions uses the runtime chat template, temperature 0, source max_tokens. PP/TG are engine-native response timings.prompt_per_second and predicted_per_second, not client input/TTFT or wall generation throughput. Native prompt_ms/prompt_n are preferred over usage when present. The harness reconstructs decode_ms as completion_tokens/TG*1000; it is not a direct raw decode duration. Do not equate its token-count convention with ZINC's N-over-N-minus-one-loop timing. JSON marks speculation disabled; no draft/MTP flags are in this launch. No first-token timestamp is captured.
Headline is Quick Chat/core: recorded prompt/prefill count 87/87, output 96; PP=119.88656, TG=23.88856 tokens/s. Counters are the first measured row saved by createStats, not a per-run count distribution; all three rate samples are retained. These are short actual inputs, not filled 4K or long-context benchmarks. Other scenario labels describe task style; Incident Context reaches only a few hundred input tokens.
All scenario rates are separate medians[min,max], tokens/s, n=3; ms where labeled. Displayed to 8 significant digits; pinned JSON retains full precision.
Quick Chat (core): input/prefill/output=87/87/96; cap=96; PP=119.88656[119.30932,120.06624]; TG=23.88856[23.866115,23.94904]; PPms=725.686[724.6,729.197]; wrapper wall ms=4702.6213[4693.6425,4743.3275]; wrapper E2E=38.914467[38.580511,38.988909]; paired engine input=48.
Coding Review (context-medium): input/prefill/output=212/212/160; cap=160; PP=170.2006[170.17956,170.2959]; TG=23.738075[23.351272,23.869401]; PPms=1245.589[1244.892,1245.743]; wrapper wall ms=7945.3056[7908.2199,8055.2348]; wrapper E2E=46.8201[46.181149,47.039663]; paired engine input=193.
Incident Context (context-long): input/prefill/output=378/378/128; cap=128; PP=196.85675[196.8342,197.60635]; TG=22.782255[22.780968,23.159377]; PPms=1920.178[1912.894,1920.398]; wrapper wall ms=7489.3004[7405.5469,7499.1648]; wrapper E2E=67.563053[67.47418,68.327161]; paired engine input=345.
Long Coding Draft (decode-extended): input/prefill/output=109/109/256; cap=256; PP=148.71491[143.54533,149.01235]; TG=23.763902[22.944596,23.876832]; PPms=732.946[731.483,759.342]; wrapper wall ms=11496.663[11412.688,11874.348]; wrapper E2E=31.748342[30.738529,31.981949]; paired engine input=70.
Wrapper wall/E2E above are a separate measurement. For ZINC they enclose process startup, model loading, inference and termination; for resident llama-server they enclose request/response and exclude server startup. E2E=(prompt+output)/wrapper wall. The site's 'overall' uses inferred phase durations from median rates, excluding overhead, and is neither the saved wrapper E2E nor TTFT. Never put wall-derived or overall rates into native PP/TG fields.
Cross-engine comparison caveat: all 20 Mac model/scenario pairs in the pinned JSON have different prompt counts. The rendered dashboard instead says 4/20 same; retain this source inconsistency and use the engine-specific counters above. Templates/tokenization and Qwen thinking output can differ; no matched-token speedup or equivalent-quality claim follows. Source preview checks are only a simple repetition/control-token screen, not independent task scoring. Exact thermal/power conditions, repeated-run count variation, benchmark command environment and independent correctness validation remain unknown.