llamaperf

Local model performance on your hardware

Find which open-weight LLMs fit in your GPU or Mac and compare the speeds people report on setups like yours.

What runs on your hardware?

Pick your GPU or Mac, then read the speeds people reported on it, or estimate which models fit and how fast they run.

Free to use. No account needed. Memory estimates and community measurements are labelled separately.

Looking for a particular model?

Search for a model to see its reported speeds across GPUs and Macs.

Local model performance reports from the community

These are individual setups, not a controlled benchmark. Compare GPU count, quantization, context and offloading before comparing speeds. How to read a report →

GPU: M6 32GB
Compare setup details (1 active)

Exact recorded values. Context may be a configured limit; matching filters does not establish identical prompts, offloading or concurrency.

Qwen3.5 9B

M6 32GB · LM Studio · 165,120 ctx

Apple hardware
generation:
30.3 tokens/s

Reported by the source; GPU count, offloading and concurrent requests can change these figures. Prompt-processing speed is shown only when the source reports it; generation speed cannot tell us time to first token. Check the full setup before comparing.

Source: https://github.com/HDZucht/Mac-Mini-M6-LLM-benchmarks Raw measured rows: https://github.com/HDZucht/Mac-Mini-M6-LLM-benchmarks/blob/3990a8e0fa5f2762911689439ce12e1c28d4c989/data/speed_2026-10-03.jsonl Hardware/method/model labels: https://github.com/HDZucht/Mac-Mini-M6-LLM-benchmarks/blob/cb99870e05aa9f5783c5c6987ddd9154834123ab/README.md Loaded context metadata: https://github.com/HDZucht/Mac-Mini-M6-LLM-benchmarks/blob/main/data/loaded_context_2026-10-03.jsonl Harness: https://github.com/HDZucht/Mac-Mini-M6-LLM-benchmarks/blob/main/bench_speed.py Original author: HDZucht / Hans-Dieter Zucht, with repository-credited automated measurements by Argus. Campaign dated October 3–4, 2026; these exact records are in the October 3 raw file. No local reproduction was performed. Headline: 30.3 tokens/s is the median of three English-prose runs (Ruhr economy). It is client-observed streaming decode throughput, not a pooled rate, overall mean, peak, native kernel result or prompt-processing rate. Five workload medians and all 15 runs are preserved separately below. Hardware: Apple Mac mini M6 (Mac18,5), 12 CPU cores (2 Super, 4 Performance, 6 Efficiency), 12 GPU cores, 32 GB unified memory, macOS 27.0.1. One machine, one model loaded alone. Model storage: ORICO 2 TB external NVMe in an ASMedia ASM246x enclosure, source-reported 40 Gb/s PCIe 4.0 x4. Apple automatic fan control. Per-run temperature, clock, power, swap, exact GPU offload and peak resident memory were not logged. Exact measured API alias: qwen3.5-9b-mlx. Display model: Qwen3.5-9B. Source table identifies Qwen3.5-9B in MLX; raw alias adds -mlx. Treat as that named model/backend, with exact precision unknown. Source Format-column label: MLX. Exact measured quantization: unknown. Measured weight format: MLX. Application: LM Studio. Backend: MLX. Exact app/backend versions are unknown. Do not turn QAT, MLX or Splash labels into an assumed Q4 quantization. Public MLX 4-bit, 8-bit and bfloat16 packages were verified for this model. The local alias does not identify publisher or precision. None of these is asserted as the measured artifact. Verified public related package/collection: https://huggingface.co/mlx-community/Qwen3.5-9B-MLX-4bit?library=mlx Verified public related package/collection: https://huggingface.co/mlx-community/Qwen3.5-9B-MLX-8bit/tree/main Verified public related package/collection: https://huggingface.co/mlx-community/Qwen3.5-9B-MLX-bf16/tree/main Measured Hugging Face repository, filename, revision and hash are unrecorded. Public related-package links above prove availability only. Loaded context for this exact alias is 165,120 tokens. Requested load context was 32,768. Loaded capacity is not actual prompt length or a filled-context test. Actual input token counts are absent. Native prefill throughput/duration are unknown; keep PP and new-input-token fields blank. Method: one stream, max_tokens 600, temperature 0.7, reasoning_effort="none", three runs per prompt. A short Hallo warm-up precedes the measured prompts. The script includes emitted content and reasoning chunks; requested reasoning-off does not establish that reasoning was disabled in every backend/model. The harness computes (tokens - 1) / (stream_end - first_nonempty_content_time). It uses API completion_tokens when available and nonzero; otherwise it falls back to the number of nonempty streamed chunks. Raw records contain tokens, chunks, TTFT and generated text, but not the original usage object, finish_reason or total duration. Treat tokens as recorded output counts, with this usage/chunk fallback caveat. Chunk counts need not equal tokenizer token counts. Rates are the saved rounded client rates, not recalculated from TTFT. TTFT is end-to-end client latency, not native prefill duration. Prompts repeat identically across three repetitions; no nonce or explicit cache clear appears in the harness. Prefix-cache state/cached-token counts are unknown. These are not verified cold-prefill runs. A record of 600 equals the requested cap numerically, but finish_reason is not available. KV dtype, batching, microbatching, thread counts and exact GPU allocation are unreported. All 15 runs follow, in source repetition order. Fields: decode tokens/s; recorded output count; nonempty chunks; client TTFT seconds. German prose, Rhine geology (wissen_de), median 30.6 tokens/s: Run 0: 30.6 tokens/s; 599 output count; 595 chunks; TTFT 0.32 s. Run 1: 30.6 tokens/s; 599 output count; 591 chunks; TTFT 0.33 s. Run 2: 30.7 tokens/s; 599 output count; 594 chunks; TTFT 0.33 s. German prose, bead-based immunoassay (beads_de), median 30.8 tokens/s: Run 0: 30.7 tokens/s; 599 output count; 594 chunks; TTFT 0.32 s. Run 1: 30.8 tokens/s; 599 output count; 593 chunks; TTFT 0.34 s. Run 2: 30.8 tokens/s; 599 output count; 575 chunks; TTFT 0.33 s. English prose, Ruhr economy (prosa_en), median 30.3 tokens/s: Run 0: 30.8 tokens/s; 599 output count; 585 chunks; TTFT 0.33 s. Run 1: 30.3 tokens/s; 599 output count; 590 chunks; TTFT 0.33 s. Run 2: 30.2 tokens/s; 599 output count; 590 chunks; TTFT 0.32 s. Python ISO-8601 duration parser (code_py), median 30.1 tokens/s: Run 0: 30.1 tokens/s; 599 output count; 585 chunks; TTFT 0.33 s. Run 1: 30 tokens/s; 599 output count; 590 chunks; TTFT 0.34 s. Run 2: 30.1 tokens/s; 599 output count; 591 chunks; TTFT 0.34 s. JSON antigen/disease extraction (json_extr), median 30.3 tokens/s: Run 0: 30.3 tokens/s; 599 output count; 594 chunks; TTFT 0.33 s. Run 1: 30.3 tokens/s; 599 output count; 592 chunks; TTFT 0.34 s. Run 2: 30.2 tokens/s; 599 output count; 589 chunks; TTFT 0.34 s. Quality scope: The README reports the JSON task passed 0 of 3 automatic checks for this model. All three JSON records say 599 output tokens and contain reasoning; do not replace those recorded counts with the requested 600-token ceiling. Prose/code quality was not generally graded. Throughput is not a quality score.

Oct 13, 2026

Gemma 4 31B

M6 32GB · LM Studio · 32,768 ctx

Apple hardware
generation:
7.5 tokens/s

Reported by the source; GPU count, offloading and concurrent requests can change these figures. Prompt-processing speed is shown only when the source reports it; generation speed cannot tell us time to first token. Check the full setup before comparing.

Source: https://github.com/HDZucht/Mac-Mini-M6-LLM-benchmarks Raw measured rows: https://github.com/HDZucht/Mac-Mini-M6-LLM-benchmarks/blob/3990a8e0fa5f2762911689439ce12e1c28d4c989/data/speed_2026-10-03.jsonl Hardware/method/model labels: https://github.com/HDZucht/Mac-Mini-M6-LLM-benchmarks/blob/cb99870e05aa9f5783c5c6987ddd9154834123ab/README.md Loaded context metadata: https://github.com/HDZucht/Mac-Mini-M6-LLM-benchmarks/blob/main/data/loaded_context_2026-10-03.jsonl Harness: https://github.com/HDZucht/Mac-Mini-M6-LLM-benchmarks/blob/main/bench_speed.py Original author: HDZucht / Hans-Dieter Zucht, with repository-credited automated measurements by Argus. Campaign dated October 3–4, 2026; these exact records are in the October 3 raw file. No local reproduction was performed. Headline: 7.5 tokens/s is the median of three English-prose runs (Ruhr economy). It is client-observed streaming decode throughput, not a pooled rate, overall mean, peak, native kernel result or prompt-processing rate. Five workload medians and all 15 runs are preserved separately below. Hardware: Apple Mac mini M6 (Mac18,5), 12 CPU cores (2 Super, 4 Performance, 6 Efficiency), 12 GPU cores, 32 GB unified memory, macOS 27.0.1. One machine, one model loaded alone. Model storage: ORICO 2 TB external NVMe in an ASMedia ASM246x enclosure, source-reported 40 Gb/s PCIe 4.0 x4. Apple automatic fan control. Per-run temperature, clock, power, swap, exact GPU offload and peak resident memory were not logged. Exact measured API alias: google/gemma-4-31b-qat. Display model: Google Gemma 4 31B QAT. The author names the dense Gemma 4 31B QAT model; no model-family ambiguity beyond missing exact artifact. Source Format-column label: QAT. Exact measured quantization: unknown. Measured weight format: unknown; source label is not a confirmed weight container. Application: LM Studio. Backend: unreported for this alias. Exact app/backend versions are unknown. Do not turn QAT, MLX or Splash labels into an assumed Q4 quantization. The current exact LM Studio alias links the verified QAT GGUF collection. QAT and an available Q4_0 file are not proof of measured quantization; benchmark format/backend/quant remain unassigned. Current alias corroboration (not original run metadata): https://www.lmstudio.ai/models/google/gemma-4-31b-qat Verified public related package/collection: https://huggingface.co/lmstudio-community/gemma-4-31B-it-QAT-GGUF Measured Hugging Face repository, filename, revision and hash are unrecorded. Public related-package links above prove availability only. Loaded context for this exact alias is 32,768 tokens. Requested load context was 32,768. Loaded capacity is not actual prompt length or a filled-context test. Actual input token counts are absent. Native prefill throughput/duration are unknown; keep PP and new-input-token fields blank. Method: one stream, max_tokens 600, temperature 0.7, reasoning_effort="none", three runs per prompt. A short Hallo warm-up precedes the measured prompts. The script includes emitted content and reasoning chunks; requested reasoning-off does not establish that reasoning was disabled in every backend/model. The harness computes (tokens - 1) / (stream_end - first_nonempty_content_time). It uses API completion_tokens when available and nonzero; otherwise it falls back to the number of nonempty streamed chunks. Raw records contain tokens, chunks, TTFT and generated text, but not the original usage object, finish_reason or total duration. Treat tokens as recorded output counts, with this usage/chunk fallback caveat. Chunk counts need not equal tokenizer token counts. Rates are the saved rounded client rates, not recalculated from TTFT. TTFT is end-to-end client latency, not native prefill duration. Prompts repeat identically across three repetitions; no nonce or explicit cache clear appears in the harness. Prefix-cache state/cached-token counts are unknown. These are not verified cold-prefill runs. A record of 600 equals the requested cap numerically, but finish_reason is not available. KV dtype, batching, microbatching, thread counts and exact GPU allocation are unreported. All 15 runs follow, in source repetition order. Fields: decode tokens/s; recorded output count; nonempty chunks; client TTFT seconds. German prose, Rhine geology (wissen_de), median 7.4 tokens/s: Run 0: 7.4 tokens/s; 424 output count; 423 chunks; TTFT 0.81 s. Run 1: 7.4 tokens/s; 437 output count; 436 chunks; TTFT 0.77 s. Run 2: 7.5 tokens/s; 404 output count; 403 chunks; TTFT 0.49 s. German prose, bead-based immunoassay (beads_de), median 7.4 tokens/s: Run 0: 7.5 tokens/s; 535 output count; 534 chunks; TTFT 0.86 s. Run 1: 7.4 tokens/s; 558 output count; 557 chunks; TTFT 0.67 s. Run 2: 7.4 tokens/s; 560 output count; 559 chunks; TTFT 0.53 s. English prose, Ruhr economy (prosa_en), median 7.5 tokens/s: Run 0: 7.6 tokens/s; 356 output count; 355 chunks; TTFT 1.22 s. Run 1: 7.4 tokens/s; 371 output count; 370 chunks; TTFT 0.85 s. Run 2: 7.5 tokens/s; 356 output count; 355 chunks; TTFT 0.68 s. Python ISO-8601 duration parser (code_py), median 7.6 tokens/s: Run 0: 7.6 tokens/s; 351 output count; 346 chunks; TTFT 1.04 s. Run 1: 7.6 tokens/s; 353 output count; 348 chunks; TTFT 0.5 s. Run 2: 7.7 tokens/s; 389 output count; 382 chunks; TTFT 0.5 s. JSON antigen/disease extraction (json_extr), median 7.7 tokens/s: Run 0: 7.7 tokens/s; 85 output count; 84 chunks; TTFT 0.98 s. Run 1: 7.7 tokens/s; 85 output count; 84 chunks; TTFT 0.39 s. Run 2: 7.6 tokens/s; 85 output count; 84 chunks; TTFT 0.36 s. Quality scope: The README reports the JSON task passed 3 of 3 automatic checks for this model. Prose/code quality was not generally graded. Throughput is not a quality score.

