Gaming PC vs Mac mini vs Mac Studio: 26 Local AI Configurations, Measured
The fastest model in this test was not the one I would hand a careful extraction job. That is the useful result of putting a gaming PC, a 24GB Mac mini and a Mac Studio through the same small set of local-AI chores: speed, tool use and evidence discipline turned out to be different things.
This is an Oddbyte lab experiment, not a universal leaderboard. We measured 26 configurations across three systems, retaining all 234 case results and 450 inference-call receipts. There were 157 validator passes and 77 nonpasses. Those are results against this harness, not intelligence scores, and certainly not a vote on which computer everyone should buy.

What we actually tested
Each configuration received nine cases: three repetitions of a short writing prompt, one document-retrieval task, three synthetic receipt extractions, and two multi-step tool workflows. One tool case followed the normal path; the other included a recoverable error. The workflow had to look up a source, save a draft, simulate publication and read the result back. Every tool operated inside an in-memory sandbox. No tested model published a real article, and passing this exercise is not qualification to operate a real publishing account.
The writing prompt required exactly three paragraphs with two sentences each, under 180 words. Its validator checked that shape, not literary quality or factual completeness. The document task used 31,509 characters of generated memo text with a pending item near the middle. The model had to preserve its identifier, archive location, pending status, owner and review date. This was a retrieval check, not a full-window endurance test.
Common controls were a requested context of 65,536 tokens, temperature 0.2 and seed 42. Ordinary output ceilings were 512 tokens for prose, 768 for document answers, 1,024 for receipt extraction and 768 per tool turn. GPT-OSS used supported low reasoning with a 2,048-token ceiling instead of an unsupported thinking-off request. That is a deliberate configuration difference, not an identical reasoning budget. Prompts, task order and validators were frozen for the measured matrices. The prose prompt ran once from an unloaded starting point, followed by two warm repetitions; the other task cases each ran once. These are tiny samples, not statistical confidence intervals.
Only synthetic fixtures were used. Models ran sequentially on each system; independent systems could progress in parallel. We retained failures instead of quietly substituting a successful retry. Harness repairs were versioned before the measured matrices, and no case in this final matrix was retried.
Three systems, not a clean silicon shoot-out
The gaming PC had a Ryzen 9 7950X3D, Radeon RX 7900 XT with 20GB of graphics memory, and 32GB of system RAM. The Mac mini had an M4 with 24GB of unified memory. The Mac Studio supplied a third, practical native-runtime comparison, including Gemma 4 31B MLX and Qwen3.8 27B MLX. Its current chip and installed-memory details were not independently reverified because host-level telemetry access was unavailable. Its model API remained accessible. I am leaving that hardware gap open rather than decorating the chart with remembered specifications.
Ollama versions were 0.32.13 on the PC, 0.40.0 on the mini and 0.40.5 on the Studio. The PC candidates used GGUF. Apple candidates included native MLX-backed configurations, safetensors inventories and GGUF. Some quantization labels were missing from the API metadata; the figures say unspecified where that happened. A shared model name does not make two artifacts equivalent.
We staged the same pinned GPT-OSS 20B MXFP4 and Gemma 4 26B A4B IQ4_NL GGUF artifacts on the PC and mini. Those pairs are closer to matched-artifact comparisons, but the runtime versions still differ. The mini and Studio also shared the source artifact for their native Qwen3.8 27B configurations, with configuration differences still relevant. Additional Studio GGUF downloads were deferred because storage capacity could not be verified. Legacy small-context models, image models and duplicate production aliases were excluded rather than counted as extra competitors.
The gaming PC: useful speed, with trade-offs
Three PC configurations passed all nine cases: Qwen3.8 27B, Gemma 4 31B and Qwen3.6 36B. Their measured warm generation rates were 26.6, 7.1 and 48.2 tokens per second respectively. For this workload, Qwen3.6 is the most appealing PC follow-up candidate: it combined the complete validator pass with considerably more generation speed than Gemma 31B. That is a recommendation to test it on your own workload, not permission to give it unattended authority.
There is a memory caution attached. Qwen3.6’s largest API-reported resident-size snapshot was 24.63GiB, while Qwen3.8’s was 18.90GiB. These are not operating-system peak RAM measurements, and API size is not interchangeable with graphics-memory allocation. They should not be read as proof that either configuration can handle a fully occupied 64K context safely.
The smaller Qwen3.5 9B and Gemma 4 E4B both passed the two sandbox tool cases. They generated warm prose at 81.5 and 112.7 tokens per second. Both finished at six of nine validator passes, with zero full receipt passes. That makes them interesting bounded-tool candidates here, but the extraction result needs the important scoring qualification below.
The 24GB mini: keep the ambition proportional
The mini’s Qwen3.5 4B configuration passed seven of nine cases at 28.3 warm tokens per second, with a largest observed API residency of 6.55GiB. Gemma 4 E2B reached 53.2 tokens per second and passed six of nine cases. Both completed the two tool workflows. I would start with candidates in this smaller range for a constrained machine, then qualify the exact task rather than assume that fitting a larger model is progress.
The mini’s Qwen3.8 27B trial passed six of nine cases. It had a largest observed API residency of 23.51GiB, a 47.78-second first completed prose call and 14.2 warm tokens per second. Its first prose attempt timed out; its document attempt returned an HTTP error. Those failures remain in the denominator. On this evidence, the larger configuration is not my default choice for a 24GB machine that also has other work to do.
The Studio: native configurations deserve their own lane
On the Studio, Muse Glimmer 30B MLX and Ornith 1.5 35B GGUF passed all nine cases, at 68.4 and 122.9 warm tokens per second. Qwen3.8 27B MLX passed eight of nine at 75.9 tokens per second. These are the most promising Studio follow-up candidates from this particular suite.
Gemma 4 31B MLX was explicitly included. It passed six of nine cases, completed both sandbox tool workflows, and generated warm prose at 71.3 tokens per second. Its three receipt cases failed the complete evidence gate. The PC’s 31B result and the Studio’s 31B result therefore should not become a story about one chip being more accurate: the artifacts, quantization metadata, runtime and generated answers were not controlled as a single identical configuration.
The speed-chart headline belongs to Gemma 4 E2B MLX, at 348.1 warm tokens per second. It passed only three of nine cases. Its prose omitted the requested two-sentence-per-paragraph structure. A fast stream is pleasant; a fast stream that misses your contract still needs handling.

