GitSeonjeap
English

Sign in

Reading needs no sign-in. Sign in to write posts or comments, or to recommend and report, in the community.

By signing in you agree to the notices below. Community rules · Privacy notice

Keep browsing without signing in

← Blog

Mac mini 32GB Local AI Engines: Splash JSON 69.3 vs 8.5 Baseline Tokens

Posted Video released

Eight local AI engines measured on a Mac mini M6 32GB with the same questions: big gains for English, code and JSON, smaller for Korean. Speed only; not purely the engine.

Mac mini 32GB Local AI Engines: Splash JSON 69.3 vs 8.5 Baseline Tokens Open on YouTube

On the same Mac mini M6 32GB, with the same Qwen 27B and the same JSON question, llama.cpp with speculation turned off ran at 8.5 tokens per second and Splash at 69.3. This is a record of eight local AI engines (llama.cpp, mlx_lm, MTPLX, Rapid-MLX, Splash, LM Studio, Strata and Sushi) measured on one Mac mini with the same questions. Every number is speed only, and the model files differ between engines, so the gaps are not purely the engine's effect. The reference date is the video's publication date, 2026-10-17.

Terminal log showing Splash JSON 69.3 and speculation-off llama.cpp 8.5 tokens per second on one screen
Our measurement: Mac mini M6 32GB, Qwen 27B 4-bit JSON question, median of 3 runs (video 0:03, 2026-10-17)

The short version

  1. English, code and JSON got much faster. The speculation-off baseline was 8.4-8.6 tokens per second, while Splash reached 22.2 for English, 52.4 for code and 69.3 for JSON [our measurement].
  2. Korean writing improved by less. The best result was Rapid-MLX at 13.6 tokens, 1.6x the baseline [calculation], and Splash was 11.2 [our measurement].
  3. The 66.4GB Flash-Next left few engine choices. On the 32GB Mac mini only Strata, Sushi and llama.cpp on CPU ran; Rapid-MLX, Splash and LM Studio could not [our measurement]. The model is different, so we did not rank these speeds against the Qwen 27B ones.
Summary card with the three conclusions
The three conclusions (video 0:45). Speed only, with file makers and quantizations mixed, so not purely the engine's effect

What kinds of numbers these are

  • Our measurement: one Mac mini with Apple M6 and 32GB, macOS 27.2. The server was restarted for each configuration, with the median of 3 runs, chat mode, thinking off, temperature 0 and at most 256 tokens.
  • Calculation: ratios and percentage differences computed from our own measured values.
  • Maker's documentation: things such as Rapid-MLX's pack size and Splash's minimum memory (not measured by us).
  • Quoted from the 10-11 video: quantization quality (KL), which we did not measure again this time.

The four questions were Korean writing, English writing, code and a JSON inventory list, the same as in the October 11 video. That video's "fastest combination" did not include Splash, so this time we measured it with the same questions.

Table of measured engine versions and whether each was the latest on the official pages on October 17
Measured versions and whether each was the latest on the official pages on October 17 (video 1:40). Whether they were the latest at measurement time is unconfirmed

Qwen 27B 4-bit: the winner changed with the question

The baseline is llama.cpp UD-Q4_K_XL with speculative decoding turned off, and it ran at 8.4-8.6 tokens for all four questions. Speculative decoding guesses a few next tokens in advance and checks them all at once; MTP and DFlash2 are of this kind. Splash is a setup where a DFlash2 draft is attached automatically.

Bar chart of speed per question for each configuration on a Mac mini M6 32GB
Generation tok/s for every Qwen 27B 4-bit configuration (median of 3 runs, 2026-10-17, video 2:45). Our measurement

Generation speed (tok/s, median of 3 runs, 2026-10-17, our measurement):