Oct 13, 2026

Gemma 4 12B

M6 32GB · LM Studio · 32,768 ctx

Apple hardware
generation:
18.8 tokens/s

Reported by the source; GPU count, offloading and concurrent requests can change these figures. Prompt-processing speed is shown only when the source reports it; generation speed cannot tell us time to first token. Check the full setup before comparing.

Source: https://github.com/HDZucht/Mac-Mini-M6-LLM-benchmarks Raw measured rows: https://github.com/HDZucht/Mac-Mini-M6-LLM-benchmarks/blob/3990a8e0fa5f2762911689439ce12e1c28d4c989/data/speed_2026-10-03.jsonl Hardware/method/model labels: https://github.com/HDZucht/Mac-Mini-M6-LLM-benchmarks/blob/cb99870e05aa9f5783c5c6987ddd9154834123ab/README.md Loaded context metadata: https://github.com/HDZucht/Mac-Mini-M6-LLM-benchmarks/blob/main/data/loaded_context_2026-10-03.jsonl Harness: https://github.com/HDZucht/Mac-Mini-M6-LLM-benchmarks/blob/main/bench_speed.py Original author: HDZucht / Hans-Dieter Zucht, with repository-credited automated measurements by Argus. Campaign dated October 3–4, 2026; these exact records are in the October 3 raw file. No local reproduction was performed. Headline: 18.8 tokens/s is the median of three English-prose runs (Ruhr economy). It is client-observed streaming decode throughput, not a pooled rate, overall mean, peak, native kernel result or prompt-processing rate. Five workload medians and all 15 runs are preserved separately below. Hardware: Apple Mac mini M6 (Mac18,5), 12 CPU cores (2 Super, 4 Performance, 6 Efficiency), 12 GPU cores, 32 GB unified memory, macOS 27.0.1. One machine, one model loaded alone. Model storage: ORICO 2 TB external NVMe in an ASMedia ASM246x enclosure, source-reported 40 Gb/s PCIe 4.0 x4. Apple automatic fan control. Per-run temperature, clock, power, swap, exact GPU offload and peak resident memory were not logged. Exact measured API alias: google/gemma-4-12b-qat. Display model: Google Gemma 4 12B QAT. The author names the dense Gemma 4 12B QAT model; its QAT label is preserved separately from its unknown quantization. Source Format-column label: QAT. Exact measured quantization: unknown. Measured weight format: unknown; source label is not a confirmed weight container. Application: LM Studio. Backend: unreported for this alias. Exact app/backend versions are unknown. Do not turn QAT, MLX or Splash labels into an assumed Q4 quantization. The current exact LM Studio alias links the verified QAT GGUF collection. Current availability is not historical run metadata. The benchmark gives QAT only, so measured format/backend and quant code remain blank. Current alias corroboration (not original run metadata): https://lmstudio.ai/models/google/gemma-4-12b-qat Verified public related package/collection: https://huggingface.co/lmstudio-community/gemma-4-12B-it-QAT-GGUF Measured Hugging Face repository, filename, revision and hash are unrecorded. Public related-package links above prove availability only. Loaded context for this exact alias is 32,768 tokens. Requested load context was 32,768. Loaded capacity is not actual prompt length or a filled-context test. Actual input token counts are absent. Native prefill throughput/duration are unknown; keep PP and new-input-token fields blank. Method: one stream, max_tokens 600, temperature 0.7, reasoning_effort="none", three runs per prompt. A short Hallo warm-up precedes the measured prompts. The script includes emitted content and reasoning chunks; requested reasoning-off does not establish that reasoning was disabled in every backend/model. The harness computes (tokens - 1) / (stream_end - first_nonempty_content_time). It uses API completion_tokens when available and nonzero; otherwise it falls back to the number of nonempty streamed chunks. Raw records contain tokens, chunks, TTFT and generated text, but not the original usage object, finish_reason or total duration. Treat tokens as recorded output counts, with this usage/chunk fallback caveat. Chunk counts need not equal tokenizer token counts. Rates are the saved rounded client rates, not recalculated from TTFT. TTFT is end-to-end client latency, not native prefill duration. Prompts repeat identically across three repetitions; no nonce or explicit cache clear appears in the harness. Prefix-cache state/cached-token counts are unknown. These are not verified cold-prefill runs. A record of 600 equals the requested cap numerically, but finish_reason is not available. KV dtype, batching, microbatching, thread counts and exact GPU allocation are unreported. All 15 runs follow, in source repetition order. Fields: decode tokens/s; recorded output count; nonempty chunks; client TTFT seconds. German prose, Rhine geology (wissen_de), median 18.2 tokens/s: Run 0: 18.2 tokens/s; 459 output count; 458 chunks; TTFT 0.43 s. Run 1: 18.6 tokens/s; 423 output count; 422 chunks; TTFT 0.14 s. Run 2: 18.2 tokens/s; 426 output count; 425 chunks; TTFT 0.14 s. German prose, bead-based immunoassay (beads_de), median 18.5 tokens/s: Run 0: 18.5 tokens/s; 563 output count; 562 chunks; TTFT 0.25 s. Run 1: 17.7 tokens/s; 520 output count; 519 chunks; TTFT 0.17 s. Run 2: 18.7 tokens/s; 514 output count; 513 chunks; TTFT 0.16 s. English prose, Ruhr economy (prosa_en), median 18.8 tokens/s: Run 0: 18.7 tokens/s; 345 output count; 344 chunks; TTFT 0.25 s. Run 1: 18.8 tokens/s; 352 output count; 351 chunks; TTFT 0.14 s. Run 2: 18.9 tokens/s; 350 output count; 349 chunks; TTFT 0.14 s. Python ISO-8601 duration parser (code_py), median 18 tokens/s: Run 0: 18 tokens/s; 600 output count; 600 chunks; TTFT 0.31 s. Run 1: 18.7 tokens/s; 600 output count; 600 chunks; TTFT 0.15 s. Run 2: 17.1 tokens/s; 600 output count; 598 chunks; TTFT 0.17 s. JSON antigen/disease extraction (json_extr), median 18.2 tokens/s: Run 0: 18.2 tokens/s; 85 output count; 84 chunks; TTFT 0.36 s. Run 1: 18.2 tokens/s; 85 output count; 84 chunks; TTFT 0.13 s. Run 2: 18.4 tokens/s; 85 output count; 84 chunks; TTFT 0.13 s. Quality scope: The README reports the JSON task passed 3 of 3 automatic checks for this model. Prose/code quality was not generally graded. Throughput is not a quality score.

Oct 13, 2026

Gemma 4 26B (4B active)

M6 32GB · LM Studio · 80,128 ctx

Apple hardware
generation:
48.2 tokens/s

Reported by the source; GPU count, offloading and concurrent requests can change these figures. Prompt-processing speed is shown only when the source reports it; generation speed cannot tell us time to first token. Check the full setup before comparing.

