llamaperf
Oct 13, 2026
Throughput
89.3 t/s gen · 2258.1 tokens/s prompt processing (prefill)Prompt processing measures input prefill speed; it does not tell you the time to first token.
Quant
Q4 (MLX)
System RAM
512 GB

Summary

NetworkChuck, measured 2026-09-20; recovered 2026-10-13, not locally rerun. Measurements/docs: CC BY 4.0. Native data: https://github.com/theNetworkChuck/mac-studio-m5-ultra-local-ai/blob/main/data/language-models/engine.json ; HTTP summary/raw: https://github.com/theNetworkChuck/mac-studio-m5-ultra-local-ai/blob/main/data/language-models/summary.json ; https://github.com/theNetworkChuck/mac-studio-m5-ultra-local-ai/blob/main/data/language-models/runs.jsonl . Method: https://github.com/theNetworkChuck/mac-studio-m5-ultra-local-ai/blob/main/docs/method.md . Merged suite window 14:41:54.718–16:55:25.045 UTC; native cells have no individual timestamps. Native 32768-input/128-output headline: PP=2258.113, TG=89.266 tokens/s, separate five-trial medians, not pooled across lengths. Input is exactly 32768 synthetic tokens. Configured KV capacity unknown and blank. Batch 1; one device. Hardware: Apple Mac Studio M3 Ultra (32-core CPU, 80-core GPU); 512GB installed unified memory; macOS26.5.1; applegpu_g15d; CPU composition 24 performance+8 efficiency; 8TB storage. Unified RAM and allocator peaks are not dedicated VRAM. M3 was Chuck's own; a stuck indexer consumed one CPU core during these tests. Effect unmeasured, no corrective rerun. OS/background effects were not isolated. Power, thermals, clocks, swap and offload count unknown. Model: mlx-community/Qwen3.6-35B-A3B-4bit; 4-bit; MLX Safetensors. Public identity/precision verified 2026-10-13: https://huggingface.co/mlx-community/Qwen3.6-35B-A3B-4bit . Source labels moe, nominal total/active 35/3B; rounded labels, not exact architecture counts. Tested HF revision/hash and group/mixed-precision details unknown; weights not hash-checked. Current HF does not identify the historical snapshot/runtime. Runtime: mlx-lm0.31.3/MLX0.32.2; fingerprint 0.31.3-0.32.2-macOS-26.5.1-arm64-arm-64bit-applegpu_g15d. Harness command: mlx_lm.benchmark --model <folder> -p <input> -g 128 -n 5. Command/parser: https://github.com/theNetworkChuck/mac-studio-m5-ultra-local-ai/blob/main/harness/src/bench/ssh.ts ; https://github.com/theNetworkChuck/mac-studio-m5-ultra-local-ai/blob/main/harness/src/bench/engine.ts . Model already loaded; one discarded warm-up, five trials. Rates printed to 3 decimals; harness uses their median/min/max, not tool means. Versioned runtime semantics: https://github.com/ml-explore/mlx-lm/blob/v0.31.3/mlx_lm/benchmark.py and https://github.com/ml-explore/mlx-lm/blob/v0.31.3/mlx_lm/generate.py . Seed 0, random IDs rather than HTTP essay, EOS disabled, batch 1, default prefill step 2048, no trial delay. Native prompt_tps=prompt.size/time through first generated token; includes first-token work, not pure kernels. generation_tps=count/time after that boundary through final detokenization, count 128. Fresh KV each call: no prompt_cache passed. No draft/KV-quant/activation-quant flags; flash selection and build/source commit unknown. Native rows: input/output; PP/TG median[min,max] tokens/s; peak decimal GB; n trials: 512/128: PP=2296.962[2290.489,2309.915]; TG=106.413[106.313,106.699]; peak=20.178GB; n=5 4096/128: PP=3060.709[3054.646,3062.875]; TG=104.767[103.309,104.876]; peak=21.524GB; n=5 16384/128: PP=2686.749[2685.706,2687.926]; TG=94.701[94.503,95.185]; peak=22.564GB; n=5 32768/128: PP=2258.113[2256.12,2259.217]; TG=89.266[88.876,89.409]; peak=23.999GB; n=5 Peak=max printed MLX peak_memory, mx.get_peak_memory()/1e9 allocator high-water, not RSS/disk/RAM/VRAM. No trial reset shown; warm-up/earlier allocations may contribute. Load-time/energy unknown. HTTP: serial LAN streaming from separate controller; mlx_lm.server prompt-cache-size 0, thinking disabled, temperature 0, cap 128. Repeated sample.txt essay+summary instruction, unique run-ID prefix. One discarded warm-up+five measured requests/cell, 30-second rests; 100K has one measured run. Raw: cachedTokens 0, output 128, firstWordField=content. Uncached input, warm-loaded model; not cold loading. Controller monotonic timing starts before request; first nonempty text ends TTFT. Client read=input/TTFT; write=(output−1)/(last−first text time); total ends at stream completion. Network/HTTP included; not native PP/TG. Code: https://github.com/theNetworkChuck/mac-studio-m5-ultra-local-ai/blob/main/harness/src/lane.ts . HTTP rows: nominal; actual in/out; read/write tokens/s; first/total seconds; median[min,max], n. Shown to 10 significant digits; raw retains full precision. 512: in=510[510,512]; out=128[128,128]; read=1392.91362[1380.224895,1407.223564]; write=86.305141[85.79266682,86.34874012]; first=0.366139[0.363837,0.369505]; total=1.837072[1.83542,1.847129]; n=5 4K: in=4097[4096,4097]; out=128[128,128]; read=2685.95678[2682.464201,2691.548655]; write=84.74101278[84.66141766,84.96767883]; first=1.525341[1.522172,1.527327]; total=3.022171[3.01864,3.025994]; n=5 16K: in=16273[16272,16274]; out=128[128,128]; read=2559.706696[2557.059316,2562.225937]; write=77.2879359[77.07016844,77.85588569]; first=6.357369[6.350728,6.364342]; total=8.005671[7.982217,8.007679]; n=5 32K: in=32511[32510,32511]; out=128[128,128]; read=2192.970326[2191.257683,2194.364095]; write=71.49874314[69.93815705,71.76896947]; first=14.825098[14.815226,14.836685]; total=16.598931[16.591711,16.652469]; n=5 Separate earlier M3 cohort: MLX 0.31.2 versus main 0.32.2; mlx-lm 0.31.3; timestamps 2026-09-20T12:32:00.205Z to 2026-09-20T12:36:29.626Z. Source: https://github.com/theNetworkChuck/mac-studio-m5-ultra-local-ai/blob/main/data/language-models/baseline-m3-ultra/runs.jsonl and https://github.com/theNetworkChuck/mac-studio-m5-ultra-local-ai/blob/main/data/language-models/baseline-m3-ultra/engine.json . Later Sept20 baseline manifest does not cover all earlier timestamps. Earlier results excluded from headline. HTTP cachedTokens 0/output 128; one warm-up+five repeats, except 100K one measured. Same formulas; medians/ranges recomputed from raw times/counts. 512: in=511[510,511]; out=128[128,128]; read=1371.142153[1360.127762,1377.558998]; write=84.38263472[84.21951718,84.49002619]; first=0.372682[0.370899,0.3757]; total=1.878181[1.876894,1.880795]; n=5 4K: in=4095[4095,4098]; out=128[128,128]; read=2626.44286[2585.746381,2638.281216]; write=82.85312229[81.04244838,83.01131045]; first=1.559143[1.553284,1.583682]; total=3.094791[3.086665,3.126361]; n=5 16K: in=16268[16267,16269]; out=128[128,128]; read=2506.748434[2501.353766,2509.861714]; write=74.05295311[73.99694806,74.74778508]; first=6.489283[6.481632,6.504078]; total=8.205734[8.185321,8.219329]; n=5 32K: in=32501[32500,32502]; out=128[128,128]; read=2152.18143[2149.123274,2154.740764]; write=68.43015302[68.36462136,68.68039013]; first=15.101516[15.083485,15.122911]; total=16.962611[16.932815,16.985637]; n=5 Earlier native MLX 0.31.2, same method, exact input/output; PP/TG median[min,max]; allocator peak GB; n: 512/128: PP=2233.48[2232.533,2237.758]; TG=101.953[101.735,102.087]; peak=20.178GB; n=5 4096/128: PP=2978.571[2977.652,2981.538]; TG=100.248[98.96,100.331]; peak=21.524GB; n=5 16384/128: PP=2622.995[2622.075,2624.993]; TG=91.219[90.886,91.288]; peak=22.564GB; n=5 32768/128: PP=2214.475[2212.581,2215.649]; TG=85.625[85.385,86.23]; peak=23.999GB; n=5 No independent model-quality validation.