The extraction caveat that changes how to read the chart
The receipt gate is stricter than the wording of the model prompt makes explicit. It requires a quotation to contain the complete frozen field-labeled span, not merely the correct value quoted literally from the source. For example, a model returning the correct merchant name as its quotation can fail because the validator also expects the preceding merchant label. The prompt asks for literal evidence but does not explicitly demand these full labeled spans.
This matters. Some zero-pass receipt configurations extracted the requested values correctly and returned valid JSON, yet failed that stricter evidence rule. The ambiguous case can also fail on extra evidence for null fields even when its required-field evidence score is perfect. Those results must not be described as equivalent to guessing a total, hallucinating a merchant or failing to produce JSON. The retained metrics separate parsing, schema, values, evidence and ambiguity.
For a concrete example, PC Qwen3.5 9B, PC Gemma 4 26B A4B and Studio Gemma 4 31B all produced correct extracted values and schema-valid JSON in all three receipt cases, despite receiving zero full receipt passes. Conversely, the mini’s Gemma 4 12B failed strict JSON parsing in all three receipt cases. The same zero in the receipt panel therefore hides very different behavior. Those component results remain in the private evidence ledger.
I have not relaxed the validator and retroactively turned those failures into passes. The figures report the frozen gate honestly. A fairer follow-up would explicitly state the full-span requirement in the prompt, version that changed condition and rerun the affected receipt cases. Until then, use the receipt panel as strict-gate compliance, not a general extraction-accuracy ranking.
Failure is part of the result
GPT-OSS 20B passed none of its nine cases on either tested system. Its tool requests were rejected as unsupported by the tested artifact/runtime route, and its other cases returned no visible answer in the retained results. This disqualifies those particular configurations for this workflow; it does not establish that the whole model family cannot use tools. The PC still reported 145.3 warm evaluation tokens per second for it, a particularly good reason not to confuse an evaluation counter with delivered useful text.
The PC Muse Glimmer agent variant hit the prose output ceiling on all three repetitions, leaving no usable warm-throughput value in our reporting rule. PC Nemotron had a prose timeout. Across all configurations there were seven failed-execution case records and three truncated cases; other nonpasses completed execution but did not satisfy their validator. All attempts were preserved.
Warm throughput is the combined native evaluation-token count divided by combined evaluation duration for the second and third successfully completed prose calls. It is not end-to-end task speed, and a completed call can still fail the prose validator. Native token counters may include reasoning; separate visible/reasoning counts were unavailable where the API did not provide them. Missing counters remain missing. First-completed-call wall time includes loading and other work and is not a standalone load-duration figure; where the first prose case timed out, the next completed prose call is the available table value, not a clean cold-load measurement.
The comparison, in full
The figure and text equivalent cover all 26 configurations. API residency values are the largest observed snapshots in GiB, not OS peak RAM; the chart’s abbreviated API GB heading refers to these snapshots. Unspecified quantization means missing metadata, not an assertion that the model is unquantized. The first-call timing column is not a clean cold-load measurement for configurations whose first prose case failed.