Source: https://github.com/HDZucht/Mac-Mini-M6-LLM-benchmarks Raw measured rows: https://github.com/HDZucht/Mac-Mini-M6-LLM-benchmarks/blob/3990a8e0fa5f2762911689439ce12e1c28d4c989/data/speed_2026-10-03.jsonl Hardware/method/model labels: https://github.com/HDZucht/Mac-Mini-M6-LLM-benchmarks/blob/cb99870e05aa9f5783c5c6987ddd9154834123ab/README.md Loaded context metadata: https://github.com/HDZucht/Mac-Mini-M6-LLM-benchmarks/blob/main/data/loaded_context_2026-10-03.jsonl Harness: https://github.com/HDZucht/Mac-Mini-M6-LLM-benchmarks/blob/main/bench_speed.py Original author: HDZucht / Hans-Dieter Zucht, with repository-credited automated measurements by Argus. Campaign dated October 3–4, 2026; these exact records are in the October 3 raw file. No local reproduction was performed. Headline: 48.2 tokens/s is the median of three English-prose runs (Ruhr economy). It is client-observed streaming decode throughput, not a pooled rate, overall mean, peak, native kernel result or prompt-processing rate. Five workload medians and all 15 runs are preserved separately below. Hardware: Apple Mac mini M6 (Mac18,5), 12 CPU cores (2 Super, 4 Performance, 6 Efficiency), 12 GPU cores, 32 GB unified memory, macOS 27.0.1. One machine, one model loaded alone. Model storage: ORICO 2 TB external NVMe in an ASMedia ASM246x enclosure, source-reported 40 Gb/s PCIe 4.0 x4. Apple automatic fan control. Per-run temperature, clock, power, swap, exact GPU offload and peak resident memory were not logged. Exact measured API alias: google/gemma-4-26b-a4b-qat. Display model: Google Gemma 4 26B-A4B QAT. Gemma 4 26B-A4B QAT is named unambiguously at model/class level. Loaded context 80,128 is source metadata, not sufficient evidence on its own to assign the MLX backend. Source Format-column label: QAT. Exact measured quantization: unknown. Measured weight format: unknown; source label is not a confirmed weight container. Application: LM Studio. Backend: unreported for this alias. Exact app/backend versions are unknown. Do not turn QAT, MLX or Splash labels into an assumed Q4 quantization. The current exact LM Studio alias links both verified GGUF and MLX-4bit QAT collections. QAT is a training provenance label, not a quantization code. Neither available format can be assigned to this historical run merely from its alias. Current alias corroboration (not original run metadata): https://www.lmstudio.ai/models/google/gemma-4-26b-a4b-qat Verified public related package/collection: https://huggingface.co/lmstudio-community/gemma-4-26B-A4B-it-QAT-GGUF Verified public related package/collection: https://huggingface.co/lmstudio-community/gemma-4-26B-A4B-it-QAT-MLX-4bit Measured Hugging Face repository, filename, revision and hash are unrecorded. Public related-package links above prove availability only. Loaded context for this exact alias is 80,128 tokens. Requested load context was 32,768. Loaded capacity is not actual prompt length or a filled-context test. Actual input token counts are absent. Native prefill throughput/duration are unknown; keep PP and new-input-token fields blank. Method: one stream, max_tokens 600, temperature 0.7, reasoning_effort="none", three runs per prompt. A short Hallo warm-up precedes the measured prompts. The script includes emitted content and reasoning chunks; requested reasoning-off does not establish that reasoning was disabled in every backend/model. The harness computes (tokens - 1) / (stream_end - first_nonempty_content_time). It uses API completion_tokens when available and nonzero; otherwise it falls back to the number of nonempty streamed chunks. Raw records contain tokens, chunks, TTFT and generated text, but not the original usage object, finish_reason or total duration. Treat tokens as recorded output counts, with this usage/chunk fallback caveat. Chunk counts need not equal tokenizer token counts. Rates are the saved rounded client rates, not recalculated from TTFT. TTFT is end-to-end client latency, not native prefill duration. Prompts repeat identically across three repetitions; no nonce or explicit cache clear appears in the harness. Prefix-cache state/cached-token counts are unknown. These are not verified cold-prefill runs. A record of 600 equals the requested cap numerically, but finish_reason is not available. KV dtype, batching, microbatching, thread counts and exact GPU allocation are unreported. All 15 runs follow, in source repetition order. Fields: decode tokens/s; recorded output count; nonempty chunks; client TTFT seconds. German prose, Rhine geology (wissen_de), median 46.5 tokens/s: Run 0: 47.6 tokens/s; 429 output count; 428 chunks; TTFT 0.32 s. Run 1: 46 tokens/s; 454 output count; 453 chunks; TTFT 0.16 s. Run 2: 46.5 tokens/s; 410 output count; 409 chunks; TTFT 0.15 s. German prose, bead-based immunoassay (beads_de), median 45.5 tokens/s: Run 0: 46 tokens/s; 531 output count; 530 chunks; TTFT 0.3 s. Run 1: 45.4 tokens/s; 565 output count; 564 chunks; TTFT 0.17 s. Run 2: 45.5 tokens/s; 579 output count; 578 chunks; TTFT 0.17 s. English prose, Ruhr economy (prosa_en), median 48.2 tokens/s: Run 0: 46.5 tokens/s; 378 output count; 377 chunks; TTFT 0.25 s. Run 1: 48.2 tokens/s; 368 output count; 367 chunks; TTFT 0.1 s. Run 2: 48.9 tokens/s; 379 output count; 378 chunks; TTFT 0.2 s. Python ISO-8601 duration parser (code_py), median 47.8 tokens/s: Run 0: 47.8 tokens/s; 599 output count; 599 chunks; TTFT 0.35 s. Run 1: 48 tokens/s; 585 output count; 584 chunks; TTFT 0.16 s. Run 2: 47.5 tokens/s; 599 output count; 599 chunks; TTFT 0.17 s. JSON antigen/disease extraction (json_extr), median 53.3 tokens/s: Run 0: 53.2 tokens/s; 87 output count; 86 chunks; TTFT 0.42 s. Run 1: 53.3 tokens/s; 87 output count; 86 chunks; TTFT 0.23 s. Run 2: 53.4 tokens/s; 87 output count; 86 chunks; TTFT 0.24 s. Quality scope: The README reports the JSON task passed 3 of 3 automatic checks for this model. Prose/code quality was not generally graded. Throughput is not a quality score.

Oct 13, 2026

gpt-oss 21B (3.6B active)

M6 32GB · LM Studio · 32,768 ctx

Apple hardware
generation:
45.2 tokens/s

Reported by the source; GPU count, offloading and concurrent requests can change these figures. Prompt-processing speed is shown only when the source reports it; generation speed cannot tell us time to first token. Check the full setup before comparing.

Source: https://github.com/HDZucht/Mac-Mini-M6-LLM-benchmarks Raw measured rows: https://github.com/HDZucht/Mac-Mini-M6-LLM-benchmarks/blob/3990a8e0fa5f2762911689439ce12e1c28d4c989/data/speed_2026-10-03.jsonl Hardware/method/model labels: https://github.com/HDZucht/Mac-Mini-M6-LLM-benchmarks/blob/cb99870e05aa9f5783c5c6987ddd9154834123ab/README.md Loaded context metadata: https://github.com/HDZucht/Mac-Mini-M6-LLM-benchmarks/blob/main/data/loaded_context_2026-10-03.jsonl Harness: https://github.com/HDZucht/Mac-Mini-M6-LLM-benchmarks/blob/main/bench_speed.py Original author: HDZucht / Hans-Dieter Zucht, with repository-credited automated measurements by Argus. Campaign dated October 3–4, 2026; these exact records are in the October 3 raw file. No local reproduction was performed. Headline: 45.2 tokens/s is the median of three English-prose runs (Ruhr economy). It is client-observed streaming decode throughput, not a pooled rate, overall mean, peak, native kernel result or prompt-processing rate. Five workload medians and all 15 runs are preserved separately below. Hardware: Apple Mac mini M6 (Mac18,5), 12 CPU cores (2 Super, 4 Performance, 6 Efficiency), 12 GPU cores, 32 GB unified memory, macOS 27.0.1. One machine, one model loaded alone. Model storage: ORICO 2 TB external NVMe in an ASMedia ASM246x enclosure, source-reported 40 Gb/s PCIe 4.0 x4. Apple automatic fan control. Per-run temperature, clock, power, swap, exact GPU offload and peak resident memory were not logged. Exact measured API alias: openai/gpt-oss-20b. Display model: OpenAI GPT-OSS 20B. GPT-OSS 20B is clear at model-family level. Parameter count 20 is the nominal name, not an exact tensor count. Backend and quantization remain unknown. Source Format-column label: blank/unreported. Exact measured quantization: unknown. Measured weight format: unknown; source label is not a confirmed weight container. Application: LM Studio. Backend: unreported for this alias. Exact app/backend versions are unknown. Do not turn QAT, MLX or Splash labels into an assumed Q4 quantization. The current exact LM Studio alias links both a GGUF collection and an MLX MXFP4-Q8 package. Both pages were verified; this explicitly leaves the historical backend/format/quant selection unresolved. Native model-family MXFP4 information is not proof of the measured representation. Current alias corroboration (not original run metadata): https://www.lmstudio.ai/models/openai/gpt-oss-20b Verified public related package/collection: https://huggingface.co/lmstudio-community/gpt-oss-20b-GGUF Verified public related package/collection: https://huggingface.co/mlx-community/gpt-oss-20b-MXFP4-Q8 Measured Hugging Face repository, filename, revision and hash are unrecorded. Public related-package links above prove availability only. Loaded context for this exact alias is 32,768 tokens. Requested load context was 32,768. Loaded capacity is not actual prompt length or a filled-context test. Actual input token counts are absent. Native prefill throughput/duration are unknown; keep PP and new-input-token fields blank. Method: one stream, max_tokens 600, temperature 0.7, reasoning_effort="none", three runs per prompt. A short Hallo warm-up precedes the measured prompts. The script includes emitted content and reasoning chunks; requested reasoning-off does not establish that reasoning was disabled in every backend/model. The harness computes (tokens - 1) / (stream_end - first_nonempty_content_time). It uses API completion_tokens when available and nonzero; otherwise it falls back to the number of nonempty streamed chunks. Raw records contain tokens, chunks, TTFT and generated text, but not the original usage object, finish_reason or total duration. Treat tokens as recorded output counts, with this usage/chunk fallback caveat. Chunk counts need not equal tokenizer token counts. Rates are the saved rounded client rates, not recalculated from TTFT. TTFT is end-to-end client latency, not native prefill duration. Prompts repeat identically across three repetitions; no nonce or explicit cache clear appears in the harness. Prefix-cache state/cached-token counts are unknown. These are not verified cold-prefill runs. A record of 600 equals the requested cap numerically, but finish_reason is not available. KV dtype, batching, microbatching, thread counts and exact GPU allocation are unreported. All 15 runs follow, in source repetition order. Fields: decode tokens/s; recorded output count; nonempty chunks; client TTFT seconds. German prose, Rhine geology (wissen_de), median 44.7 tokens/s: Run 0: 44.1 tokens/s; 599 output count; 587 chunks; TTFT 0.55 s. Run 1: 44.7 tokens/s; 599 output count; 589 chunks; TTFT 0.52 s. Run 2: 44.9 tokens/s; 599 output count; 586 chunks; TTFT 0.55 s. German prose, bead-based immunoassay (beads_de), median 45.3 tokens/s: Run 0: 45.3 tokens/s; 599 output count; 589 chunks; TTFT 0.6 s. Run 1: 45.3 tokens/s; 599 output count; 585 chunks; TTFT 0.61 s. Run 2: 44.5 tokens/s; 599 output count; 588 chunks; TTFT 0.51 s. English prose, Ruhr economy (prosa_en), median 45.2 tokens/s: Run 0: 45.2 tokens/s; 411 output count; 397 chunks; TTFT 0.42 s. Run 1: 45.4 tokens/s; 459 output count; 445 chunks; TTFT 0.5 s. Run 2: 44.8 tokens/s; 456 output count; 440 chunks; TTFT 0.53 s. Python ISO-8601 duration parser (code_py), median 44.9 tokens/s: Run 0: 45 tokens/s; 481 output count; 458 chunks; TTFT 0.55 s. Run 1: 44.9 tokens/s; 588 output count; 562 chunks; TTFT 0.58 s. Run 2: 44.3 tokens/s; 599 output count; 575 chunks; TTFT 0.58 s. JSON antigen/disease extraction (json_extr), median 53.3 tokens/s: Run 0: 58.3 tokens/s; 107 output count; 95 chunks; TTFT 0.91 s. Run 1: 53.3 tokens/s; 127 output count; 113 chunks; TTFT 0.78 s. Run 2: 52.5 tokens/s; 132 output count; 122 chunks; TTFT 0.8 s. Quality scope: The README reports the JSON task passed 3 of 3 automatic checks for this model. Prose/code quality was not generally graded. Throughput is not a quality score.

Oct 13, 2026

Muse Glimmer

M6 32GB · LM Studio · 32,768 ctx

Apple hardware
generation:
8.6 tokens/s

Reported by the source; GPU count, offloading and concurrent requests can change these figures. Prompt-processing speed is shown only when the source reports it; generation speed cannot tell us time to first token. Check the full setup before comparing.