Configuration Korean English Code JSON
Baseline llama.cpp UD-Q4_K_XL, speculation off (first/last) 8.5/8.6 8.4/8.6 8.5/8.6 8.5/8.5
Splash 1.3.1 (MLX 4-bit, DFlash2 automatic) 11.2 22.2 52.4 69.3
Rapid-MLX 0.16.1 default (MTP) 13.6 14.9 23.0 24.7
Rapid-MLX speculation off 9.7 9.7 9.7 9.6
MTPLX 2.12.2 13.3 16.7 20.9 25.8
mlx_lm 0.31.3 9.7 9.7 9.7 9.7
llama.cpp UD-Q4_K_XL + MTP 11.4 13.1 20.6 22.1
llama.cpp UD-Q4_K_XL + DFlash2 8.3 14.4 39.2 45.0
llama.cpp UD-IQ4_XS + MTP 12.4 14.4 21.1 24.8
llama.cpp byteshape + DFlash2 8.9 15.8 42.0 50.6
llama.cpp byteshape speculation off 10.9 10.9 10.9 10.7
LM Studio GGUF MTP (default) 9.5 10.6 16.5 18.5
LM Studio GGUF speculation off 8.5 8.4 8.4 8.4
LM Studio MLX 4-bit 10.0 9.9 9.8 10.1
  • Splash was first for English, code and JSON. For Korean the order was Rapid-MLX 13.6, MTPLX 13.3, then llama.cpp with MTP on UD-IQ4_XS at 12.4 tokens.
  • The speedup of each question's top configuration over the baseline was 1.6x for Korean, 2.6x for English, 6.2x for code and 8.2x for JSON [calculation]. The baseline is a different file, so this is not purely the engine's effect.
  • Looking at JSON among engines that use the same MLX 4-bit weights: mlx_lm with speculation off 9.7, Rapid-MLX with MTP 24.7 and Splash with DFlash2 69.3 tokens.
  • In llama.cpp, DFlash2 barely helped Korean. The byteshape file ran at 10.9 with speculation off but 8.9 with DFlash2 on. The share of tokens DFlash2 guessed correctly was 6.7% for UD-Q4_K_XL Korean and 86.2% for code. We could not determine whether that is the reason.

The byteshape file, second for code and JSON, is the smallest of the llama.cpp files, but in the October 11 video its KL against UD-Q6_K (Korean/English) was larger: UD-Q4_K_XL 0.0068/0.0236, UD-IQ4_XS 0.0226/0.0621 and byteshape 0.0507/0.1146 (a larger value means further from the UD-Q6_K distribution). We did not measure the quality of the MLX and MTPLX files.

LM Studio was slower than llama.cpp run directly on the same file

We ran the same GGUF file with llmster, the version without a window, and MTP was on in its default settings. It gave 9.5 for Korean, 10.6 for English, 16.5 for code and 18.5 tokens for JSON, which is 16.4-19.8% slower than llama.cpp with MTP run directly on the same file [calculation]. With speculation off it matched the baseline. We could not isolate the cause. The MTP acceptance rate in the LM Studio log was 35% for Korean, 43% for English, 86% for code and 99% for JSON, and we could not turn on the DFlash2 draft.

Speed chart comparing LM Studio with llama.cpp run directly on the same GGUF file
LM Studio vs llama.cpp run directly (video 3:25). The speed gap is a calculation; the cause was not isolated

One line per engine

Engine cards: maker, license, platform, how to use, and our measured values
Facts read from each engine's official documents plus our measurements (video 4:10, confirmed 2026-10-17)
  • The ones with a separate app that can start without the command line are LM Studio, MTPLX and Rapid-MLX. The others are installed and started as a server from the command line.
  • MTPLX, Rapid-MLX, Splash, Sushi and strata-mlx are Mac only. LM Studio is closed source and llama.cpp is MIT open source.
  • Splash's official minimum is 36GB, so this 32GB Mac mini is outside the range, and we ran Qwen 27B unofficially [maker's documentation].
  • Sushi's 32GB example command contains a sudo command that changes system settings, so we did not use it. The Strata here is not the original but strata-mlx, an unofficial Mac port.