Accessible comparison values
Local model comparison: Gaming PC, Mac mini, Mac Studio 26 configurations across 3 hosts. Cross-runtime comparison: MLX/GGUF, quantization, model format and runtime versions differ. This is not a matched-silicon benchmark. Rates are frozen validator passes, not editorial ratings. Native evaluation tokens may include reasoning. N/A means unavailable, never zero. API residency is the largest observed snapshot in GiB, not OS peak RAM or full-context memory. Gaming PC — 10 configurations Model | Cases | Tools | Receipts | Warm tok/s | First completed prose s | API GiB Qwen3.5 9B | 6/9 | 2/2 | 0/3 | 81.5 | 7.73 | 8.04 Gemma 4 E4B | 6/9 | 2/2 | 0/3 | 112.7 | 8.49 | 3.29 GPT-OSS 20B | 0/9 | 0/2 | 0/3 | 145.3 | 10.32 | 11.83 Gemma 4 26B A4B | 6/9 | 2/2 | 0/3 | 90.7 | 12.40 | 14.23 Qwen3.8 27B (64K) | 9/9 | 2/2 | 3/3 | 26.6 | 20.63 | 18.90 Gemma 4 31B | 9/9 | 2/2 | 3/3 | 7.1 | 27.90 | 22.09 Muse Glimmer 30B (agent) | 5/9 | 2/2 | 2/3 | N/A | 31.83 | 16.63 Nemotron 3.5 Lightning 30B | 5/9 | 2/2 | 0/3 | 47.9 | N/A | 25.72 Qwen3.5 35B | 7/9 | 2/2 | 1/3 | 48.2 | 21.65 | 24.63 Qwen3.6 36B | 9/9 | 2/2 | 3/3 | 48.2 | 20.92 | 24.63 PC: GGUF, Ollama 0.32.13. Q4_K_M except GPT-OSS and Gemma 26B metadata unspecified. Mac mini — 7 configurations Model | Cases | Tools | Receipts | Warm tok/s | First completed prose s | API GiB Qwen3.5 4B | 7/9 | 2/2 | 1/3 | 28.3 | 5.18 | 6.55 Gemma 4 E2B | 6/9 | 2/2 | 1/3 | 53.2 | 6.31 | 3.96 Qwen3.5 9B | 6/9 | 2/2 | 0/3 | 18.3 | 12.96 | 7.51 Gemma 4 12B | 6/9 | 2/2 | 0/3 | 22.3 | 7.60 | 14.69 GPT-OSS 20B | 0/9 | 0/2 | 0/3 | 36.1 | 8.57 | 11.74 Gemma 4 26B A4B | 6/9 | 2/2 | 0/3 | 25.7 | 13.30 | 14.35 Qwen3.8 27B (64K) | 6/9 | 2/2 | 2/3 | 14.2 | 47.78 | 23.51 Mini: Ollama 0.40.0. Qwen 4B/27B safetensors NVFP4; Gemma 12B safetensors, quantization unspecified. Others GGUF: Q4_K_M, GPT-OSS MXFP4_MOE, Gemma 26B IQ4_NL. Mac Studio — 9 configurations Model | Cases | Tools | Receipts | Warm tok/s | First completed prose s | API GiB Gemma 4 E2B (MLX) | 3/9 | 2/2 | 0/3 | 348.1 | 1.60 | 7.65 Gemma 4 E4B (MLX) | 6/9 | 2/2 | 0/3 | 190.1 | 1.99 | 10.09 Gemma 4 12B (MLX) | 6/9 | 2/2 | 0/3 | 113.5 | 2.03 | 14.70 Gemma 4 26B A4B (MLX) | 6/9 | 2/2 | 0/3 | 154.2 | 3.10 | 22.90 Gemma 4 31B (MLX) | 6/9 | 2/2 | 0/3 | 71.3 | 3.41 | 28.92 Qwen3.8 27B (MLX) | 8/9 | 2/2 | 2/3 | 75.9 | 3.51 | 23.95 Muse Glimmer 30B (MLX) | 9/9 | 2/2 | 3/3 | 68.4 | 10.29 | 21.03 Nemotron 3.5 Lightning 30B (MLX) | 5/9 | 2/2 | 0/3 | 160.1 | 4.23 | 24.30 Ornith 1.5 35B | 9/9 | 2/2 | 3/3 | 122.9 | 5.78 | 22.84 Studio: Ollama 0.40.5. MLX except Ornith GGUF Q4_K_M. E2B, Gemma 26B and Qwen 27B NVFP4; other MLX quantization unspecified.
Measured inference accounting
The following are summed native counters and call wall times, not elapsed campaign time. Seven calls lacked input/output counters; missing values were not substituted with zero. No call supplied separate visible-token or reasoning-token counters.
Task | Calls | Observed input tokens | Observed output tokens | Missing input/output counters | Summed call seconds Writing format | 78 | 10567 | 8808 | 2/2 | 836.447 Document retrieval | 26 | 192242 | 2075 | 1/1 | 373.834 Synthetic receipts | 78 | 24072 | 12896 | 0/0 | 569.575 Sandbox tools | 268 | 231669 | 14066 | 4/4 | 601.629 Total | 450 | 458550 | 37845 | 7/7 | 2381.486
What I would actually do next
On the PC, I would qualify Qwen3.6 36B against a representative private workload before deciding whether its memory footprint is worthwhile. On the mini, I would begin smaller rather than install the largest thing that nearly fits. On the Studio, I would carry Muse Glimmer MLX, Ornith GGUF and Qwen3.8 MLX into a harder task-specific trial. Gemma 31B MLX remains a useful candidate, but this run does not justify calling it a strict receipt-workflow winner.
None of these results warrants changing a production assistant automatically. The tool sandbox is tiny, receipt scoring has the disclosed prompt-to-gate mismatch, prose style was not rated, the document was well below the requested context ceiling, and each task has little repetition. There are no energy, price-performance or sustained full-context measurements here. The useful lesson is narrower and more actionable: choose a configuration for a task, measure the actual completion contract, and keep the fast failure in the report.
Provenance and accounting: These are original Oddbyte measurements from the October 19, 2026 experiment. The charts and accessible values are computed from retained local-inference receipts; no benchmark answer was replaced with cloud output. Deterministic scripts handled execution, validation and aggregation. Aura provided cloud-based supervision and wrote this interpretation; supervision token usage and cost are unavailable, not zero. Raw private provenance is retained separately and is not exposed in this article.