Source: https://github.com/HDZucht/Mac-Mini-M6-LLM-benchmarks Raw measured rows: https://github.com/HDZucht/Mac-Mini-M6-LLM-benchmarks/blob/3990a8e0fa5f2762911689439ce12e1c28d4c989/data/speed_2026-10-03.jsonl Hardware/method/model labels: https://github.com/HDZucht/Mac-Mini-M6-LLM-benchmarks/blob/cb99870e05aa9f5783c5c6987ddd9154834123ab/README.md Loaded context metadata: https://github.com/HDZucht/Mac-Mini-M6-LLM-benchmarks/blob/main/data/loaded_context_2026-10-03.jsonl Harness: https://github.com/HDZucht/Mac-Mini-M6-LLM-benchmarks/blob/main/bench_speed.py Original author: HDZucht / Hans-Dieter Zucht, with repository-credited automated measurements by Argus. Campaign dated October 3–4, 2026; these exact records are in the October 3 raw file. No local reproduction was performed. Headline: 8.6 tokens/s is the median of three English-prose runs (Ruhr economy). It is client-observed streaming decode throughput, not a pooled rate, overall mean, peak, native kernel result or prompt-processing rate. Five workload medians and all 15 runs are preserved separately below. Hardware: Apple Mac mini M6 (Mac18,5), 12 CPU cores (2 Super, 4 Performance, 6 Efficiency), 12 GPU cores, 32 GB unified memory, macOS 27.0.1. One machine, one model loaded alone. Model storage: ORICO 2 TB external NVMe in an ASMedia ASM246x enclosure, source-reported 40 Gb/s PCIe 4.0 x4. Apple automatic fan control. Per-run temperature, clock, power, swap, exact GPU offload and peak resident memory were not logged. Exact measured API alias: meta/muse-glimmer. Display model: Meta Muse Glimmer. Muse Glimmer identity is corroborated by the exact current LM Studio alias; the original table omits parameter count and format, so both historical fields remain blank. Source Format-column label: blank/unreported. Exact measured quantization: unknown. Measured weight format: unknown; source label is not a confirmed weight container. Application: LM Studio. Backend: unreported for this alias. Exact app/backend versions are unknown. Do not turn QAT, MLX or Splash labels into an assumed Q4 quantization. The current exact LM Studio alias identifies Muse Glimmer as the nominal 30B model and links the verified GGUF collection. The observed tree has a Q4_K_M target file, but the benchmark did not save that filename or quantization. No measured quant is inferred. Current alias corroboration (not original run metadata): https://www.lmstudio.ai/models/meta/muse-glimmer Verified public related package/collection: https://huggingface.co/lmstudio-community/Muse-Glimmer-30B-GGUF/tree/main Measured Hugging Face repository, filename, revision and hash are unrecorded. Public related-package links above prove availability only. Loaded context for this exact alias is 32,768 tokens. Requested load context was 32,768. Loaded capacity is not actual prompt length or a filled-context test. Actual input token counts are absent. Native prefill throughput/duration are unknown; keep PP and new-input-token fields blank. Method: one stream, max_tokens 600, temperature 0.7, reasoning_effort="none", three runs per prompt. A short Hallo warm-up precedes the measured prompts. The script includes emitted content and reasoning chunks; requested reasoning-off does not establish that reasoning was disabled in every backend/model. The harness computes (tokens - 1) / (stream_end - first_nonempty_content_time). It uses API completion_tokens when available and nonzero; otherwise it falls back to the number of nonempty streamed chunks. Raw records contain tokens, chunks, TTFT and generated text, but not the original usage object, finish_reason or total duration. Treat tokens as recorded output counts, with this usage/chunk fallback caveat. Chunk counts need not equal tokenizer token counts. Rates are the saved rounded client rates, not recalculated from TTFT. TTFT is end-to-end client latency, not native prefill duration. Prompts repeat identically across three repetitions; no nonce or explicit cache clear appears in the harness. Prefix-cache state/cached-token counts are unknown. These are not verified cold-prefill runs. A record of 600 equals the requested cap numerically, but finish_reason is not available. KV dtype, batching, microbatching, thread counts and exact GPU allocation are unreported. All 15 runs follow, in source repetition order. Fields: decode tokens/s; recorded output count; nonempty chunks; client TTFT seconds. German prose, Rhine geology (wissen_de), median 8.7 tokens/s: Run 0: 8.8 tokens/s; 600 output count; 597 chunks; TTFT 0.92 s. Run 1: 8.7 tokens/s; 600 output count; 597 chunks; TTFT 0.61 s. Run 2: 8.6 tokens/s; 600 output count; 597 chunks; TTFT 0.62 s. German prose, bead-based immunoassay (beads_de), median 8.7 tokens/s: Run 0: 8.7 tokens/s; 600 output count; 591 chunks; TTFT 0.93 s. Run 1: 8.6 tokens/s; 600 output count; 591 chunks; TTFT 0.67 s. Run 2: 8.7 tokens/s; 600 output count; 591 chunks; TTFT 0.64 s. English prose, Ruhr economy (prosa_en), median 8.6 tokens/s: Run 0: 8.6 tokens/s; 600 output count; 597 chunks; TTFT 0.93 s. Run 1: 8.6 tokens/s; 600 output count; 591 chunks; TTFT 0.62 s. Run 2: 8.6 tokens/s; 600 output count; 597 chunks; TTFT 0.63 s. Python ISO-8601 duration parser (code_py), median 8.6 tokens/s: Run 0: 8.6 tokens/s; 600 output count; 597 chunks; TTFT 1.06 s. Run 1: 8.6 tokens/s; 600 output count; 591 chunks; TTFT 0.62 s. Run 2: 8.6 tokens/s; 600 output count; 591 chunks; TTFT 0.62 s. JSON antigen/disease extraction (json_extr), median 8.6 tokens/s: Run 0: 8.8 tokens/s; 600 output count; 597 chunks; TTFT 1.05 s. Run 1: 8.6 tokens/s; 563 output count; 553 chunks; TTFT 0.62 s. Run 2: 8.6 tokens/s; 600 output count; 597 chunks; TTFT 0.63 s. Quality scope: The README reports the JSON task passed 0 of 3 automatic checks for this model. Raw JSON output counts are 600, 563 and 600; the 563-token run ends in a JSON object following reasoning. Therefore do not state that every run hit 600 or that no run emitted a complete JSON object. The author-scored failure is retained without regrading. Prose/code quality was not generally graded. Throughput is not a quality score.

Oct 13, 2026

Nemotron 3 Nano Omni

M6 32GB · LM Studio · 32,768 ctx

Apple hardware
generation:
45.0 tokens/s

Reported by the source; GPU count, offloading and concurrent requests can change these figures. Prompt-processing speed is shown only when the source reports it; generation speed cannot tell us time to first token. Check the full setup before comparing.

Source: https://github.com/HDZucht/Mac-Mini-M6-LLM-benchmarks Raw measured rows: https://github.com/HDZucht/Mac-Mini-M6-LLM-benchmarks/blob/3990a8e0fa5f2762911689439ce12e1c28d4c989/data/speed_2026-10-03.jsonl Hardware/method/model labels: https://github.com/HDZucht/Mac-Mini-M6-LLM-benchmarks/blob/cb99870e05aa9f5783c5c6987ddd9154834123ab/README.md Loaded context metadata: https://github.com/HDZucht/Mac-Mini-M6-LLM-benchmarks/blob/main/data/loaded_context_2026-10-03.jsonl Harness: https://github.com/HDZucht/Mac-Mini-M6-LLM-benchmarks/blob/main/bench_speed.py Original author: HDZucht / Hans-Dieter Zucht, with repository-credited automated measurements by Argus. Campaign dated October 3–4, 2026; these exact records are in the October 3 raw file. No local reproduction was performed. Headline: 45 tokens/s is the median of three English-prose runs (Ruhr economy). It is client-observed streaming decode throughput, not a pooled rate, overall mean, peak, native kernel result or prompt-processing rate. Five workload medians and all 15 runs are preserved separately below. Hardware: Apple Mac mini M6 (Mac18,5), 12 CPU cores (2 Super, 4 Performance, 6 Efficiency), 12 GPU cores, 32 GB unified memory, macOS 27.0.1. One machine, one model loaded alone. Model storage: ORICO 2 TB external NVMe in an ASMedia ASM246x enclosure, source-reported 40 Gb/s PCIe 4.0 x4. Apple automatic fan control. Per-run temperature, clock, power, swap, exact GPU offload and peak resident memory were not logged. Exact measured API alias: nvidia/nemotron-3-nano-omni. Display model: NVIDIA Nemotron 3 Nano Omni. The benchmark names the Nano Omni model, not Nemotron 3.5 Lightning. The nominal 30B-A3B family is corroborated by the current alias page, while the benchmark reports only 3B active. Total parameter field remains blank. Source Format-column label: blank/unreported. Exact measured quantization: unknown. Measured weight format: unknown; source label is not a confirmed weight container. Application: LM Studio. Backend: unreported for this alias. Exact app/backend versions are unknown. Do not turn QAT, MLX or Splash labels into an assumed Q4 quantization. The current exact LM Studio alias links the named GGUF collection. This corroborates model-family identity and public availability, but does not identify which quant/file, backend or revision was measured. Current alias corroboration (not original run metadata): https://www.lmstudio.ai/models/nvidia/nemotron-3-nano-omni Verified public related package/collection: https://huggingface.co/lmstudio-community/Nemotron-3-Nano-Omni-30B-A3B-Reasoning-GGUF Measured Hugging Face repository, filename, revision and hash are unrecorded. Public related-package links above prove availability only. Loaded context for this exact alias is 32,768 tokens. Requested load context was 32,768. Loaded capacity is not actual prompt length or a filled-context test. Actual input token counts are absent. Native prefill throughput/duration are unknown; keep PP and new-input-token fields blank. Method: one stream, max_tokens 600, temperature 0.7, reasoning_effort="none", three runs per prompt. A short Hallo warm-up precedes the measured prompts. The script includes emitted content and reasoning chunks; requested reasoning-off does not establish that reasoning was disabled in every backend/model. The harness computes (tokens - 1) / (stream_end - first_nonempty_content_time). It uses API completion_tokens when available and nonzero; otherwise it falls back to the number of nonempty streamed chunks. Raw records contain tokens, chunks, TTFT and generated text, but not the original usage object, finish_reason or total duration. Treat tokens as recorded output counts, with this usage/chunk fallback caveat. Chunk counts need not equal tokenizer token counts. Rates are the saved rounded client rates, not recalculated from TTFT. TTFT is end-to-end client latency, not native prefill duration. Prompts repeat identically across three repetitions; no nonce or explicit cache clear appears in the harness. Prefix-cache state/cached-token counts are unknown. These are not verified cold-prefill runs. A record of 600 equals the requested cap numerically, but finish_reason is not available. KV dtype, batching, microbatching, thread counts and exact GPU allocation are unreported. All 15 runs follow, in source repetition order. Fields: decode tokens/s; recorded output count; nonempty chunks; client TTFT seconds. German prose, Rhine geology (wissen_de), median 45 tokens/s: Run 0: 44.5 tokens/s; 489 output count; 487 chunks; TTFT 0.29 s. Run 1: 45 tokens/s; 545 output count; 543 chunks; TTFT 0.15 s. Run 2: 45.4 tokens/s; 475 output count; 473 chunks; TTFT 0.14 s. German prose, bead-based immunoassay (beads_de), median 45.1 tokens/s: Run 0: 45.1 tokens/s; 600 output count; 599 chunks; TTFT 0.31 s. Run 1: 44.5 tokens/s; 600 output count; 599 chunks; TTFT 0.13 s. Run 2: 45.1 tokens/s; 550 output count; 548 chunks; TTFT 0.15 s. English prose, Ruhr economy (prosa_en), median 45 tokens/s: Run 0: 44.4 tokens/s; 353 output count; 351 chunks; TTFT 0.31 s. Run 1: 45.3 tokens/s; 388 output count; 386 chunks; TTFT 0.13 s. Run 2: 45 tokens/s; 371 output count; 369 chunks; TTFT 0.12 s. Python ISO-8601 duration parser (code_py), median 45 tokens/s: Run 0: 45 tokens/s; 600 output count; 599 chunks; TTFT 0.36 s. Run 1: 45 tokens/s; 600 output count; 599 chunks; TTFT 0.19 s. Run 2: 45.4 tokens/s; 357 output count; 355 chunks; TTFT 0.13 s. JSON antigen/disease extraction (json_extr), median 45.9 tokens/s: Run 0: 45.2 tokens/s; 56 output count; 54 chunks; TTFT 0.39 s. Run 1: 46 tokens/s; 60 output count; 58 chunks; TTFT 0.08 s. Run 2: 45.9 tokens/s; 56 output count; 54 chunks; TTFT 0.08 s. Quality scope: The README reports the JSON task passed 3 of 3 automatic checks for this model. Prose/code quality was not generally graded. Throughput is not a quality score.

Oct 13, 2026

Ornith1.5 35B (3B active) Splash

M6 32GB · LM Studio · 32,768 ctx

Apple hardware
generation:
61.5 tokens/s

Reported by the source; GPU count, offloading and concurrent requests can change these figures. Prompt-processing speed is shown only when the source reports it; generation speed cannot tell us time to first token. Check the full setup before comparing.