Conditions and cautions on this Mac mini: Splash 36GB minimum, Sushi sudo command, Strata unofficial port
Conditions and cautions card (video 4:43). Based on the makers' documentation

The large model, Flash-Next 66.4GB

Flash-Next Q2_0 is 66.4GB, so it does not fit in 32GB of memory and runs by reading from the SSD. The five questions were prose, code, reasoning, editing and Korean, with the median of 3 boots. The measurement dates differ between configurations, so we did not rank them against each other.

Speeds for Flash-Next 66GB read from SSD on a Mac mini 32GB, and the reasons some engines could not run
Flash-Next Q2_0 66.4GB generation tok/s (median of 3 boots, 10-16 to 10-17, video 4:56). Our measurement; Sushi is a contamination candidate

Generation speed (tok/s, our measurement):

Configuration Prose Code Reasoning Editing Korean
Strata default, 10-16 night 17.6 17.5 16.9 17.5 14.6
Strata head off, 10-17 early morning 15.0 12.0 11.4 17.3 13.4
Strata expert-memory 16, 10-17 early morning 21.0 18.7 17.4 18.1 15.3
Sushi 1.2.3 default, 10-16 afternoon 17.4 19.0 17.2 21.0 13.9
Sushi 1.2.3 exact, 10-16 afternoon 12.6 13.9 10.6 11.2 11.8
llama.cpp CPU, 10-16 night 7.1 6.5 6.7 6.1 7.0
  • Sushi was measured on a day when Chrome was running and could not be re-measured, so it is a contamination candidate. It was 5-25% lower than in the earlier video, and we could not isolate why.
  • What could not run: Rapid-MLX's maker documentation lists a pack of about 99-105GB (it differs between documents), so we did not try it on 32GB [maker's documentation]. Splash's installed support list did not include Flash-Next. LM Studio refused to load in 3 seconds, saying it needed 65.56GB, and we did not lift its guardrail.

By use (a direction under these conditions, not a winner)

Summary card of the direction by use
Direction by use (video 6:55). A direction under these conditions, not a winner
  • For English, code and JSON, Splash's numbers were the highest, but they were measured outside its official 36GB minimum [our measurement].
  • For Korean writing, switching engines gained the least, and Rapid-MLX and MTPLX led in the 13-token range [our measurement].
  • If you already use LM Studio, it was 16-20% slower than llama.cpp run directly with the same MTP, and the same with speculation off [calculation].
  • For the large Flash-Next, Strata and Sushi were the ones that ran.

Limits and what we could not confirm

  • These are speed-only tables. File makers and quantizations (UD-Q4_K_XL, UD-IQ4_XS, byteshape, MLX 4-bit) are mixed, so the gaps are not purely the engine's effect.
  • Measuring the baseline at the start and the end showed 0.8-1.4% drift. Against the October 11 video's values, 28 of 36 cells were within 3% and the largest difference was 8%; we could not isolate the cause.
  • We could not isolate why LM Studio was slower, why DFlash2 is weak on Korean, or why the Sushi values were lower. These are values from one machine and 3 runs, so other Macs or files may differ.
Chart of the drift in the speculation-off baseline of 8.4-8.6 tok/s between the first and last measurement
Baseline drift from first to last measurement (video 6:05). Our measurement

Reference date

Measurements were taken on 2026-10-16 and 10-17, with these versions: llama.cpp 8bb3cf0, mlx_lm 0.31.3, MTPLX 2.12.2, Rapid-MLX 0.16.1, Splash 1.3.1, Sushi 1.2.3, strata-mlx 2f9d1ab and LM Studio llmster 0.0.25+1. As of the video's publication date, the official pages showed newer versions for every engine except MTPLX and LM Studio (by its install script), and we could not confirm whether the measured ones were the latest at the time. Versions may have changed since, and we have not checked current speeds.

Mac minilocal AIengine comparisonSplashRapid-MLXSushiLM Studiollama.cppspeculative decodingQwen

Related posts

All posts