Source: https://github.com/HDZucht/Mac-Mini-M6-LLM-benchmarks Raw measured rows: https://github.com/HDZucht/Mac-Mini-M6-LLM-benchmarks/blob/3990a8e0fa5f2762911689439ce12e1c28d4c989/data/speed_2026-10-03.jsonl Hardware/method/model labels: https://github.com/HDZucht/Mac-Mini-M6-LLM-benchmarks/blob/cb99870e05aa9f5783c5c6987ddd9154834123ab/README.md Loaded context metadata: https://github.com/HDZucht/Mac-Mini-M6-LLM-benchmarks/blob/main/data/loaded_context_2026-10-03.jsonl Harness: https://github.com/HDZucht/Mac-Mini-M6-LLM-benchmarks/blob/main/bench_speed.py Original author: HDZucht / Hans-Dieter Zucht, with repository-credited automated measurements by Argus. Campaign dated October 3–4, 2026; these exact records are in the October 3 raw file. No local reproduction was performed. Headline: 61.5 tokens/s is the median of three English-prose runs (Ruhr economy). It is client-observed streaming decode throughput, not a pooled rate, overall mean, peak, native kernel result or prompt-processing rate. Five workload medians and all 15 runs are preserved separately below. Hardware: Apple Mac mini M6 (Mac18,5), 12 CPU cores (2 Super, 4 Performance, 6 Efficiency), 12 GPU cores, 32 GB unified memory, macOS 27.0.1. One machine, one model loaded alone. Model storage: ORICO 2 TB external NVMe in an ASMedia ASM246x enclosure, source-reported 40 Gb/s PCIe 4.0 x4. Apple automatic fan control. Per-run temperature, clock, power, swap, exact GPU offload and peak resident memory were not logged. Exact measured API alias: ornith-1.5-35b-a3b-splash. Display model: Ornith 1.5 35B-A3B. The source names Ornith 1.5 separately from the base Qwen family and compares its Splash and GGUF aliases. Exact equivalence of their weights is unverified. Source Format-column label: Splash. Exact measured quantization: unknown. Measured weight format: unknown; source label is not a confirmed weight container. Application: LM Studio. Backend: Splash. Exact app/backend versions are unknown. Do not turn QAT, MLX or Splash labels into an assumed Q4 quantization. A matching community Ornith Splash package is public. Its card describes a packed 4-bit conversion; the source alias does not identify this publisher or exact package. Do not populate measured quantization from it. Verified public related package/collection: https://huggingface.co/ezoushen/ornith-1.5-35b-a3b-splash Measured Hugging Face repository, filename, revision and hash are unrecorded. Public related-package links above prove availability only. The source identifies Splash speculative decoding with DFlash2 drafts. This is not evidence of a native MTP head setting. Exact draft checkpoint/version, target quantization and package manifest are unknown. The three Splash aliases are preserved as separate author-measured configurations, not pooled or assumed to share identical weights. Loaded context for this exact alias is 32,768 tokens. Requested load context was 32,768. Loaded capacity is not actual prompt length or a filled-context test. Actual input token counts are absent. Native prefill throughput/duration are unknown; keep PP and new-input-token fields blank. Method: one stream, max_tokens 600, temperature 0.7, reasoning_effort="none", three runs per prompt. A short Hallo warm-up precedes the measured prompts. The script includes emitted content and reasoning chunks; requested reasoning-off does not establish that reasoning was disabled in every backend/model. The harness computes (tokens - 1) / (stream_end - first_nonempty_content_time). It uses API completion_tokens when available and nonzero; otherwise it falls back to the number of nonempty streamed chunks. Raw records contain tokens, chunks, TTFT and generated text, but not the original usage object, finish_reason or total duration. Treat tokens as recorded output counts, with this usage/chunk fallback caveat. Chunk counts need not equal tokenizer token counts. Rates are the saved rounded client rates, not recalculated from TTFT. TTFT is end-to-end client latency, not native prefill duration. Prompts repeat identically across three repetitions; no nonce or explicit cache clear appears in the harness. Prefix-cache state/cached-token counts are unknown. These are not verified cold-prefill runs. A record of 600 equals the requested cap numerically, but finish_reason is not available. KV dtype, batching, microbatching, thread counts and exact GPU allocation are unreported. All 15 runs follow, in source repetition order. Fields: decode tokens/s; recorded output count; nonempty chunks; client TTFT seconds. German prose, Rhine geology (wissen_de), median 52.6 tokens/s: Run 0: 51.7 tokens/s; 537 output count; 536 chunks; TTFT 0.17 s. Run 1: 54.1 tokens/s; 537 output count; 536 chunks; TTFT 0.1 s. Run 2: 52.6 tokens/s; 530 output count; 529 chunks; TTFT 0.09 s. German prose, bead-based immunoassay (beads_de), median 59.7 tokens/s: Run 0: 57.2 tokens/s; 600 output count; 600 chunks; TTFT 0.17 s. Run 1: 59.7 tokens/s; 600 output count; 600 chunks; TTFT 0.1 s. Run 2: 64 tokens/s; 600 output count; 600 chunks; TTFT 0.1 s. English prose, Ruhr economy (prosa_en), median 61.5 tokens/s: Run 0: 64.7 tokens/s; 485 output count; 484 chunks; TTFT 0.15 s. Run 1: 59.4 tokens/s; 468 output count; 467 chunks; TTFT 0.08 s. Run 2: 61.5 tokens/s; 473 output count; 472 chunks; TTFT 0.08 s. Python ISO-8601 duration parser (code_py), median 119.9 tokens/s: Run 0: 119.9 tokens/s; 531 output count; 530 chunks; TTFT 0.17 s. Run 1: 124.6 tokens/s; 600 output count; 600 chunks; TTFT 0.12 s. Run 2: 117.5 tokens/s; 600 output count; 600 chunks; TTFT 0.12 s. JSON antigen/disease extraction (json_extr), median 142.6 tokens/s: Run 0: 142.6 tokens/s; 50 output count; 49 chunks; TTFT 0.2 s. Run 1: 139.5 tokens/s; 50 output count; 49 chunks; TTFT 0.12 s. Run 2: 198.3 tokens/s; 65 output count; 64 chunks; TTFT 0.11 s. Quality scope: The README reports the JSON task passed 3 of 3 automatic checks for this model. Prose/code quality was not generally graded. Throughput is not a quality score.

Oct 13, 2026

Qwen3.8 27B Splash

M6 32GB · LM Studio · 32,768 ctx

Apple hardware
generation:
20.2 tokens/s

Reported by the source; GPU count, offloading and concurrent requests can change these figures. Prompt-processing speed is shown only when the source reports it; generation speed cannot tell us time to first token. Check the full setup before comparing.

Source: https://github.com/HDZucht/Mac-Mini-M6-LLM-benchmarks Raw measured rows: https://github.com/HDZucht/Mac-Mini-M6-LLM-benchmarks/blob/3990a8e0fa5f2762911689439ce12e1c28d4c989/data/speed_2026-10-03.jsonl Hardware/method/model labels: https://github.com/HDZucht/Mac-Mini-M6-LLM-benchmarks/blob/cb99870e05aa9f5783c5c6987ddd9154834123ab/README.md Loaded context metadata: https://github.com/HDZucht/Mac-Mini-M6-LLM-benchmarks/blob/main/data/loaded_context_2026-10-03.jsonl Harness: https://github.com/HDZucht/Mac-Mini-M6-LLM-benchmarks/blob/main/bench_speed.py Original author: HDZucht / Hans-Dieter Zucht, with repository-credited automated measurements by Argus. Campaign dated October 3–4, 2026; these exact records are in the October 3 raw file. No local reproduction was performed. Headline: 20.2 tokens/s is the median of three English-prose runs (Ruhr economy). It is client-observed streaming decode throughput, not a pooled rate, overall mean, peak, native kernel result or prompt-processing rate. Five workload medians and all 15 runs are preserved separately below. Hardware: Apple Mac mini M6 (Mac18,5), 12 CPU cores (2 Super, 4 Performance, 6 Efficiency), 12 GPU cores, 32 GB unified memory, macOS 27.0.1. One machine, one model loaded alone. Model storage: ORICO 2 TB external NVMe in an ASMedia ASM246x enclosure, source-reported 40 Gb/s PCIe 4.0 x4. Apple automatic fan control. Per-run temperature, clock, power, swap, exact GPU offload and peak resident memory were not logged. Exact measured API alias: qwen3.8-27b-splash. Display model: Qwen3.8-27B. The author separates this Splash alias from Qwen3.8 GGUF and Swift-Qwen3.8 Splash. Do not infer that differently named aliases use identical weights or only differ by engine. Source Format-column label: Splash. Exact measured quantization: unknown. Measured weight format: unknown; source label is not a confirmed weight container. Application: LM Studio. Backend: Splash. Exact app/backend versions are unknown. Do not turn QAT, MLX or Splash labels into an assumed Q4 quantization. An official Qwen3.8 Splash package is publicly available with a packed 4-bit target and DFlash 2 draft. This availability does not establish the package, bit width, revision or hash actually used by the author. Verified public related package/collection: https://huggingface.co/incoai/Qwen3.8-27B-Splash/tree/main Measured Hugging Face repository, filename, revision and hash are unrecorded. Public related-package links above prove availability only. The source identifies Splash speculative decoding with DFlash2 drafts. This is not evidence of a native MTP head setting. Exact draft checkpoint/version, target quantization and package manifest are unknown. The three Splash aliases are preserved as separate author-measured configurations, not pooled or assumed to share identical weights. Loaded context for this exact alias is 32,768 tokens. Requested load context was 32,768. Loaded capacity is not actual prompt length or a filled-context test. Actual input token counts are absent. Native prefill throughput/duration are unknown; keep PP and new-input-token fields blank. Method: one stream, max_tokens 600, temperature 0.7, reasoning_effort="none", three runs per prompt. A short Hallo warm-up precedes the measured prompts. The script includes emitted content and reasoning chunks; requested reasoning-off does not establish that reasoning was disabled in every backend/model. The harness computes (tokens - 1) / (stream_end - first_nonempty_content_time). It uses API completion_tokens when available and nonzero; otherwise it falls back to the number of nonempty streamed chunks. Raw records contain tokens, chunks, TTFT and generated text, but not the original usage object, finish_reason or total duration. Treat tokens as recorded output counts, with this usage/chunk fallback caveat. Chunk counts need not equal tokenizer token counts. Rates are the saved rounded client rates, not recalculated from TTFT. TTFT is end-to-end client latency, not native prefill duration. Prompts repeat identically across three repetitions; no nonce or explicit cache clear appears in the harness. Prefix-cache state/cached-token counts are unknown. These are not verified cold-prefill runs. A record of 600 equals the requested cap numerically, but finish_reason is not available. KV dtype, batching, microbatching, thread counts and exact GPU allocation are unreported. All 15 runs follow, in source repetition order. Fields: decode tokens/s; recorded output count; nonempty chunks; client TTFT seconds. German prose, Rhine geology (wissen_de), median 15.3 tokens/s: Run 0: 14.3 tokens/s; 516 output count; 515 chunks; TTFT 0.42 s. Run 1: 16.1 tokens/s; 575 output count; 574 chunks; TTFT 0.29 s. Run 2: 15.3 tokens/s; 600 output count; 599 chunks; TTFT 0.27 s. German prose, bead-based immunoassay (beads_de), median 17.2 tokens/s: Run 0: 17.6 tokens/s; 538 output count; 537 chunks; TTFT 2.69 s. Run 1: 17 tokens/s; 502 output count; 501 chunks; TTFT 0.29 s. Run 2: 17.2 tokens/s; 562 output count; 561 chunks; TTFT 0.27 s. English prose, Ruhr economy (prosa_en), median 20.2 tokens/s: Run 0: 20.6 tokens/s; 461 output count; 460 chunks; TTFT 1.78 s. Run 1: 20.2 tokens/s; 479 output count; 478 chunks; TTFT 0.28 s. Run 2: 20 tokens/s; 476 output count; 475 chunks; TTFT 0.27 s. Python ISO-8601 duration parser (code_py), median 45.2 tokens/s: Run 0: 40.1 tokens/s; 600 output count; 600 chunks; TTFT 0.4 s. Run 1: 45.2 tokens/s; 600 output count; 600 chunks; TTFT 2.25 s. Run 2: 52.1 tokens/s; 571 output count; 570 chunks; TTFT 1.92 s. JSON antigen/disease extraction (json_extr), median 67.7 tokens/s: Run 0: 68.2 tokens/s; 87 output count; 86 chunks; TTFT 0.48 s. Run 1: 67.7 tokens/s; 87 output count; 86 chunks; TTFT 0.27 s. Run 2: 67.6 tokens/s; 87 output count; 86 chunks; TTFT 0.27 s. Quality scope: The README reports the JSON task passed 3 of 3 automatic checks for this model. Prose/code quality was not generally graded. Throughput is not a quality score.

Oct 13, 2026

Qwen3.8 27B Swift Splash

M6 32GB · LM Studio · 32,768 ctx

Apple hardware
generation:
19.5 tokens/s

Reported by the source; GPU count, offloading and concurrent requests can change these figures. Prompt-processing speed is shown only when the source reports it; generation speed cannot tell us time to first token. Check the full setup before comparing.

Source: https://github.com/HDZucht/Mac-Mini-M6-LLM-benchmarks Raw measured rows: https://github.com/HDZucht/Mac-Mini-M6-LLM-benchmarks/blob/3990a8e0fa5f2762911689439ce12e1c28d4c989/data/speed_2026-10-03.jsonl Hardware/method/model labels: https://github.com/HDZucht/Mac-Mini-M6-LLM-benchmarks/blob/cb99870e05aa9f5783c5c6987ddd9154834123ab/README.md Loaded context metadata: https://github.com/HDZucht/Mac-Mini-M6-LLM-benchmarks/blob/main/data/loaded_context_2026-10-03.jsonl Harness: https://github.com/HDZucht/Mac-Mini-M6-LLM-benchmarks/blob/main/bench_speed.py Original author: HDZucht / Hans-Dieter Zucht, with repository-credited automated measurements by Argus. Campaign dated October 3–4, 2026; these exact records are in the October 3 raw file. No local reproduction was performed. Headline: 19.5 tokens/s is the median of three English-prose runs (Ruhr economy). It is client-observed streaming decode throughput, not a pooled rate, overall mean, peak, native kernel result or prompt-processing rate. Five workload medians and all 15 runs are preserved separately below. Hardware: Apple Mac mini M6 (Mac18,5), 12 CPU cores (2 Super, 4 Performance, 6 Efficiency), 12 GPU cores, 32 GB unified memory, macOS 27.0.1. One machine, one model loaded alone. Model storage: ORICO 2 TB external NVMe in an ASMedia ASM246x enclosure, source-reported 40 Gb/s PCIe 4.0 x4. Apple automatic fan control. Per-run temperature, clock, power, swap, exact GPU offload and peak resident memory were not logged. Exact measured API alias: swift-qwen3.8-27b-splash. Display model: Swift-Qwen3.8-27B. The author lists Swift-Qwen3.8 as a separate dense 27B model from Qwen3.8. Keep the alias as its own source configuration; exact target/fine-tune revision is unverified. Source Format-column label: Splash. Exact measured quantization: unknown. Measured weight format: unknown; source label is not a confirmed weight container. Application: LM Studio. Backend: Splash. Exact app/backend versions are unknown. Do not turn QAT, MLX or Splash labels into an assumed Q4 quantization. A matching Swift-Qwen3.8 Splash package is publicly available. Its card describes a distinct Swift target and a packed 4-bit package; the benchmark does not record a repository, manifest or hash, so those quantization details are not assigned to this measurement. Verified public related package/collection: https://huggingface.co/SiliconSpecies/Swift-Qwen3.8-27B-Splash Measured Hugging Face repository, filename, revision and hash are unrecorded. Public related-package links above prove availability only. The source identifies Splash speculative decoding with DFlash2 drafts. This is not evidence of a native MTP head setting. Exact draft checkpoint/version, target quantization and package manifest are unknown. The three Splash aliases are preserved as separate author-measured configurations, not pooled or assumed to share identical weights. Loaded context for this exact alias is 32,768 tokens. Requested load context was 32,768. Loaded capacity is not actual prompt length or a filled-context test. Actual input token counts are absent. Native prefill throughput/duration are unknown; keep PP and new-input-token fields blank. Method: one stream, max_tokens 600, temperature 0.7, reasoning_effort="none", three runs per prompt. A short Hallo warm-up precedes the measured prompts. The script includes emitted content and reasoning chunks; requested reasoning-off does not establish that reasoning was disabled in every backend/model. The harness computes (tokens - 1) / (stream_end - first_nonempty_content_time). It uses API completion_tokens when available and nonzero; otherwise it falls back to the number of nonempty streamed chunks. Raw records contain tokens, chunks, TTFT and generated text, but not the original usage object, finish_reason or total duration. Treat tokens as recorded output counts, with this usage/chunk fallback caveat. Chunk counts need not equal tokenizer token counts. Rates are the saved rounded client rates, not recalculated from TTFT. TTFT is end-to-end client latency, not native prefill duration. Prompts repeat identically across three repetitions; no nonce or explicit cache clear appears in the harness. Prefix-cache state/cached-token counts are unknown. These are not verified cold-prefill runs. A record of 600 equals the requested cap numerically, but finish_reason is not available. KV dtype, batching, microbatching, thread counts and exact GPU allocation are unreported. All 15 runs follow, in source repetition order. Fields: decode tokens/s; recorded output count; nonempty chunks; client TTFT seconds. German prose, Rhine geology (wissen_de), median 15.4 tokens/s: Run 0: 15.2 tokens/s; 578 output count; 577 chunks; TTFT 0.42 s. Run 1: 16 tokens/s; 546 output count; 545 chunks; TTFT 0.29 s. Run 2: 15.4 tokens/s; 542 output count; 541 chunks; TTFT 0.28 s. German prose, bead-based immunoassay (beads_de), median 15.9 tokens/s: Run 0: 15.9 tokens/s; 529 output count; 528 chunks; TTFT 1.71 s. Run 1: 16.2 tokens/s; 530 output count; 529 chunks; TTFT 0.31 s. Run 2: 15.3 tokens/s; 562 output count; 561 chunks; TTFT 0.31 s. English prose, Ruhr economy (prosa_en), median 19.5 tokens/s: Run 0: 19.3 tokens/s; 487 output count; 486 chunks; TTFT 0.49 s. Run 1: 19.5 tokens/s; 480 output count; 479 chunks; TTFT 0.32 s. Run 2: 20.1 tokens/s; 449 output count; 448 chunks; TTFT 1.58 s. Python ISO-8601 duration parser (code_py), median 42.9 tokens/s: Run 0: 44.9 tokens/s; 480 output count; 479 chunks; TTFT 0.44 s. Run 1: 42.9 tokens/s; 367 output count; 366 chunks; TTFT 0.3 s. Run 2: 38.3 tokens/s; 600 output count; 600 chunks; TTFT 0.29 s. JSON antigen/disease extraction (json_extr), median 66.5 tokens/s: Run 0: 66.5 tokens/s; 87 output count; 86 chunks; TTFT 0.49 s. Run 1: 62.7 tokens/s; 82 output count; 81 chunks; TTFT 0.27 s. Run 2: 66.8 tokens/s; 87 output count; 86 chunks; TTFT 0.27 s. Quality scope: The README reports the JSON task passed 3 of 3 automatic checks for this model. Prose/code quality was not generally graded. Throughput is not a quality score.

Oct 13, 2026

Qwen3.8 27B

M6 32GB · LM Studio · 32,768 ctx

Apple hardware
generation:
11.8 tokens/s
quant:
Q4_K_M (GGUF)

Reported by the source; GPU count, offloading and concurrent requests can change these figures. Prompt-processing speed is shown only when the source reports it; generation speed cannot tell us time to first token. Check the full setup before comparing.

Source: https://github.com/HDZucht/Mac-Mini-M6-LLM-benchmarks Raw measured rows: https://github.com/HDZucht/Mac-Mini-M6-LLM-benchmarks/blob/3990a8e0fa5f2762911689439ce12e1c28d4c989/data/speed_2026-10-03.jsonl Quantization/hardware/method README: https://github.com/HDZucht/Mac-Mini-M6-LLM-benchmarks/blob/cb99870e05aa9f5783c5c6987ddd9154834123ab/README.md Loaded context metadata: https://github.com/HDZucht/Mac-Mini-M6-LLM-benchmarks/blob/main/data/loaded_context_2026-10-03.jsonl Original author measurements dated October 3–4, 2026, recovered and checked October 13. The raw file has 240 measured rows plus one separate error record. This report includes only the 15 runs for the exact model alias below. No local reproduction was performed. Headline: 11.8 tokens/s is the median of three English-prose runs (Ruhr economy prompt). It is client-observed streaming decode throughput. It is not an overall mean, pooled throughput, peak speed, native kernel benchmark or prefill throughput. Other workloads are kept separate. Hardware: Apple Mac mini M6, Mac18,5, 12 CPU cores (2 Super + 4 Performance + 6 Efficiency), 12 GPU cores, 32 GB unified memory, macOS 27.0.1. One computer; one model loaded alone. Models were stored on an ORICO 2 TB external NVMe with an ASMedia ASM246x enclosure (source reports 40 Gb/s, PCIe 4.0 x4). Fan control was Apple automatic. Per-run temperature, clock, power, swap, peak resident RAM and exact GPU offload are not reported. Measured model alias: qwen/qwen3.8-27b. Source quantization: GGUF Q4_K_M. Runtime: LM Studio using its llama.cpp GGUF backend; exact application and backend versions/builds are not recorded. The model name/parameter class is source-reported, not an independently counted tensor total. The benchmark identifies this model alias and quantization but not its GGUF filename, Hugging Face publisher/repository, revision or hash. No model link is guessed from the base model or from a similarly named quant. Loaded context is verified as 32,768 tokens for this exact alias in loaded_context_2026-10-03.jsonl. This is allocated/loaded capacity, not a filled prompt length. Actual prompt token counts are not retained. Native prompt-processing rate and prefill duration are unknown and the PP field must stay blank. Method: one stream, max_tokens 600, temperature 0.7, reasoning_effort="none", three repetitions for each of five prompts. The script first sends a short Hallo warm-up request, then uses the OpenAI-compatible chat-completions stream. Thinking tokens count if a model emits them anyway. Requested reasoning-off is not independent proof that all model reasoning was disabled. MTP/speculative settings for these ordinary GGUF rows, KV type, batch/microbatch sizes and thread counts are not recorded. The harness computes decode_tps = (tokens - 1) / (stream_end - first_nonempty_content_time). tokens uses API completion_tokens when present, with a nonempty-stream-chunk-count fallback. The saved record includes both tokens and chunks, but not the original usage object, total elapsed time or finish_reason. Values below are the saved, rounded client rates; token counts are preserved as recorded. They are not re-derived from TTFT. TTFT is client wall latency, not native prefill time. Prompts repeat between the three runs; there is no nonce or explicit cache clearing in this script. Prefix-cache state and cached-token counts are unknown, so do not call these cold-prefill tests. Runs at 600 recorded output tokens reached the requested ceiling numerically; finish_reason was not saved. All 15 runs follow. Each run is shown as decode tokens/s; recorded output tokens; nonempty stream chunks; client TTFT seconds. Repetition order is 0, 1, 2. German prose, Rhine geology (wissen_de), median 11.2 tokens/s: Run 0: 11.2 tokens/s; 546 output tokens; 545 chunks; TTFT 0.79 s. Run 1: 11.7 tokens/s; 600 output tokens; 600 chunks; TTFT 0.26 s. Run 2: 11 tokens/s; 543 output tokens; 542 chunks; TTFT 0.29 s. German prose, bead-based immunoassay (beads_de), median 11.4 tokens/s: Run 0: 11.4 tokens/s; 600 output tokens; 600 chunks; TTFT 0.7 s. Run 1: 11.4 tokens/s; 590 output tokens; 589 chunks; TTFT 0.27 s. Run 2: 10.6 tokens/s; 549 output tokens; 548 chunks; TTFT 0.24 s. English prose, Ruhr economy (prosa_en), median 11.8 tokens/s: Run 0: 11.8 tokens/s; 406 output tokens; 405 chunks; TTFT 0.69 s. Run 1: 11.6 tokens/s; 413 output tokens; 412 chunks; TTFT 0.25 s. Run 2: 12 tokens/s; 448 output tokens; 447 chunks; TTFT 0.25 s. Python ISO-8601 duration parser (code_py), median 17.5 tokens/s: Run 0: 17.7 tokens/s; 580 output tokens; 579 chunks; TTFT 0.73 s. Run 1: 17 tokens/s; 443 output tokens; 442 chunks; TTFT 0.31 s. Run 2: 17.5 tokens/s; 542 output tokens; 541 chunks; TTFT 0.31 s. JSON antigen/disease extraction (json_extr), median 19.3 tokens/s: Run 0: 19.3 tokens/s; 87 output tokens; 86 chunks; TTFT 0.82 s. Run 1: 19.2 tokens/s; 87 output tokens; 86 chunks; TTFT 0.25 s. Run 2: 19.3 tokens/s; 87 output tokens; 86 chunks; TTFT 0.2 s. Quality scope: these tables measure speed. The author reports the JSON task passed all three runs for this model, with automated checking; prose/code quality was not generally graded. Do not infer broader task accuracy from throughput.

Oct 13, 2026

Ornith1.5 35B (3B active)

M6 32GB · LM Studio · 32,768 ctx

Apple hardware
generation:
43.7 tokens/s
quant:
Q4_K_M (GGUF)

Reported by the source; GPU count, offloading and concurrent requests can change these figures. Prompt-processing speed is shown only when the source reports it; generation speed cannot tell us time to first token. Check the full setup before comparing.

Source: https://github.com/HDZucht/Mac-Mini-M6-LLM-benchmarks Raw measured rows: https://github.com/HDZucht/Mac-Mini-M6-LLM-benchmarks/blob/3990a8e0fa5f2762911689439ce12e1c28d4c989/data/speed_2026-10-03.jsonl Quantization/hardware/method README: https://github.com/HDZucht/Mac-Mini-M6-LLM-benchmarks/blob/cb99870e05aa9f5783c5c6987ddd9154834123ab/README.md Loaded context metadata: https://github.com/HDZucht/Mac-Mini-M6-LLM-benchmarks/blob/main/data/loaded_context_2026-10-03.jsonl Original author measurements dated October 3–4, 2026, recovered and checked October 13. The raw file has 240 measured rows plus one separate error record. This report includes only the 15 runs for the exact model alias below. No local reproduction was performed. Headline: 43.7 tokens/s is the median of three English-prose runs (Ruhr economy prompt). It is client-observed streaming decode throughput. It is not an overall mean, pooled throughput, peak speed, native kernel benchmark or prefill throughput. Other workloads are kept separate. Hardware: Apple Mac mini M6, Mac18,5, 12 CPU cores (2 Super + 4 Performance + 6 Efficiency), 12 GPU cores, 32 GB unified memory, macOS 27.0.1. One computer; one model loaded alone. Models were stored on an ORICO 2 TB external NVMe with an ASMedia ASM246x enclosure (source reports 40 Gb/s, PCIe 4.0 x4). Fan control was Apple automatic. Per-run temperature, clock, power, swap, peak resident RAM and exact GPU offload are not reported. Measured model alias: ornith-1.5-35b-a3b. Source quantization: GGUF Q4_K_M. Runtime: LM Studio using its llama.cpp GGUF backend; exact application and backend versions/builds are not recorded. The model name/parameter class is source-reported, not an independently counted tensor total. The benchmark identifies this model alias and quantization but not its GGUF filename, Hugging Face publisher/repository, revision or hash. No model link is guessed from the base model or from a similarly named quant. Loaded context is verified as 32,768 tokens for this exact alias in loaded_context_2026-10-03.jsonl. This is allocated/loaded capacity, not a filled prompt length. Actual prompt token counts are not retained. Native prompt-processing rate and prefill duration are unknown and the PP field must stay blank. Method: one stream, max_tokens 600, temperature 0.7, reasoning_effort="none", three repetitions for each of five prompts. The script first sends a short Hallo warm-up request, then uses the OpenAI-compatible chat-completions stream. Thinking tokens count if a model emits them anyway. Requested reasoning-off is not independent proof that all model reasoning was disabled. MTP/speculative settings for these ordinary GGUF rows, KV type, batch/microbatch sizes and thread counts are not recorded. The harness computes decode_tps = (tokens - 1) / (stream_end - first_nonempty_content_time). tokens uses API completion_tokens when present, with a nonempty-stream-chunk-count fallback. The saved record includes both tokens and chunks, but not the original usage object, total elapsed time or finish_reason. Values below are the saved, rounded client rates; token counts are preserved as recorded. They are not re-derived from TTFT. TTFT is client wall latency, not native prefill time. Prompts repeat between the three runs; there is no nonce or explicit cache clearing in this script. Prefix-cache state and cached-token counts are unknown, so do not call these cold-prefill tests. Runs at 600 recorded output tokens reached the requested ceiling numerically; finish_reason was not saved. All 15 runs follow. Each run is shown as decode tokens/s; recorded output tokens; nonempty stream chunks; client TTFT seconds. Repetition order is 0, 1, 2. German prose, Rhine geology (wissen_de), median 37.6 tokens/s: Run 0: 38.7 tokens/s; 526 output tokens; 525 chunks; TTFT 0.35 s. Run 1: 37.1 tokens/s; 450 output tokens; 449 chunks; TTFT 0.11 s. Run 2: 37.6 tokens/s; 517 output tokens; 516 chunks; TTFT 0.09 s. German prose, bead-based immunoassay (beads_de), median 41.2 tokens/s: Run 0: 41 tokens/s; 600 output tokens; 600 chunks; TTFT 0.22 s. Run 1: 41.2 tokens/s; 533 output tokens; 532 chunks; TTFT 0.08 s. Run 2: 41.9 tokens/s; 600 output tokens; 600 chunks; TTFT 0.12 s. English prose, Ruhr economy (prosa_en), median 43.7 tokens/s: Run 0: 40.6 tokens/s; 410 output tokens; 409 chunks; TTFT 0.18 s. Run 1: 43.7 tokens/s; 479 output tokens; 478 chunks; TTFT 0.1 s. Run 2: 44.5 tokens/s; 470 output tokens; 469 chunks; TTFT 0.08 s. Python ISO-8601 duration parser (code_py), median 59.3 tokens/s: Run 0: 55.4 tokens/s; 398 output tokens; 397 chunks; TTFT 0.21 s. Run 1: 59.3 tokens/s; 576 output tokens; 575 chunks; TTFT 0.1 s. Run 2: 60.7 tokens/s; 487 output tokens; 486 chunks; TTFT 0.16 s. JSON antigen/disease extraction (json_extr), median 53.8 tokens/s: Run 0: 60.2 tokens/s; 66 output tokens; 65 chunks; TTFT 0.22 s. Run 1: 53.8 tokens/s; 215 output tokens; 214 chunks; TTFT 0.05 s. Run 2: 50.7 tokens/s; 213 output tokens; 212 chunks; TTFT 0.09 s. Quality scope: these tables measure speed. The author reports the JSON task passed all three runs for this model, with automated checking; prose/code quality was not generally graded. Do not infer broader task accuracy from throughput.

Oct 13, 2026
Apple hardware
generation:
42.3 tokens/s
quant:
UD-Q3_K_XL (GGUF)

Reported by the source; GPU count, offloading and concurrent requests can change these figures. Prompt-processing speed is shown only when the source reports it; generation speed cannot tell us time to first token. Check the full setup before comparing.

Source: https://github.com/HDZucht/Mac-Mini-M6-LLM-benchmarks Raw measured rows: https://github.com/HDZucht/Mac-Mini-M6-LLM-benchmarks/blob/3990a8e0fa5f2762911689439ce12e1c28d4c989/data/speed_2026-10-03.jsonl Quantization/hardware/method README: https://github.com/HDZucht/Mac-Mini-M6-LLM-benchmarks/blob/cb99870e05aa9f5783c5c6987ddd9154834123ab/README.md Loaded context metadata: https://github.com/HDZucht/Mac-Mini-M6-LLM-benchmarks/blob/main/data/loaded_context_2026-10-03.jsonl Original author measurements dated October 3–4, 2026, recovered and checked October 13. The raw file has 240 measured rows plus one separate error record. This report includes only the 15 runs for the exact model alias below. No local reproduction was performed. Headline: 42.3 tokens/s is the median of three English-prose runs (Ruhr economy prompt). It is client-observed streaming decode throughput. It is not an overall mean, pooled throughput, peak speed, native kernel benchmark or prefill throughput. Other workloads are kept separate. Hardware: Apple Mac mini M6, Mac18,5, 12 CPU cores (2 Super + 4 Performance + 6 Efficiency), 12 GPU cores, 32 GB unified memory, macOS 27.0.1. One computer; one model loaded alone. Models were stored on an ORICO 2 TB external NVMe with an ASMedia ASM246x enclosure (source reports 40 Gb/s, PCIe 4.0 x4). Fan control was Apple automatic. Per-run temperature, clock, power, swap, peak resident RAM and exact GPU offload are not reported. Measured model alias: unsloth/nvidia-nemotron-3.5-lightning-30b-a3b. Source quantization: GGUF UD-Q3_K_XL. Runtime: LM Studio using its llama.cpp GGUF backend; exact application and backend versions/builds are not recorded. The model name/parameter class is source-reported, not an independently counted tensor total. Public availability independently verified: https://huggingface.co/unsloth/NVIDIA-Nemotron-3.5-Lightning-30B-A3B-GGUF/blob/main/NVIDIA-Nemotron-3.5-Lightning-30B-A3B-UD-Q3_K_XL.gguf. This is a matching publisher/model/quant artifact available on Hugging Face, not proof that this exact current file, revision or hash was used in the original run. The source does not record its GGUF filename, HF revision or hash. Loaded context is verified as 32,768 tokens for this exact alias in loaded_context_2026-10-03.jsonl. This is allocated/loaded capacity, not a filled prompt length. Actual prompt token counts are not retained. Native prompt-processing rate and prefill duration are unknown and the PP field must stay blank. Method: one stream, max_tokens 600, temperature 0.7, reasoning_effort="none", three repetitions for each of five prompts. The script first sends a short Hallo warm-up request, then uses the OpenAI-compatible chat-completions stream. Thinking tokens count if a model emits them anyway. Requested reasoning-off is not independent proof that all model reasoning was disabled. MTP/speculative settings for these ordinary GGUF rows, KV type, batch/microbatch sizes and thread counts are not recorded. The harness computes decode_tps = (tokens - 1) / (stream_end - first_nonempty_content_time). tokens uses API completion_tokens when present, with a nonempty-stream-chunk-count fallback. The saved record includes both tokens and chunks, but not the original usage object, total elapsed time or finish_reason. Values below are the saved, rounded client rates; token counts are preserved as recorded. They are not re-derived from TTFT. TTFT is client wall latency, not native prefill time. Prompts repeat between the three runs; there is no nonce or explicit cache clearing in this script. Prefix-cache state and cached-token counts are unknown, so do not call these cold-prefill tests. Runs at 600 recorded output tokens reached the requested ceiling numerically; finish_reason was not saved. All 15 runs follow. Each run is shown as decode tokens/s; recorded output tokens; nonempty stream chunks; client TTFT seconds. Repetition order is 0, 1, 2. German prose, Rhine geology (wissen_de), median 42.3 tokens/s: Run 0: 42.3 tokens/s; 384 output tokens; 383 chunks; TTFT 0.3 s. Run 1: 42.3 tokens/s; 380 output tokens; 379 chunks; TTFT 0.06 s. Run 2: 42.4 tokens/s; 361 output tokens; 360 chunks; TTFT 0.06 s. German prose, bead-based immunoassay (beads_de), median 42.2 tokens/s: Run 0: 42.2 tokens/s; 562 output tokens; 561 chunks; TTFT 0.22 s. Run 1: 42.1 tokens/s; 556 output tokens; 555 chunks; TTFT 0.06 s. Run 2: 42.3 tokens/s; 558 output tokens; 557 chunks; TTFT 0.06 s. English prose, Ruhr economy (prosa_en), median 42.3 tokens/s: Run 0: 42.1 tokens/s; 384 output tokens; 383 chunks; TTFT 0.2 s. Run 1: 42.4 tokens/s; 359 output tokens; 358 chunks; TTFT 0.06 s. Run 2: 42.3 tokens/s; 373 output tokens; 372 chunks; TTFT 0.06 s. Python ISO-8601 duration parser (code_py), median 42.4 tokens/s: Run 0: 42.4 tokens/s; 470 output tokens; 469 chunks; TTFT 0.23 s. Run 1: 42.4 tokens/s; 474 output tokens; 473 chunks; TTFT 0.06 s. Run 2: 42.4 tokens/s; 365 output tokens; 364 chunks; TTFT 0.06 s. JSON antigen/disease extraction (json_extr), median 42.5 tokens/s: Run 0: 40.7 tokens/s; 52 output tokens; 51 chunks; TTFT 0.24 s. Run 1: 42.5 tokens/s; 68 output tokens; 67 chunks; TTFT 0.05 s. Run 2: 42.7 tokens/s; 55 output tokens; 54 chunks; TTFT 0.05 s. Quality scope: these tables measure speed. The author reports the JSON task passed all three runs for this model, with automated checking; prose/code quality was not generally graded. Do not infer broader task accuracy from throughput.

Oct 13, 2026
Apple hardware
generation:
45.1 tokens/s
quant:
Q4_K_M (GGUF)

Reported by the source; GPU count, offloading and concurrent requests can change these figures. Prompt-processing speed is shown only when the source reports it; generation speed cannot tell us time to first token. Check the full setup before comparing.

Source: https://github.com/HDZucht/Mac-Mini-M6-LLM-benchmarks Raw measured rows: https://github.com/HDZucht/Mac-Mini-M6-LLM-benchmarks/blob/3990a8e0fa5f2762911689439ce12e1c28d4c989/data/speed_2026-10-03.jsonl Quantization/hardware/method README: https://github.com/HDZucht/Mac-Mini-M6-LLM-benchmarks/blob/cb99870e05aa9f5783c5c6987ddd9154834123ab/README.md Loaded context metadata: https://github.com/HDZucht/Mac-Mini-M6-LLM-benchmarks/blob/main/data/loaded_context_2026-10-03.jsonl Original author measurements dated October 3–4, 2026, recovered and checked October 13. The raw file has 240 measured rows plus one separate error record. This report includes only the 15 runs for the exact model alias below. No local reproduction was performed. Headline: 45.1 tokens/s is the median of three English-prose runs (Ruhr economy prompt). It is client-observed streaming decode throughput. It is not an overall mean, pooled throughput, peak speed, native kernel benchmark or prefill throughput. Other workloads are kept separate. Hardware: Apple Mac mini M6, Mac18,5, 12 CPU cores (2 Super + 4 Performance + 6 Efficiency), 12 GPU cores, 32 GB unified memory, macOS 27.0.1. One computer; one model loaded alone. Models were stored on an ORICO 2 TB external NVMe with an ASMedia ASM246x enclosure (source reports 40 Gb/s, PCIe 4.0 x4). Fan control was Apple automatic. Per-run temperature, clock, power, swap, peak resident RAM and exact GPU offload are not reported. Measured model alias: lmstudio-community/nvidia-nemotron-3.5-lightning-30b-a3b. Source quantization: GGUF Q4_K_M. Runtime: LM Studio using its llama.cpp GGUF backend; exact application and backend versions/builds are not recorded. The model name/parameter class is source-reported, not an independently counted tensor total. Public availability independently verified: https://huggingface.co/lmstudio-community/NVIDIA-Nemotron-3.5-Lightning-30B-A3B-GGUF/blob/main/NVIDIA-Nemotron-3.5-Lightning-30B-A3B-Q4_K_M.gguf. This is a matching publisher/model/quant artifact available on Hugging Face, not proof that this exact current file, revision or hash was used in the original run. The source does not record its GGUF filename, HF revision or hash. Loaded context is verified as 32,768 tokens for this exact alias in loaded_context_2026-10-03.jsonl. This is allocated/loaded capacity, not a filled prompt length. Actual prompt token counts are not retained. Native prompt-processing rate and prefill duration are unknown and the PP field must stay blank. Method: one stream, max_tokens 600, temperature 0.7, reasoning_effort="none", three repetitions for each of five prompts. The script first sends a short Hallo warm-up request, then uses the OpenAI-compatible chat-completions stream. Thinking tokens count if a model emits them anyway. Requested reasoning-off is not independent proof that all model reasoning was disabled. MTP/speculative settings for these ordinary GGUF rows, KV type, batch/microbatch sizes and thread counts are not recorded. The harness computes decode_tps = (tokens - 1) / (stream_end - first_nonempty_content_time). tokens uses API completion_tokens when present, with a nonempty-stream-chunk-count fallback. The saved record includes both tokens and chunks, but not the original usage object, total elapsed time or finish_reason. Values below are the saved, rounded client rates; token counts are preserved as recorded. They are not re-derived from TTFT. TTFT is client wall latency, not native prefill time. Prompts repeat between the three runs; there is no nonce or explicit cache clearing in this script. Prefix-cache state and cached-token counts are unknown, so do not call these cold-prefill tests. Runs at 600 recorded output tokens reached the requested ceiling numerically; finish_reason was not saved. All 15 runs follow. Each run is shown as decode tokens/s; recorded output tokens; nonempty stream chunks; client TTFT seconds. Repetition order is 0, 1, 2. German prose, Rhine geology (wissen_de), median 45.6 tokens/s: Run 0: 45.5 tokens/s; 428 output tokens; 427 chunks; TTFT 0.37 s. Run 1: 45.6 tokens/s; 421 output tokens; 420 chunks; TTFT 0.09 s. Run 2: 45.6 tokens/s; 397 output tokens; 396 chunks; TTFT 0.09 s. German prose, bead-based immunoassay (beads_de), median 45.2 tokens/s: Run 0: 45.2 tokens/s; 586 output tokens; 585 chunks; TTFT 0.48 s. Run 1: 45.4 tokens/s; 600 output tokens; 600 chunks; TTFT 0.12 s. Run 2: 45.2 tokens/s; 566 output tokens; 565 chunks; TTFT 0.31 s. English prose, Ruhr economy (prosa_en), median 45.1 tokens/s: Run 0: 45.2 tokens/s; 402 output tokens; 401 chunks; TTFT 0.49 s. Run 1: 45.1 tokens/s; 391 output tokens; 390 chunks; TTFT 0.13 s. Run 2: 45 tokens/s; 368 output tokens; 367 chunks; TTFT 0.08 s. Python ISO-8601 duration parser (code_py), median 44.9 tokens/s: Run 0: 44.9 tokens/s; 396 output tokens; 395 chunks; TTFT 0.33 s. Run 1: 44.8 tokens/s; 444 output tokens; 443 chunks; TTFT 0.12 s. Run 2: 45 tokens/s; 439 output tokens; 438 chunks; TTFT 0.12 s. JSON antigen/disease extraction (json_extr), median 45 tokens/s: Run 0: 44.1 tokens/s; 55 output tokens; 54 chunks; TTFT 0.36 s. Run 1: 45 tokens/s; 59 output tokens; 58 chunks; TTFT 0.06 s. Run 2: 45.1 tokens/s; 59 output tokens; 58 chunks; TTFT 0.05 s. Quality scope: these tables measure speed. The author reports the JSON task passed all three runs for this model, with automated checking; prose/code quality was not generally graded. Do not infer broader task accuracy from throughput.

Oct 13, 2026

Qwen3.6 35B (3B active)

M6 32GB · LM Studio · 32,768 ctx

Tone: positiveApple hardware
generation:
63.8 tokens/s
quant:
MLX 4-bit (MLX)

Reported by the source; GPU count, offloading and concurrent requests can change these figures. Prompt-processing speed is shown only when the source reports it; generation speed cannot tell us time to first token. Check the full setup before comparing.

summarizationmultilingualcodingtool-use

User reports Qwen3.6-35B-A3B at 63.8 t/s median decode on a Mac mini M6 with 32 GB unified memory. Setup is LM Studio with the MLX 4-bit build and a 32,768-token context; the MLX build ignored the context setting and loaded 34k to 165k. Reasoning off, max_tokens 600, temperature 0.7, median of 3 runs per prompt. The same model's Splash build (speculative decoding with DFlash2 drafts) reached 51.5-234.1 t/s across the five prompts, slower on German prose and faster on code and JSON. The user recommends Splash where it exists and notes the MLX build was faster than Splash on German prose (63 vs 52-59 t/s).

Oct 4, 2026
Showing 1–15 of 15
Page 1 of 1

Community benchmarks snapshot

Records by GPU

AMD Strix Halo 128GB294NVIDIA RTX 3090190NVIDIA RTX 5090134NVIDIA DGX Spark77M5 Max 48GB65NVIDIA RTX Pro 6000 Blackwell62NVIDIA RTX 5060 Ti 16GB58NVIDIA RTX 3060 12GB54AMD Radeon AI PRO R9700 32GB50M4 Max 128GB49

Records by model

2211 total
Qwen3.81021
Qwen3.6238
DeepSeek V4 Flash147
Gemma 4144
Qwen3.597
Qwen353
other511

Records by engine

1645 total
llama.cpp875
vLLM189
MLX100
Strata70
Ollama62
other349

Use cases

coding 556agentic 357long-context 272tool-use 153vision 109summarization 53math 43creative-writing 37multilingual 23text-generation 9rp 8reasoning 3
coding556agentic357long-context272tool-use153vision109summarization53math43creative-writing37

Median generation t/s by GPU

On Qwen3.8 27B at 4-bit, plain single-GPU runs. Full ranking

RTX 509082RTX Pro 600067M5 Ultra 256GB50RX 7900 XTX48RTX 309036RTX 5090 Laptop 24GB34RTX 409032V100 32GB31Radeon AI PRO R9700 32GB30RX 7800 XT 16GB30

Prompt processing, same model

M5 Ultra 256GB1800RX 7900 XTX530RTX 3090561RTX 40901949V100 32GB941RTX 3080 20GB997Arc Pro B70512M1 Ultra 128GB153Arc Pro B60 24GB380M1 Max 32GB82

Reports by model size

Qwen3.8 27B566Qwen3.8 125B · 6B active371DeepSeek V4 Flash 284B · 13B active130Qwen3.6 35B · 3B active129Qwen3.6 27B72Gemma 4 26B · 4B active36GLM-5.3 320B · 18B active33DeepSeek V4.1 Flash 552B · 16B active28

Quants

Q4_K_M290UD-Q4_K_XL140NVFP4120Q8_0984-bit79Q4_K_XL71IQ4_XS70MXFP458IQ3_XXS52Q450