measuredlocally.com
Hardware leaderboard Last updated 29 October 2026

Local AI hardware leaderboard

AI models timed on the machines I own, with the same prompts and the same test on each. Speeds are tokens a second for one user unless it says otherwise.

The leaderboard, model by model

Each model on every machine that has run it, fastest first at writing code. A speed compares fairly only on the same model, so each model has its own ranking.

Gemma 4 12B

PlaceMachineFileWriting codeWriting proseFirst wordReading (prefill)Tested
1RTX 4090 desktopllama.cpp on CUDA, version b11669Google's own 4-bit QAT file (Q4_0), GGUF99.7 tok/s99.4 to 99.9 over 3 runs101.9 tok/s101.8 to 102.0 over 3 runs0.36 s5,072 tok/sabout 19,000 tokens20 Oct 2026
2RTX 5070 Ti desktopllama.cpp on CUDA, version b11669Google's own 4-bit QAT file (Q4_0), GGUF92.5 tok/s92.4 to 92.6 over 3 runs94.4 tok/s93.7 to 94.6 over 3 runs0.35 s2,910 tok/sabout 19,000 tokens20 Oct 2026
3Lenovo Yoga Pro 9n (RTX Spark)RTX Spark laptop, NVIDIA N1X, 128GBllama.cpp on CUDA, version b11669on mains power, Windows power mode Best performanceGoogle's own 4-bit QAT file (Q4_0), GGUF33.2 tok/s33.2 to 33.3 over 3 runs34.6 tok/s34.5 to 34.6 over 3 runs0.20 s1,513 tok/sabout 19,000 tokens29 Oct 2026
4Lenovo Yoga Pro 9n (RTX Spark)RTX Spark laptop, NVIDIA N1X, 128GBllama.cpp on CUDA, in WSL 2, version b11669on mains power, Windows power mode Best performanceGoogle's own 4-bit QAT file (Q4_0), GGUF28.6 tok/s27.8 to 29.3 over 3 runs30.5 tok/s30.1 to 30.8 over 2 runs0.89 s1,439 tok/sabout 19,000 tokens29 Oct 2026
5HP ZBook Ultra G1aStrix Halo laptop, Ryzen AI Max+ 395, 64GBllama.cpp on Vulkan, version b11669on mains power, Windows power mode BalancedGoogle's own 4-bit QAT file (Q4_0), GGUF25.9 tok/s25.9 to 26.3 over 3 runs26.2 tok/s26.0 to 26.6 over 3 runs0.72 s182 tok/sabout 19,000 tokens22 Oct 2026
6HP ZBook Ultra G1aStrix Halo laptop, Ryzen AI Max+ 395, 64GBllama.cpp on ROCm, in WSL 2, version b11669on mains power, Windows power mode Best performanceGoogle's own 4-bit QAT file (Q4_0), GGUF22.6 tok/s22.5 to 22.7 over 3 runs23.9 tok/s23.3 to 24.0 over 3 runs1.02 s380 tok/sabout 19,000 tokens27 Oct 2026
7Mac mini M4Apple M4, 16GBllama.cpp on Metal, version b11669Google's own 4-bit QAT file (Q4_0), GGUF12.9 tok/s12.8 to 13.0 over 3 runs13.3 tok/s13.3 to 13.4 over 3 runs0.72 s115 tok/sabout 19,000 tokens20 Oct 2026

Qwen 3.5 9B

PlaceMachineFileWriting codeWriting proseFirst wordReading (prefill)Tested
1RTX 4090 desktopllama.cpp on CUDA, version b11669Q4_K_M, GGUF137.6 tok/s137.0 to 138.2 over 3 runs138.3 tok/s137.4 to 138.9 over 3 runs0.32 s8,584 tok/sabout 19,000 tokens20 Oct 2026
2RTX 5070 Ti desktopllama.cpp on CUDA, version b11669Q4_K_M, GGUF126.6 tok/s127.0 tok/s126.9 to 127.0 over 3 runs0.25 s5,275 tok/sabout 19,000 tokens20 Oct 2026
3Lenovo Yoga Pro 9n (RTX Spark)RTX Spark laptop, NVIDIA N1X, 128GBllama.cpp on CUDA, version b11669on mains power, Windows power mode Best performanceQ4_K_M, GGUF44.6 tok/s44.5 to 44.7 over 3 runs45.7 tok/s45.4 to 45.8 over 3 runs0.12 s2,684 tok/sabout 19,000 tokens29 Oct 2026
4Lenovo Yoga Pro 9n (RTX Spark)RTX Spark laptop, NVIDIA N1X, 128GBllama.cpp on CUDA, in WSL 2, version b11669on mains power, Windows power mode Best performanceQ4_K_M, GGUF40.5 tok/s40.2 to 40.8 over 3 runs39.7 tok/s39.5 to 40.7 over 3 runs0.21 s2,524 tok/sabout 19,000 tokens29 Oct 2026
5HP ZBook Ultra G1aStrix Halo laptop, Ryzen AI Max+ 395, 64GBllama.cpp on Vulkan, version b11669on mains power, Windows power mode Best performanceQ4_K_M, GGUF38.1 tok/s37.9 to 38.1 over 3 runs38.5 tok/s38.4 to 38.5 over 3 runs0.18 s775 tok/sabout 19,000 tokens26 Oct 2026
6HP ZBook Ultra G1aStrix Halo laptop, Ryzen AI Max+ 395, 64GBllama.cpp on ROCm, in WSL 2, version b11669on mains power, Windows power mode Best performanceQ4_K_M, GGUF32.9 tok/s32.8 to 33.0 over 3 runs33.4 tok/s33.2 to 33.6 over 3 runs0.36 s935 tok/sabout 19,000 tokens27 Oct 2026
7Mac mini M4Apple M4, 16GBllama.cpp on Metal, version b11669Q4_K_M, GGUF17.7 tok/s17.6 to 17.7 over 3 runs18.0 tok/s0.42 s185 tok/sabout 19,000 tokens20 Oct 2026

Qwen 3.8 27B (each machine in the 4-bit format its own software uses)

PlaceMachineFileWriting codeWriting proseFirst wordReading (prefill)Tested
1RTX 4090 desktopLM Studio, llama.cpp on CUDA, version 2.55.0Q4_K_M, GGUF62.4 tok/s61.3 to 62.5 over 3 runs45.0 tok/s44.5 to 46.5 over 3 runs0.63 s1,994 tok/sabout 19,000 tokens11 Oct 2026
2Two DGX SparksvLLM across two boxes, version 0.1.dev20003graphics chips capped at 2,200MHz to cut power use4 at once: 96.4 tok/s in totalNVFP4 at 4 bits44.7 tok/s43.5 to 45.5 over 3 runs28.7 tok/s26.1 to 29.0 over 3 runs0.17 s2,034 tok/sabout 19,000 tokens11 Oct 2026
3One DGX SparkvLLM on one box, version 0.1.dev20003graphics chips capped at 2,200MHz to cut power use4 at once: 60.9 tok/s in totalNVFP4 at 4 bits26.7 tok/s25.9 to 27.1 over 3 runs16.9 tok/s16.8 to 17.3 over 3 runs0.16 s1,188 tok/sabout 19,000 tokens11 Oct 2026
4HP ZBook Ultra G1aStrix Halo laptop, Ryzen AI Max+ 395, 64GBLM Studio, llama.cpp on Vulkan, version 2.55.0on mains power, Windows power mode BalancedQ4_K_M, GGUF23.5 tok/s22.7 to 23.7 over 3 runs14.6 tok/s14.6 to 15.4 over 3 runs1.30 s194 tok/sabout 19,000 tokens11 Oct 2026
5Lenovo Yoga Pro 9n (RTX Spark)RTX Spark laptop, NVIDIA N1X, 128GBllama.cpp on CUDA, version b11669on mains power, Windows power mode Best performanceQ4_K_M, GGUF15.2 tok/s15.2 tok/s0.32 s800 tok/sabout 19,000 tokens29 Oct 2026
6Lenovo Yoga Pro 9n (RTX Spark)RTX Spark laptop, NVIDIA N1X, 128GBllama.cpp on CUDA, in WSL 2, version b11669on mains power, Windows power mode Best performanceQ4_K_M, GGUF14.1 tok/s14.0 to 14.3 over 3 runs14.0 tok/s13.9 to 14.2 over 3 runs0.97 s760 tok/sabout 19,000 tokens29 Oct 2026
7HP ZBook Ultra G1aStrix Halo laptop, Ryzen AI Max+ 395, 64GBllama.cpp on Vulkan, version b11669on mains power, Windows power mode BalancedQ4_K_M, GGUF12.1 tok/s12.1 tok/s12.0 to 12.1 over 3 runs1.44 s205 tok/sabout 19,000 tokens22 Oct 2026
8HP ZBook Ultra G1aStrix Halo laptop, Ryzen AI Max+ 395, 64GBllama.cpp on ROCm, in WSL 2, version b11669on mains power, Windows power mode Best performanceQ4_K_M, GGUF10.2 tok/s10.1 tok/s10.1 to 10.2 over 3 runs1.04 s259 tok/sabout 19,000 tokens27 Oct 2026

Gemma 4 26B-A4B

PlaceMachineFileWriting codeWriting proseFirst wordReading (prefill)Tested
1RTX 4090 desktopllama.cpp on CUDA, version b11669UD-IQ4_XS, about 4 bits, GGUF161.4 tok/s161.3 to 161.4 over 3 runs165.4 tok/s165.3 to 165.5 over 3 runs0.32 s7,257 tok/sabout 19,000 tokens20 Oct 2026
2Lenovo Yoga Pro 9n (RTX Spark)RTX Spark laptop, NVIDIA N1X, 128GBllama.cpp on CUDA, version b11669on mains power, Windows power mode Best performanceUD-IQ4_XS, about 4 bits, GGUF60.7 tok/s60.6 to 60.8 over 3 runs64.5 tok/s64.1 to 64.6 over 3 runs0.17 s2,328 tok/sabout 19,000 tokens29 Oct 2026
3RTX 5070 Ti desktopllama.cpp on CUDA, version b11669UD-IQ4_XS, about 4 bits, GGUF59.4 tok/s59.8 tok/s59.8 to 59.9 over 3 runs0.42 s2,199 tok/sabout 19,000 tokens21 Oct 2026
4Lenovo Yoga Pro 9n (RTX Spark)RTX Spark laptop, NVIDIA N1X, 128GBllama.cpp on CUDA, in WSL 2, version b11669on mains power, Windows power mode Best performanceUD-IQ4_XS, about 4 bits, GGUF58.3 tok/s57.9 to 58.5 over 3 runs61.7 tok/s60.8 to 62.0 over 3 runs0.87 s2,209 tok/sabout 19,000 tokens29 Oct 2026
5HP ZBook Ultra G1aStrix Halo laptop, Ryzen AI Max+ 395, 64GBllama.cpp on Vulkan, version b11669on mains power, Windows power mode BalancedUD-IQ4_XS, about 4 bits, GGUF43.3 tok/s43.2 to 43.4 over 3 runs43.3 tok/s43.0 to 44.3 over 3 runs0.40 s271 tok/sabout 19,000 tokens22 Oct 2026
6HP ZBook Ultra G1aStrix Halo laptop, Ryzen AI Max+ 395, 64GBllama.cpp on ROCm, in WSL 2, version b11669on mains power, Windows power mode Best performanceUD-IQ4_XS, about 4 bits, GGUF34.6 tok/s34.6 to 34.8 over 3 runs37.2 tok/s36.2 to 37.3 over 3 runs0.77 s596 tok/sabout 19,000 tokens27 Oct 2026

gpt-oss-20b

PlaceMachineFileWriting codeWriting proseFirst wordReading (prefill)Tested
1RTX 4090 desktopllama.cpp on CUDA, version b11669MXFP4, GGUF, thinking at its lowest level238.6 tok/s238.1 to 239.2 over 3 runs241.1 tok/s241.0 to 241.3 over 3 runs0.35 s9,940 tok/sabout 15,000 tokens20 Oct 2026
2RTX 5070 Ti desktopllama.cpp on CUDA, version b11669MXFP4, GGUF, thinking at its lowest level213.2 tok/s212.6 to 213.2 over 3 runs214.4 tok/s214.4 to 217.4 over 3 runs0.23 s7,884 tok/sabout 15,000 tokens21 Oct 2026
3Lenovo Yoga Pro 9n (RTX Spark)RTX Spark laptop, NVIDIA N1X, 128GBllama.cpp on CUDA, version b11669on mains power, Windows power mode Best performanceMXFP4, GGUF, thinking at its lowest level80.4 tok/s80.1 to 82.1 over 3 runs82.5 tok/s82.5 to 83.0 over 3 runs0.13 s4,415 tok/sabout 15,000 tokens29 Oct 2026
4Lenovo Yoga Pro 9n (RTX Spark)RTX Spark laptop, NVIDIA N1X, 128GBllama.cpp on CUDA, in WSL 2, version b11669on mains power, Windows power mode Best performanceMXFP4, GGUF, thinking at its lowest level78.2 tok/s76.8 to 78.3 over 3 runs79.7 tok/s78.4 to 80.1 over 3 runs0.17 s3,530 tok/sabout 15,000 tokens29 Oct 2026
5HP ZBook Ultra G1aStrix Halo laptop, Ryzen AI Max+ 395, 64GBllama.cpp on Vulkan, version b11669on mains power, Windows power mode BalancedMXFP4, GGUF, thinking at its lowest level67.2 tok/s66.0 to 69.3 over 3 runs66.0 tok/s63.6 to 67.3 over 3 runs0.26 s1,220 tok/sabout 15,000 tokens22 Oct 2026
6HP ZBook Ultra G1aStrix Halo laptop, Ryzen AI Max+ 395, 64GBllama.cpp on ROCm, in WSL 2, version b11669on mains power, Windows power mode Best performanceMXFP4, GGUF, thinking at its lowest level51.6 tok/s50.9 to 52.3 over 3 runs52.1 tok/s52.0 to 52.6 over 3 runs0.24 s1,102 tok/sabout 15,000 tokens27 Oct 2026

Ternary Bonsai 2 27B

PlaceMachineFileWriting codeWriting proseFirst wordReading (prefill)Tested
1RTX 4090 desktopPrism ML's llama.cpp on CUDA, version b10787PTQ1_0, about 1.75 bits a weight, GGUF105.5 tok/s105.4 to 105.6 over 3 runs106.1 tok/s106.0 to 106.2 over 3 runs0.36 s2,941 tok/sabout 19,000 tokens20 Oct 2026
2RTX 5070 Ti desktopPrism ML's llama.cpp on CUDA, version b10787PTQ1_0, about 1.75 bits a weight, GGUF98.8 tok/s98.8 to 99.0 over 3 runs99.8 tok/s99.5 to 100.0 over 3 runs0.39 s1,730 tok/sabout 19,000 tokens20 Oct 2026
3Mac mini M4Apple M4, 16GBPrism ML's llama.cpp on Metal, version b10787PTQ1_0, about 1.75 bits a weight, GGUF9.4 tok/s9.4 to 9.9 over 3 runs9.6 tok/s9.6 to 10.0 over 3 runs1.94 s47 tok/sabout 19,000 tokens20 Oct 2026

Nemotron 3.5 Bolt 74B

PlaceMachineFileWriting codeWriting proseFirst wordReading (prefill)Tested
1Lenovo Yoga Pro 9n (RTX Spark)RTX Spark laptop, NVIDIA N1X, 128GBllama.cpp on CUDA, version b11669on mains power, Windows power mode Best performanceNVIDIA's 24GB GGUF, about 2 bits a weight41.5 tok/s41.4 to 41.7 over 3 runs42.1 tok/s42.1 to 42.2 over 3 runs0.36 s1,153 tok/sabout 18,000 tokens29 Oct 2026
2Lenovo Yoga Pro 9n (RTX Spark)RTX Spark laptop, NVIDIA N1X, 128GBllama.cpp on CUDA, in WSL 2, version b11669on mains power, Windows power mode Best performanceNVIDIA's 24GB GGUF, about 2 bits a weight37.4 tok/s37.0 to 37.6 over 3 runs37.2 tok/s36.2 to 37.8 over 3 runs1.03 s1,081 tok/sabout 18,000 tokens29 Oct 2026
3HP ZBook Ultra G1aStrix Halo laptop, Ryzen AI Max+ 395, 64GBllama.cpp on Vulkan, version b11669on mains power, Windows power mode BalancedNVIDIA's 24GB GGUF, about 2 bits a weight28.6 tok/s28.4 to 28.9 over 3 runs27.9 tok/s27.7 to 28.1 over 2 runs1.05 s371 tok/sabout 18,000 tokens22 Oct 2026
4HP ZBook Ultra G1aStrix Halo laptop, Ryzen AI Max+ 395, 64GBllama.cpp on ROCm, in WSL 2, version b11669on mains power, Windows power mode Best performanceNVIDIA's 24GB GGUF, about 2 bits a weight23.3 tok/s23.0 to 23.3 over 3 runs23.0 tok/s22.9 to 23.5 over 3 runs3.64 s332 tok/sabout 18,000 tokens27 Oct 2026

Qwen 3.6 35B-A3B

PlaceMachineFileWriting codeWriting proseFirst wordReading (prefill)Tested
1Lenovo Yoga Pro 9n (RTX Spark)RTX Spark laptop, NVIDIA N1X, 128GBllama.cpp on CUDA, version b11669on mains power, Windows power mode Best performanceUD-Q4_K_M, about 4 bits, GGUF72.1 tok/s71.7 to 73.0 over 3 runs73.8 tok/s72.9 to 75.4 over 3 runs0.19 s2,339 tok/sabout 19,000 tokens29 Oct 2026
2Lenovo Yoga Pro 9n (RTX Spark)RTX Spark laptop, NVIDIA N1X, 128GBllama.cpp on CUDA, in WSL 2, version b11669on mains power, Windows power mode Best performanceUD-Q4_K_M, about 4 bits, GGUF69.7 tok/s69.2 to 70.1 over 2 runs71.4 tok/s70.2 to 71.8 over 3 runs0.27 s2,117 tok/sabout 19,000 tokens29 Oct 2026
3HP ZBook Ultra G1aStrix Halo laptop, Ryzen AI Max+ 395, 64GBllama.cpp on Vulkan, version b11669on mains power, Windows power mode Best performanceUD-Q4_K_M, about 4 bits, GGUF52.3 tok/s52.3 to 52.5 over 3 runs54.5 tok/s54.0 to 54.8 over 3 runs0.26 s1,006 tok/sabout 19,000 tokens27 Oct 2026
4HP ZBook Ultra G1aStrix Halo laptop, Ryzen AI Max+ 395, 64GBllama.cpp on ROCm, in WSL 2, version b11669on mains power, Windows power mode Best performanceUD-Q4_K_M, about 4 bits, GGUF39.2 tok/s39.0 to 39.4 over 3 runs40.5 tok/s40.4 to 40.8 over 3 runs0.95 s935 tok/sabout 19,000 tokens27 Oct 2026

Qwen 3.8 27B with multi-token prediction

PlaceMachineFileWriting codeWriting proseFirst wordReading (prefill)Tested
1Lenovo Yoga Pro 9n (RTX Spark)RTX Spark laptop, NVIDIA N1X, 128GBllama.cpp on CUDA, version b11669on mains power, Windows power mode Best performanceQ4_K_M, GGUF33.3 tok/s33.1 to 33.4 over 3 runs24.5 tok/s24.3 to 24.7 over 3 runs0.32 s772 tok/sabout 19,000 tokens29 Oct 2026
2Lenovo Yoga Pro 9n (RTX Spark)RTX Spark laptop, NVIDIA N1X, 128GBllama.cpp on CUDA, in WSL 2, version b11669on mains power, Windows power mode Best performanceQ4_K_M, GGUF30.7 tok/s30.4 to 30.8 over 3 runs22.7 tok/s21.9 to 23.0 over 3 runs0.81 s734 tok/sabout 19,000 tokens29 Oct 2026
3HP ZBook Ultra G1aStrix Halo laptop, Ryzen AI Max+ 395, 64GBllama.cpp on Vulkan, version b11669on mains power, Windows power mode Best performanceQ4_K_M, GGUF25.0 tok/s24.7 to 25.3 over 3 runs18.5 tok/s18.2 to 18.7 over 3 runs0.61 s215 tok/sabout 19,000 tokens27 Oct 2026
4HP ZBook Ultra G1aStrix Halo laptop, Ryzen AI Max+ 395, 64GBllama.cpp on ROCm, in WSL 2, version b11669on mains power, Windows power mode Best performanceQ4_K_M, GGUF20.2 tok/s19.7 to 20.4 over 3 runs14.9 tok/s14.9 to 15.5 over 3 runs1.47 s237 tok/sabout 19,000 tokens27 Oct 2026

DeepSeek V4.1 Flash 1017

PlaceMachineFileWriting codeWriting proseFirst wordReading (prefill)Tested
1Four DGX SparksSGLang across all four boxesgraphics chips capped at 2,200MHz to cut power useDeepSeek's own release: experts 4-bit MXFP4, the rest 8-bit FP8116.0 tok/s112.6 to 120.2 over 3 runs63.0 tok/s58.6 to 63.3 over 3 runs0.24 s4,924 tok/sabout 15,000 tokens20 Oct 2026

GLM 5.3 Flash

PlaceMachineFileWriting codeWriting proseFirst wordReading (prefill)Tested
1Four DGX SparksvLLM across all four boxes, version 0.1.dev20051graphics chips capped at 2,200MHz to cut power use4 at once: 112.3 tok/s in totalNVFP4 at 4 bits, dense layers at 8104.1 tok/s100.0 to 104.2 over 3 runs62.7 tok/s62.6 to 63.4 over 3 runs0.15 s3,159 tok/sabout 16,000 tokens11 Oct 2026

Qwen 3.5 9B

PlaceMachineFileWriting codeWriting proseFirst wordReading (prefill)Tested
1Mac mini M4Apple M4, 16GBMLX (mlx-lm) on Metal, version mlx-lm 0.32.2MLX 4-bit20.5 tok/s20.4 to 20.5 over 3 runs20.6 tok/s20.5 to 20.6 over 3 runs0.20 s207 tok/sabout 19,000 tokens20 Oct 2026

Each figure is the middle of three runs with the model's thinking switched off, and the range is under it. First word is the wait after a short question. Reading is how fast the machine takes in a long document before it starts to answer, which other sites call prefill or prompt processing. The llama.cpp and Prism ML's llama.cpp rows were run with llama.cpp's own default sampling. The LM Studio rows were run with LM Studio's defaults, which include the model's own multi-token prediction. The "Qwen 3.8 27B with multi-token prediction" rows were run with llama.cpp's own default sampling; multi-token prediction, 2 tokens drafted a step. The MLX (mlx-lm) rows were run with MLX's own default sampling, which always takes the likeliest word (temperature 0). The four DGX Sparks are timed from another machine on the same network, so the first word includes the trip across it.

What I have found so far

  • My Sparks would run a little faster than the figures on this page.

    I cap their graphics chips at 2,200MHz, against about 2,400 uncapped, to cut their power use. When I tested the cap on one box in August, writing speed stayed within 1 per cent, reading was 2 to 4 per cent slower, and the chip's peak power fell from 55.5W to 43.3W.

  • DeepSeek V4.1 Flash 1017 on the four DGX Sparks: it reads a document of about 15,000 tokens in about 3 seconds, and 16 users at once get 3.1 times what one user gets, in total.

    The four DGX Sparks wrote code at 116.0 tokens a second with DeepSeek V4.1 Flash 1017 (DeepSeek's own release: experts 4-bit MXFP4, the rest 8-bit FP8), and read a document of about 15,000 tokens at 4,924 tokens a second. That is a wait of about 3 seconds before the first word (the size of the document divided by the speed).

    With DeepSeek V4.1 Flash 1017 thinking before it answers, the first word of the code answer came after about 18 seconds on the four Sparks. With thinking off it came after 0.24 seconds. In 2 of the 3 runs on the four Sparks it was still thinking when the 2,000 tokens ran out, so that wait comes from the one run that answered.

    With 16 users at once, the four DGX Sparks wrote 200 tokens a second in total with DeepSeek V4.1 Flash 1017, about 13.8 for each user. That is 3.1 times what one user on their own got (200 divided by 64.0).

  • GLM 5.3 Flash on the four DGX Sparks: it reads a document of about 16,000 tokens in about 5 seconds.

    The four DGX Sparks wrote code at 104.1 tokens a second with GLM 5.3 Flash (NVFP4 at 4 bits, dense layers at 8), and read a document of about 16,000 tokens at 3,159 tokens a second. That is a wait of about 5 seconds before the first word (the size of the document divided by the speed).

    With GLM 5.3 Flash thinking before it answers, the first word of the code answer came after about 0.5 seconds on the four Sparks. With thinking off it came after 0.15 seconds.

  • Qwen 3.8 27B on five machines: the RTX 4090 desktop writes code 6.1 times as fast as the HP ZBook Ultra G1a (llama.cpp on ROCm, in WSL 2), and two of my DGX Sparks read a long document 10 times as fast as the HP ZBook Ultra G1a (LM Studio, llama.cpp on Vulkan).

    With Qwen 3.8 27B on all of them (each machine in the 4-bit format its own software uses), the RTX 4090 desktop wrote code at 62.4 tokens a second, two of my DGX Sparks at 44.7, one DGX Spark on its own at 26.7, the HP ZBook Ultra G1a (LM Studio, llama.cpp on Vulkan) at 23.5, the Lenovo Yoga Pro 9n (llama.cpp on CUDA) at 15.2, the Lenovo Yoga Pro 9n (llama.cpp on CUDA, in WSL 2) at 14.1, the HP ZBook Ultra G1a (llama.cpp on Vulkan) at 12.1 and the HP ZBook Ultra G1a (llama.cpp on ROCm, in WSL 2) at 10.2.

    Two of my DGX Sparks read a document of about 19,000 tokens at 2,034 tokens a second, the RTX 4090 desktop at 1,994, one DGX Spark on its own at 1,188, the Lenovo Yoga Pro 9n (llama.cpp on CUDA) at 800, the Lenovo Yoga Pro 9n (llama.cpp on CUDA, in WSL 2) at 760, the HP ZBook Ultra G1a (llama.cpp on ROCm, in WSL 2) at 259, the HP ZBook Ultra G1a (llama.cpp on Vulkan) at 205 and the HP ZBook Ultra G1a (LM Studio, llama.cpp on Vulkan) at 194. That is a wait of about 9 seconds on the two Sparks, 9 seconds on the 4090, 16 seconds on the single Spark, 23 seconds on the Lenovo Yoga Pro 9n (llama.cpp on CUDA), 25 seconds on the Lenovo Yoga Pro 9n (llama.cpp on CUDA, in WSL 2), 72 seconds on the HP ZBook Ultra G1a (llama.cpp on ROCm, in WSL 2), 91 seconds on the HP ZBook Ultra G1a (llama.cpp on Vulkan) and 97 seconds on the HP ZBook Ultra G1a (LM Studio, llama.cpp on Vulkan) before the first word (the size of the document divided by each speed).

    With Qwen 3.8 27B thinking before it answers, the first word of the code answer came after about 7 seconds on the 4090, 14 seconds on the two Sparks (one run), 17 seconds on the single Spark (one run) and 22 seconds on the HP ZBook Ultra G1a (LM Studio, llama.cpp on Vulkan). With thinking off it came after 1.3 seconds at most.

    On the prose prompt with thinking on, Qwen 3.8 27B was still thinking when the 2,000 tokens ran out, which took 37 seconds on the 4090, 55 seconds on the two Sparks, 86 seconds on the single Spark and 104 seconds on the HP ZBook Ultra G1a (LM Studio, llama.cpp on Vulkan).

    Given room for 8,000 tokens, the prose answer began after 52 seconds in one run on the two Sparks and after 271 seconds in one run on the single Spark. The thinking before it ran to about 1,800 and 7,400 tokens, so most of that gap is the model thinking for longer.

  • Gemma 4 12B on five machines: the RTX 4090 desktop writes code 7.7 times as fast as the Mac mini M4, and reads a long document 44 times as fast.

    With the same model on each (Gemma 4 12B, Google's own 4-bit QAT file (Q4_0), GGUF), the RTX 4090 desktop wrote code at 99.7 tokens a second, the RTX 5070 Ti desktop at 92.5, the Lenovo Yoga Pro 9n (llama.cpp on CUDA) at 33.2, the Lenovo Yoga Pro 9n (llama.cpp on CUDA, in WSL 2) at 28.6, the HP ZBook Ultra G1a (llama.cpp on Vulkan) at 25.9, the HP ZBook Ultra G1a (llama.cpp on ROCm, in WSL 2) at 22.6 and the Mac mini M4 at 12.9.

    The RTX 4090 desktop read a document of about 19,000 tokens at 5,072 tokens a second, the RTX 5070 Ti desktop at 2,910, the Lenovo Yoga Pro 9n (llama.cpp on CUDA) at 1,513, the Lenovo Yoga Pro 9n (llama.cpp on CUDA, in WSL 2) at 1,439, the HP ZBook Ultra G1a (llama.cpp on ROCm, in WSL 2) at 380, the HP ZBook Ultra G1a (llama.cpp on Vulkan) at 182 and the Mac mini M4 at 115. That is a wait of about 4 seconds on the 4090, 6 seconds on the 5070 Ti, 12 seconds on the Lenovo Yoga Pro 9n (llama.cpp on CUDA), 13 seconds on the Lenovo Yoga Pro 9n (llama.cpp on CUDA, in WSL 2), 49 seconds on the HP ZBook Ultra G1a (llama.cpp on ROCm, in WSL 2), 103 seconds on the HP ZBook Ultra G1a (llama.cpp on Vulkan) and 162 seconds on the Mac mini before the first word (the size of the document divided by each speed).

    With Gemma 4 12B thinking before it answers, the first word of the code answer came after about 8 seconds on the 5070 Ti, 9 seconds on the 4090, 22 seconds on the Lenovo Yoga Pro 9n (llama.cpp on CUDA), 29 seconds on the Lenovo Yoga Pro 9n (llama.cpp on CUDA, in WSL 2), 36 seconds on the HP ZBook Ultra G1a (llama.cpp on Vulkan), 55 seconds on the Mac mini and 56 seconds on the HP ZBook Ultra G1a (llama.cpp on ROCm, in WSL 2). With thinking off it came after 1.0 second at most.

    With 16 users at once, the RTX 4090 desktop wrote 307 tokens a second in total with Gemma 4 12B, about 38.4 for each user. That is 3.4 times what one user on their own got (307 divided by 90.5).

    With 16 users at once, the RTX 5070 Ti desktop wrote 200 tokens a second in total with Gemma 4 12B, about 32.5 for each user. That is 2.4 times what one user on their own got (200 divided by 82.6).

    With 16 users at once, the HP ZBook Ultra G1a (llama.cpp on Vulkan) wrote 36 tokens a second in total with Gemma 4 12B, about 3.7 for each user. That is 1.6 times what one user on their own got (36 divided by 22.8).

    With 16 users at once, the HP ZBook Ultra G1a (llama.cpp on ROCm, in WSL 2) wrote 35 tokens a second in total with Gemma 4 12B, about 5.9 for each user. That is 1.7 times what one user on their own got (35 divided by 20.6).

    With 4 users at once, the Mac mini M4 wrote 26 tokens a second in total with Gemma 4 12B, about 9.5 for each user. That is 2.4 times what one user on their own got (26 divided by 10.9).

    With 16 users at once, the Lenovo Yoga Pro 9n (llama.cpp on CUDA) wrote 82 tokens a second in total with Gemma 4 12B, about 14.8 for each user. That is 2.5 times what one user on their own got (82 divided by 32.6).

    With 16 users at once, the Lenovo Yoga Pro 9n (llama.cpp on CUDA, in WSL 2) wrote 76 tokens a second in total with Gemma 4 12B, about 13.5 for each user. That is 2.7 times what one user on their own got (76 divided by 28.1).

  • Gemma 4 26B-A4B on four machines: the RTX 4090 desktop writes code 4.7 times as fast as the HP ZBook Ultra G1a (llama.cpp on ROCm, in WSL 2), and the RTX 4090 desktop reads a long document 27 times as fast as the HP ZBook Ultra G1a (llama.cpp on Vulkan).

    With the same model on each (Gemma 4 26B-A4B, UD-IQ4_XS, about 4 bits, GGUF), the RTX 4090 desktop wrote code at 161.4 tokens a second, the Lenovo Yoga Pro 9n (llama.cpp on CUDA) at 60.7, the RTX 5070 Ti desktop at 59.4, the Lenovo Yoga Pro 9n (llama.cpp on CUDA, in WSL 2) at 58.3, the HP ZBook Ultra G1a (llama.cpp on Vulkan) at 43.3 and the HP ZBook Ultra G1a (llama.cpp on ROCm, in WSL 2) at 34.6.

    The RTX 4090 desktop read a document of about 19,000 tokens at 7,257 tokens a second, the Lenovo Yoga Pro 9n (llama.cpp on CUDA) at 2,328, the Lenovo Yoga Pro 9n (llama.cpp on CUDA, in WSL 2) at 2,209, the RTX 5070 Ti desktop at 2,199, the HP ZBook Ultra G1a (llama.cpp on ROCm, in WSL 2) at 596 and the HP ZBook Ultra G1a (llama.cpp on Vulkan) at 271. That is a wait of about 3 seconds on the 4090, 8 seconds on the Lenovo Yoga Pro 9n (llama.cpp on CUDA), 8 seconds on the Lenovo Yoga Pro 9n (llama.cpp on CUDA, in WSL 2), 8 seconds on the 5070 Ti, 31 seconds on the HP ZBook Ultra G1a (llama.cpp on ROCm, in WSL 2) and 69 seconds on the HP ZBook Ultra G1a (llama.cpp on Vulkan) before the first word (the size of the document divided by each speed).

    With Gemma 4 26B-A4B thinking before it answers, the first word of the code answer came after about 5 seconds on the 4090, 15 seconds on the Lenovo Yoga Pro 9n (llama.cpp on CUDA, in WSL 2), 17 seconds on the 5070 Ti, 17 seconds on the Lenovo Yoga Pro 9n (llama.cpp on CUDA), 22 seconds on the HP ZBook Ultra G1a (llama.cpp on Vulkan) and 31 seconds on the HP ZBook Ultra G1a (llama.cpp on ROCm, in WSL 2). With thinking off it came after 0.9 seconds at most. In 1 of the 3 runs on the HP ZBook Ultra G1a (llama.cpp on Vulkan) it was still thinking when the 2,000 tokens ran out, so that wait comes from the runs that answered.

    With 16 users at once, the RTX 4090 desktop wrote 383 tokens a second in total with Gemma 4 26B-A4B, about 39.9 for each user. That is 2.7 times what one user on their own got (383 divided by 139.5).

    With 16 users at once, the RTX 5070 Ti desktop wrote 124 tokens a second in total with Gemma 4 26B-A4B, about 9.5 for each user. That is 2.3 times what one user on their own got (124 divided by 54.3).

    With 16 users at once, the HP ZBook Ultra G1a (llama.cpp on Vulkan) wrote 52 tokens a second in total with Gemma 4 26B-A4B, about 4.7 for each user. That is 1.4 times what one user on their own got (52 divided by 37.6).

    With 16 users at once, the HP ZBook Ultra G1a (llama.cpp on ROCm, in WSL 2) wrote 48 tokens a second in total with Gemma 4 26B-A4B, about 6.7 for each user. That is 1.5 times what one user on their own got (48 divided by 31.9).

    With 16 users at once, the Lenovo Yoga Pro 9n (llama.cpp on CUDA) wrote 116 tokens a second in total with Gemma 4 26B-A4B, about 16.4 for each user. That is 1.9 times what one user on their own got (116 divided by 59.6).

    With 16 users at once, the Lenovo Yoga Pro 9n (llama.cpp on CUDA, in WSL 2) wrote 102 tokens a second in total with Gemma 4 26B-A4B, about 14.9 for each user. That is 2.0 times what one user on their own got (102 divided by 51.9).

  • gpt-oss-20b on four machines: the RTX 4090 desktop writes code 4.6 times as fast as the HP ZBook Ultra G1a (llama.cpp on ROCm, in WSL 2), and reads a long document 9.0 times as fast.

    With the same model on each (gpt-oss-20b, MXFP4, GGUF, thinking at its lowest level), the RTX 4090 desktop wrote code at 238.6 tokens a second, the RTX 5070 Ti desktop at 213.2, the Lenovo Yoga Pro 9n (llama.cpp on CUDA) at 80.4, the Lenovo Yoga Pro 9n (llama.cpp on CUDA, in WSL 2) at 78.2, the HP ZBook Ultra G1a (llama.cpp on Vulkan) at 67.2 and the HP ZBook Ultra G1a (llama.cpp on ROCm, in WSL 2) at 51.6.

    The RTX 4090 desktop read a document of about 15,000 tokens at 9,940 tokens a second, the RTX 5070 Ti desktop at 7,884, the Lenovo Yoga Pro 9n (llama.cpp on CUDA) at 4,415, the Lenovo Yoga Pro 9n (llama.cpp on CUDA, in WSL 2) at 3,530, the HP ZBook Ultra G1a (llama.cpp on Vulkan) at 1,220 and the HP ZBook Ultra G1a (llama.cpp on ROCm, in WSL 2) at 1,102. That is a wait of about 1.5 seconds on the 4090, 1.9 seconds on the 5070 Ti, 3 seconds on the Lenovo Yoga Pro 9n (llama.cpp on CUDA), 4 seconds on the Lenovo Yoga Pro 9n (llama.cpp on CUDA, in WSL 2), 13 seconds on the HP ZBook Ultra G1a (llama.cpp on Vulkan) and 14 seconds on the HP ZBook Ultra G1a (llama.cpp on ROCm, in WSL 2) before the first word (the size of the document divided by each speed).

    With gpt-oss-20b thinking before it answers, the first word of the code answer came after about 1.8 seconds on the 5070 Ti, 3 seconds on the 4090, 4 seconds on the Lenovo Yoga Pro 9n (llama.cpp on CUDA), 4 seconds on the Lenovo Yoga Pro 9n (llama.cpp on CUDA, in WSL 2), 7 seconds on the HP ZBook Ultra G1a (llama.cpp on Vulkan) and 7 seconds on the HP ZBook Ultra G1a (llama.cpp on ROCm, in WSL 2). With thinking off it came after 0.3 seconds at most.

    With 16 users at once, the RTX 4090 desktop wrote 624 tokens a second in total with gpt-oss-20b, about 58.6 for each user. That is 3.1 times what one user on their own got (624 divided by 202.1).

    With 16 users at once, the RTX 5070 Ti desktop wrote 560 tokens a second in total with gpt-oss-20b, about 50.9 for each user. That is 3.1 times what one user on their own got (560 divided by 182.8).

    With 16 users at once, the HP ZBook Ultra G1a (llama.cpp on Vulkan) wrote 98 tokens a second in total with gpt-oss-20b, about 8.9 for each user. That is 1.8 times what one user on their own got (98 divided by 55.5).

    With 16 users at once, the HP ZBook Ultra G1a (llama.cpp on ROCm, in WSL 2) wrote 91 tokens a second in total with gpt-oss-20b, about 11.8 for each user. That is 1.9 times what one user on their own got (91 divided by 48.6).

    With 16 users at once, the Lenovo Yoga Pro 9n (llama.cpp on CUDA) wrote 200 tokens a second in total with gpt-oss-20b, about 24.0 for each user. That is 2.5 times what one user on their own got (200 divided by 81.6).

    With 16 users at once, the Lenovo Yoga Pro 9n (llama.cpp on CUDA, in WSL 2) wrote 180 tokens a second in total with gpt-oss-20b, about 21.4 for each user. That is 2.4 times what one user on their own got (180 divided by 75.7).

  • Qwen 3.5 9B on five machines: the RTX 4090 desktop writes code 7.8 times as fast as the Mac mini M4, and reads a long document 46 times as fast.

    With the same model on each (Qwen 3.5 9B, Q4_K_M, GGUF), the RTX 4090 desktop wrote code at 137.6 tokens a second, the RTX 5070 Ti desktop at 126.6, the Lenovo Yoga Pro 9n (llama.cpp on CUDA) at 44.6, the Lenovo Yoga Pro 9n (llama.cpp on CUDA, in WSL 2) at 40.5, the HP ZBook Ultra G1a (llama.cpp on Vulkan) at 38.1, the HP ZBook Ultra G1a (llama.cpp on ROCm, in WSL 2) at 32.9 and the Mac mini M4 at 17.7.

    The RTX 4090 desktop read a document of about 19,000 tokens at 8,584 tokens a second, the RTX 5070 Ti desktop at 5,275, the Lenovo Yoga Pro 9n (llama.cpp on CUDA) at 2,684, the Lenovo Yoga Pro 9n (llama.cpp on CUDA, in WSL 2) at 2,524, the HP ZBook Ultra G1a (llama.cpp on ROCm, in WSL 2) at 935, the HP ZBook Ultra G1a (llama.cpp on Vulkan) at 775 and the Mac mini M4 at 185. That is a wait of about 2 seconds on the 4090, 4 seconds on the 5070 Ti, 7 seconds on the Lenovo Yoga Pro 9n (llama.cpp on CUDA), 7 seconds on the Lenovo Yoga Pro 9n (llama.cpp on CUDA, in WSL 2), 20 seconds on the HP ZBook Ultra G1a (llama.cpp on ROCm, in WSL 2), 24 seconds on the HP ZBook Ultra G1a (llama.cpp on Vulkan) and 101 seconds on the Mac mini before the first word (the size of the document divided by each speed).

    With Qwen 3.5 9B thinking before it answers, the first word of the code answer came after about 1.5 seconds on the 4090 and 5 seconds on the Lenovo Yoga Pro 9n (llama.cpp on CUDA, in WSL 2). With thinking off it came after 0.3 seconds at most. In 2 of the 3 runs on the 4090 it was still thinking when the 2,000 tokens ran out, so that wait comes from the one run that answered. In 2 of the 3 runs on the Lenovo Yoga Pro 9n (llama.cpp on CUDA, in WSL 2) it was still thinking when the 2,000 tokens ran out, so that wait comes from the one run that answered.

    On the code prompt with thinking on, Qwen 3.5 9B was still thinking when the 2,000 tokens ran out, which took 16 seconds on the 5070 Ti, 45 seconds on the Lenovo Yoga Pro 9n (llama.cpp on CUDA), 53 seconds on the HP ZBook Ultra G1a (llama.cpp on Vulkan), 61 seconds on the HP ZBook Ultra G1a (llama.cpp on ROCm, in WSL 2) and 113 seconds on the Mac mini.

    On the prose prompt with thinking on, Qwen 3.5 9B was still thinking when the 2,000 tokens ran out, which took 15 seconds on the 4090, 16 seconds on the 5070 Ti, 45 seconds on the Lenovo Yoga Pro 9n (llama.cpp on CUDA), 50 seconds on the Lenovo Yoga Pro 9n (llama.cpp on CUDA, in WSL 2), 53 seconds on the HP ZBook Ultra G1a (llama.cpp on Vulkan) and 61 seconds on the HP ZBook Ultra G1a (llama.cpp on ROCm, in WSL 2).

    With 16 users at once, the RTX 4090 desktop wrote 576 tokens a second in total with Qwen 3.5 9B, about 49.1 for each user. That is 4.5 times what one user on their own got (576 divided by 126.8).

    With 16 users at once, the RTX 5070 Ti desktop wrote 420 tokens a second in total with Qwen 3.5 9B, about 40.3 for each user. That is 3.7 times what one user on their own got (420 divided by 113.4).

    With 16 users at once, the HP ZBook Ultra G1a (llama.cpp on Vulkan) wrote 76 tokens a second in total with Qwen 3.5 9B, about 5.9 for each user. That is 2.1 times what one user on their own got (76 divided by 35.8).

    With 16 users at once, the HP ZBook Ultra G1a (llama.cpp on ROCm, in WSL 2) wrote 107 tokens a second in total with Qwen 3.5 9B, about 11.5 for each user. That is 3.5 times what one user on their own got (107 divided by 30.9).

    With 16 users at once, the Mac mini M4 wrote 44 tokens a second in total with Qwen 3.5 9B, about 4.2 for each user. That is 2.8 times what one user on their own got (44 divided by 15.9).

    With 16 users at once, the Lenovo Yoga Pro 9n (llama.cpp on CUDA) wrote 188 tokens a second in total with Qwen 3.5 9B, about 17.1 for each user. That is 4.3 times what one user on their own got (188 divided by 43.9).

    With 16 users at once, the Lenovo Yoga Pro 9n (llama.cpp on CUDA, in WSL 2) wrote 167 tokens a second in total with Qwen 3.5 9B, about 15.6 for each user. That is 4.4 times what one user on their own got (167 divided by 38.0).

  • Ternary Bonsai 2 27B on three machines: the RTX 4090 desktop writes code 11 times as fast as the Mac mini M4, and reads a long document 63 times as fast.

    With the same model on each (Ternary Bonsai 2 27B, PTQ1_0, about 1.75 bits a weight, GGUF), the RTX 4090 desktop wrote code at 105.5 tokens a second, the RTX 5070 Ti desktop at 98.8 and the Mac mini M4 at 9.4.

    The RTX 4090 desktop read a document of about 19,000 tokens at 2,941 tokens a second, the RTX 5070 Ti desktop at 1,730 and the Mac mini M4 at 47. That is a wait of about 6 seconds on the 4090, 11 seconds on the 5070 Ti and 399 seconds on the Mac mini before the first word (the size of the document divided by each speed).

    With Ternary Bonsai 2 27B thinking before it answers, the first word of the code answer came after about 4 seconds on the 4090, 6 seconds on the 5070 Ti and 40 seconds on the Mac mini. With thinking off it came after 1.9 seconds at most.

    On the prose prompt with thinking on, Ternary Bonsai 2 27B was still thinking when the 2,000 tokens ran out, which took 19 seconds on the 4090 and 21 seconds on the 5070 Ti.

    With 16 users at once, the RTX 4090 desktop wrote 309 tokens a second in total with Ternary Bonsai 2 27B, about 29.5 for each user. That is 3.3 times what one user on their own got (309 divided by 93.6).

    With 16 users at once, the RTX 5070 Ti desktop wrote 213 tokens a second in total with Ternary Bonsai 2 27B, about 22.7 for each user. That is 2.5 times what one user on their own got (213 divided by 86.9).

    With 4 users at once, the Mac mini M4 wrote 5 tokens a second in total with Ternary Bonsai 2 27B, about 1.5 for each user. That is 0.7 times what one user on their own got (5 divided by 7.6).

  • Nemotron 3.5 Bolt 74B on two machines: the Lenovo Yoga Pro 9n (llama.cpp on CUDA) writes code 1.8 times as fast as the HP ZBook Ultra G1a (llama.cpp on ROCm, in WSL 2), and reads a long document 3.5 times as fast.

    With the same model on each (Nemotron 3.5 Bolt 74B, NVIDIA's 24GB GGUF, about 2 bits a weight), the Lenovo Yoga Pro 9n (llama.cpp on CUDA) wrote code at 41.5 tokens a second, the Lenovo Yoga Pro 9n (llama.cpp on CUDA, in WSL 2) at 37.4, the HP ZBook Ultra G1a (llama.cpp on Vulkan) at 28.6 and the HP ZBook Ultra G1a (llama.cpp on ROCm, in WSL 2) at 23.3.

    The Lenovo Yoga Pro 9n (llama.cpp on CUDA) read a document of about 18,000 tokens at 1,153 tokens a second, the Lenovo Yoga Pro 9n (llama.cpp on CUDA, in WSL 2) at 1,081, the HP ZBook Ultra G1a (llama.cpp on Vulkan) at 371 and the HP ZBook Ultra G1a (llama.cpp on ROCm, in WSL 2) at 332. That is a wait of about 16 seconds on the Lenovo Yoga Pro 9n (llama.cpp on CUDA), 17 seconds on the Lenovo Yoga Pro 9n (llama.cpp on CUDA, in WSL 2), 50 seconds on the HP ZBook Ultra G1a (llama.cpp on Vulkan) and 56 seconds on the HP ZBook Ultra G1a (llama.cpp on ROCm, in WSL 2) before the first word (the size of the document divided by each speed).

  • Qwen 3.6 35B-A3B on two machines: the Lenovo Yoga Pro 9n (llama.cpp on CUDA) writes code 1.8 times as fast as the HP ZBook Ultra G1a (llama.cpp on ROCm, in WSL 2), and reads a long document 2.5 times as fast.

    With the same model on each (Qwen 3.6 35B-A3B, UD-Q4_K_M, about 4 bits, GGUF), the Lenovo Yoga Pro 9n (llama.cpp on CUDA) wrote code at 72.1 tokens a second, the Lenovo Yoga Pro 9n (llama.cpp on CUDA, in WSL 2) at 69.7, the HP ZBook Ultra G1a (llama.cpp on Vulkan) at 52.3 and the HP ZBook Ultra G1a (llama.cpp on ROCm, in WSL 2) at 39.2.

    The Lenovo Yoga Pro 9n (llama.cpp on CUDA) read a document of about 19,000 tokens at 2,339 tokens a second, the Lenovo Yoga Pro 9n (llama.cpp on CUDA, in WSL 2) at 2,117, the HP ZBook Ultra G1a (llama.cpp on Vulkan) at 1,006 and the HP ZBook Ultra G1a (llama.cpp on ROCm, in WSL 2) at 935. That is a wait of about 8 seconds on the Lenovo Yoga Pro 9n (llama.cpp on CUDA), 9 seconds on the Lenovo Yoga Pro 9n (llama.cpp on CUDA, in WSL 2), 19 seconds on the HP ZBook Ultra G1a (llama.cpp on Vulkan) and 20 seconds on the HP ZBook Ultra G1a (llama.cpp on ROCm, in WSL 2) before the first word (the size of the document divided by each speed).

    On the code prompt with thinking on, Qwen 3.6 35B-A3B was still thinking when the 2,000 tokens ran out, which took 28 seconds on the Lenovo Yoga Pro 9n (llama.cpp on CUDA), 29 seconds on the Lenovo Yoga Pro 9n (llama.cpp on CUDA, in WSL 2), 38 seconds on the HP ZBook Ultra G1a (llama.cpp on Vulkan) and 52 seconds on the HP ZBook Ultra G1a (llama.cpp on ROCm, in WSL 2).

    On the prose prompt with thinking on, Qwen 3.6 35B-A3B was still thinking when the 2,000 tokens ran out, which took 28 seconds on the Lenovo Yoga Pro 9n (llama.cpp on CUDA), 29 seconds on the Lenovo Yoga Pro 9n (llama.cpp on CUDA, in WSL 2), 38 seconds on the HP ZBook Ultra G1a (llama.cpp on Vulkan) and 52 seconds on the HP ZBook Ultra G1a (llama.cpp on ROCm, in WSL 2).

    With 16 users at once, the HP ZBook Ultra G1a (llama.cpp on Vulkan) wrote 75 tokens a second in total with Qwen 3.6 35B-A3B, about 5.7 for each user. That is 1.5 times what one user on their own got (75 divided by 50.0).

    With 16 users at once, the HP ZBook Ultra G1a (llama.cpp on ROCm, in WSL 2) wrote 68 tokens a second in total with Qwen 3.6 35B-A3B, about 7.7 for each user. That is 2.0 times what one user on their own got (68 divided by 34.0).

    With 16 users at once, the Lenovo Yoga Pro 9n (llama.cpp on CUDA) wrote 161 tokens a second in total with Qwen 3.6 35B-A3B, about 14.8 for each user. That is 2.3 times what one user on their own got (161 divided by 70.1).

    With 16 users at once, the Lenovo Yoga Pro 9n (llama.cpp on CUDA, in WSL 2) wrote 143 tokens a second in total with Qwen 3.6 35B-A3B, about 13.5 for each user. That is 2.4 times what one user on their own got (143 divided by 60.6).

  • Qwen 3.8 27B with multi-token prediction on two machines: the Lenovo Yoga Pro 9n (llama.cpp on CUDA) writes code 1.6 times as fast as the HP ZBook Ultra G1a (llama.cpp on ROCm, in WSL 2), and the Lenovo Yoga Pro 9n (llama.cpp on CUDA) reads a long document 3.6 times as fast as the HP ZBook Ultra G1a (llama.cpp on Vulkan).

    With the same model on each (Qwen 3.8 27B with multi-token prediction, Q4_K_M, GGUF), the Lenovo Yoga Pro 9n (llama.cpp on CUDA) wrote code at 33.3 tokens a second, the Lenovo Yoga Pro 9n (llama.cpp on CUDA, in WSL 2) at 30.7, the HP ZBook Ultra G1a (llama.cpp on Vulkan) at 25.0 and the HP ZBook Ultra G1a (llama.cpp on ROCm, in WSL 2) at 20.2.

    The Lenovo Yoga Pro 9n (llama.cpp on CUDA) read a document of about 19,000 tokens at 772 tokens a second, the Lenovo Yoga Pro 9n (llama.cpp on CUDA, in WSL 2) at 734, the HP ZBook Ultra G1a (llama.cpp on ROCm, in WSL 2) at 237 and the HP ZBook Ultra G1a (llama.cpp on Vulkan) at 215. That is a wait of about 24 seconds on the Lenovo Yoga Pro 9n (llama.cpp on CUDA), 26 seconds on the Lenovo Yoga Pro 9n (llama.cpp on CUDA, in WSL 2), 79 seconds on the HP ZBook Ultra G1a (llama.cpp on ROCm, in WSL 2) and 87 seconds on the HP ZBook Ultra G1a (llama.cpp on Vulkan) before the first word (the size of the document divided by each speed).

  • Qwen 3.5 9B on the Mac mini M4: it reads a document of about 19,000 tokens in about 91 seconds, and 16 users at once get 3.1 times what one user gets, in total.

    The Mac mini M4 wrote code at 20.5 tokens a second with Qwen 3.5 9B (MLX 4-bit), and read a document of about 19,000 tokens at 207 tokens a second. That is a wait of about 91 seconds before the first word (the size of the document divided by the speed).

    On the code prompt with thinking on, Qwen 3.5 9B was still thinking when the 2,000 tokens ran out, which took 98 seconds on the Mac mini.

    On the prose prompt with thinking on, Qwen 3.5 9B was still thinking when the 2,000 tokens ran out, which took 98 seconds on the Mac mini.

    With 16 users at once, the Mac mini M4 wrote 54 tokens a second in total with Qwen 3.5 9B, about 5.2 for each user. That is 3.1 times what one user on their own got (54 divided by 17.6).

The machines

Four DGX Sparks4 x 128GB, joined at 200Gb/s. Graphics chips capped at 2,200MHz to cut power use.8 results below
Two DGX Sparks2 x 128GB, joined at 200Gb/s. Graphics chips capped at 2,200MHz to cut power use.3 results below
One DGX Spark128GB, one box on its own. Graphics chips capped at 2,200MHz to cut power use.3 results below
RTX 4090 desktop24GB of graphics memory, Ryzen 9 7950X, 96GB of memory7 results below
RTX 5070 Ti desktop16GB of graphics memory, Ryzen 9 5950X, 32GB of memory5 results below
HP ZBook Ultra G1aA Strix Halo laptop: Ryzen AI Max+ 395 with Radeon 8060S graphics, and 64GB of memory shared between them19 results below
Mac mini M4Apple M4 with 16GB of memory shared between the processor and the graphics4 results below
Lenovo Yoga Pro 9n (RTX Spark)An RTX Spark laptop: NVIDIA's N1X, an Arm processor with Blackwell graphics, and 128GB of memory shared between them19 results below

The same test with thinking switched on

MachineModelCode promptProse promptWait before the codeWait before the proseTested
Four DGX SparksSGLang across all four boxesgraphics chips capped at 2,200MHz to cut power useDeepSeek V4.1 Flash 1017DeepSeek's own release: experts 4-bit MXFP4, the rest 8-bit FP892.5 tok/s87.6 to 92.8 over 3 runs79.6 tok/s70.2 to 85.5 over 3 runs18.0 sabout 2,000 tokens of thinkingstill thinking at 2,000 tokens in 2 of 3 runs16.8 s12.5 to 21.1 s over 2 runsabout 1,800 tokens of thinkingstill thinking at 2,000 tokens in 1 of 3 runs20 Oct 2026
Four DGX SparksvLLM across all four boxes, version 0.1.dev20051graphics chips capped at 2,200MHz to cut power useGLM 5.3 FlashNVFP4 at 4 bits, dense layers at 8106.1 tok/s106.0 to 111.1 over 3 runs61.8 tok/s61.7 to 63.0 over 3 runs0.5 s0.4 to 0.8 s over 3 runsabout 40 tokens of thinking1.3 s1.3 to 1.8 s over 3 runsabout 80 tokens of thinking11 Oct 2026
Two DGX SparksvLLM across two boxes, version 0.1.dev20003graphics chips capped at 2,200MHz to cut power useQwen 3.8 27BNVFP4 at 4 bits40.9 tok/s38.5 to 41.5 over 3 runs36.7 tok/s35.6 to 38.5 over 3 runs14.2 sone run onlyabout 540 tokens of thinkingover 55 sstill thinking at 2,000 tokens11 Oct 2026
One DGX SparkvLLM on one box, version 0.1.dev20003graphics chips capped at 2,200MHz to cut power useQwen 3.8 27BNVFP4 at 4 bits25.2 tok/s25.1 to 26.3 over 3 runs23.3 tok/s21.6 to 23.5 over 3 runs17.3 sone run onlyabout 410 tokens of thinkingover 86 sstill thinking at 2,000 tokens11 Oct 2026
RTX 4090 desktopllama.cpp on CUDA, version b11669Gemma 4 12BGoogle's own 4-bit QAT file (Q4_0), GGUF99.1 tok/s99.0 to 99.1 over 3 runs99.8 tok/s99.7 to 99.9 over 3 runs9.0 s8.3 to 11.0 s over 3 runsabout 870 tokens of thinking11.2 s10.4 to 11.4 s over 3 runsabout 1,100 tokens of thinking20 Oct 2026
RTX 4090 desktopllama.cpp on CUDA, version b11669Gemma 4 26B-A4BUD-IQ4_XS, about 4 bits, GGUF160.8 tok/s160.8 to 160.9 over 3 runs160.8 tok/s160.7 to 161.4 over 3 runs5.0 s4.4 to 7.5 s over 3 runsabout 770 tokens of thinking9.7 s8.8 to 10.5 s over 2 runsabout 1,630 tokens of thinkingstill thinking at 2,000 tokens in 1 of 3 runs20 Oct 2026
RTX 4090 desktopllama.cpp on CUDA, version b11669gpt-oss-20bMXFP4, GGUF, thinking at its lowest level237.9 tok/s237.0 to 238.4 over 3 runs240.8 tok/s240.7 to 240.9 over 3 runs2.8 s1.8 to 3.3 s over 3 runsabout 580 tokens of thinking1.4 s1.2 to 2.2 s over 3 runsabout 240 tokens of thinking20 Oct 2026
RTX 4090 desktopllama.cpp on CUDA, version b11669Qwen 3.5 9BQ4_K_M, GGUF138.1 tok/s138.0 to 138.2 over 3 runs138.1 tok/s138.0 to 138.2 over 3 runs1.5 sabout 2,000 tokens of thinkingstill thinking at 2,000 tokens in 2 of 3 runsover 15 sstill thinking at 2,000 tokens20 Oct 2026
RTX 4090 desktopLM Studio, llama.cpp on CUDA, version 2.55.0Qwen 3.8 27BQ4_K_M, GGUF58.5 tok/s57.2 to 59.6 over 3 runs54.7 tok/s54.5 to 55.7 over 3 runs6.7 s6.5 to 7.8 s over 3 runsabout 350 tokens of thinkingover 37 sstill thinking at 2,000 tokens11 Oct 2026
RTX 4090 desktopPrism ML's llama.cpp on CUDA, version b10787Ternary Bonsai 2 27BPTQ1_0, about 1.75 bits a weight, GGUF105.6 tok/s105.5 to 105.6 over 3 runs105.5 tok/s105.5 to 105.6 over 3 runs3.5 s3.0 to 5.6 s over 3 runsabout 340 tokens of thinkingover 19 sstill thinking at 2,000 tokens20 Oct 2026
RTX 5070 Ti desktopllama.cpp on CUDA, version b11669Gemma 4 12BGoogle's own 4-bit QAT file (Q4_0), GGUF91.8 tok/s92.4 tok/s91.8 to 92.8 over 3 runs8.4 s7.7 to 13.8 s over 3 runsabout 750 tokens of thinking13.1 s11.5 to 16.7 s over 3 runsabout 1,180 tokens of thinking20 Oct 2026
RTX 5070 Ti desktopllama.cpp on CUDA, version b11669Gemma 4 26B-A4BUD-IQ4_XS, about 4 bits, GGUF59.3 tok/s58.6 to 59.4 over 3 runs59.3 tok/s58.6 to 59.5 over 3 runs17.3 s13.6 to 21.0 s over 3 runsabout 1,010 tokens of thinking28.9 s22.0 to 29.5 s over 3 runsabout 1,660 tokens of thinking21 Oct 2026
RTX 5070 Ti desktopllama.cpp on CUDA, version b11669gpt-oss-20bMXFP4, GGUF, thinking at its lowest level213.0 tok/s212.2 to 213.1 over 3 runs213.0 tok/s212.8 to 215.5 over 3 runs1.8 s1.8 to 3.3 s over 3 runsabout 340 tokens of thinking2.7 sabout 2,000 tokens of thinkingstill thinking at 2,000 tokens in 2 of 3 runs21 Oct 2026
RTX 5070 Ti desktopllama.cpp on CUDA, version b11669Qwen 3.5 9BQ4_K_M, GGUF126.4 tok/s126.3 to 126.4 over 3 runs126.4 tok/s126.1 to 126.4 over 3 runsover 16 sstill thinking at 2,000 tokensover 16 sstill thinking at 2,000 tokens20 Oct 2026
RTX 5070 Ti desktopPrism ML's llama.cpp on CUDA, version b10787Ternary Bonsai 2 27BPTQ1_0, about 1.75 bits a weight, GGUF98.9 tok/s98.8 to 98.9 over 3 runs98.9 tok/s98.6 to 98.9 over 3 runs6.2 s5.9 to 6.2 s over 3 runsabout 580 tokens of thinkingover 21 sstill thinking at 2,000 tokens20 Oct 2026
HP ZBook Ultra G1aStrix Halo laptop, Ryzen AI Max+ 395, 64GBllama.cpp on Vulkan, version b11669on mains power, Windows power mode BalancedGemma 4 12BGoogle's own 4-bit QAT file (Q4_0), GGUF25.8 tok/s25.9 tok/s25.9 to 26.2 over 3 runs36.5 s29.6 to 50.3 s over 3 runsabout 940 tokens of thinking48.1 s42.7 to 66.3 s over 3 runsabout 1,240 tokens of thinking22 Oct 2026
HP ZBook Ultra G1aStrix Halo laptop, Ryzen AI Max+ 395, 64GBllama.cpp on ROCm, in WSL 2, version b11669on mains power, Windows power mode Best performanceGemma 4 12BGoogle's own 4-bit QAT file (Q4_0), GGUF22.4 tok/s22.3 to 22.4 over 3 runs22.7 tok/s22.5 to 22.7 over 3 runs56.5 s41.7 to 69.4 s over 3 runsabout 1,270 tokens of thinking45.2 s44.9 to 57.0 s over 3 runsabout 1,010 tokens of thinking27 Oct 2026
HP ZBook Ultra G1aStrix Halo laptop, Ryzen AI Max+ 395, 64GBllama.cpp on Vulkan, version b11669on mains power, Windows power mode BalancedGemma 4 26B-A4BUD-IQ4_XS, about 4 bits, GGUF43.0 tok/s42.9 to 43.4 over 3 runs43.5 tok/s43.4 to 43.9 over 3 runs22.5 s19.0 to 26.0 s over 2 runsabout 1,120 tokens of thinkingstill thinking at 2,000 tokens in 1 of 3 runs33.5 s29.4 to 37.7 s over 2 runsabout 1,620 tokens of thinkingstill thinking at 2,000 tokens in 1 of 3 runs22 Oct 2026
HP ZBook Ultra G1aStrix Halo laptop, Ryzen AI Max+ 395, 64GBllama.cpp on ROCm, in WSL 2, version b11669on mains power, Windows power mode Best performanceGemma 4 26B-A4BUD-IQ4_XS, about 4 bits, GGUF34.7 tok/s34.6 to 34.8 over 3 runs34.7 tok/s34.5 to 35.1 over 3 runs30.9 s23.5 to 47.7 s over 3 runsabout 1,080 tokens of thinking38.4 s30.6 to 46.3 s over 2 runsabout 1,580 tokens of thinkingstill thinking at 2,000 tokens in 1 of 3 runs27 Oct 2026
HP ZBook Ultra G1aStrix Halo laptop, Ryzen AI Max+ 395, 64GBllama.cpp on Vulkan, version b11669on mains power, Windows power mode Balancedgpt-oss-20bMXFP4, GGUF, thinking at its lowest level66.5 tok/s66.0 to 67.0 over 3 runs66.0 tok/s65.9 to 67.2 over 3 runs6.9 s4.5 to 7.3 s over 3 runsabout 420 tokens of thinking3.7 s3.7 to 3.7 s over 2 runsabout 200 tokens of thinkingstill thinking at 2,000 tokens in 1 of 3 runs22 Oct 2026
HP ZBook Ultra G1aStrix Halo laptop, Ryzen AI Max+ 395, 64GBllama.cpp on ROCm, in WSL 2, version b11669on mains power, Windows power mode Best performancegpt-oss-20bMXFP4, GGUF, thinking at its lowest level52.3 tok/s51.8 to 52.3 over 3 runs52.3 tok/s52.1 to 52.6 over 3 runs7.2 s6.7 to 12.3 s over 3 runsabout 360 tokens of thinking13.3 s3.9 to 22.6 s over 2 runsabout 1,160 tokens of thinkingstill thinking at 2,000 tokens in 1 of 3 runs27 Oct 2026
HP ZBook Ultra G1aStrix Halo laptop, Ryzen AI Max+ 395, 64GBllama.cpp on VulkanNemotron 3.5 Bolt 74Bnot tested with thinking on yet
HP ZBook Ultra G1aStrix Halo laptop, Ryzen AI Max+ 395, 64GBllama.cpp on ROCm, in WSL 2Nemotron 3.5 Bolt 74Bnot tested with thinking on yet
HP ZBook Ultra G1aStrix Halo laptop, Ryzen AI Max+ 395, 64GBllama.cpp on Vulkan, version b11669on mains power, Windows power mode Best performanceQwen 3.5 9BQ4_K_M, GGUF38.0 tok/s38.0 to 38.1 over 2 runs38.0 tok/s38.0 to 38.1 over 3 runsover 53 sstill thinking at 2,000 tokensover 53 sstill thinking at 2,000 tokens26 Oct 2026
HP ZBook Ultra G1aStrix Halo laptop, Ryzen AI Max+ 395, 64GBllama.cpp on ROCm, in WSL 2, version b11669on mains power, Windows power mode Best performanceQwen 3.5 9BQ4_K_M, GGUF33.0 tok/s32.8 to 33.1 over 3 runs32.9 tok/s32.9 to 33.0 over 3 runsover 61 sstill thinking at 2,000 tokensover 61 sstill thinking at 2,000 tokens27 Oct 2026
HP ZBook Ultra G1aStrix Halo laptop, Ryzen AI Max+ 395, 64GBllama.cpp on Vulkan, version b11669on mains power, Windows power mode Best performanceQwen 3.6 35B-A3BUD-Q4_K_M, about 4 bits, GGUF52.9 tok/s52.3 to 52.9 over 3 runs53.1 tok/s52.5 to 53.1 over 3 runsover 38 sstill thinking at 2,000 tokensover 38 sstill thinking at 2,000 tokens27 Oct 2026
HP ZBook Ultra G1aStrix Halo laptop, Ryzen AI Max+ 395, 64GBllama.cpp on ROCm, in WSL 2, version b11669on mains power, Windows power mode Best performanceQwen 3.6 35B-A3BUD-Q4_K_M, about 4 bits, GGUF39.3 tok/s39.0 to 39.5 over 3 runs38.9 tok/s38.9 to 39.2 over 3 runsover 52 sstill thinking at 2,000 tokensover 52 sstill thinking at 2,000 tokens27 Oct 2026
HP ZBook Ultra G1aStrix Halo laptop, Ryzen AI Max+ 395, 64GBLM Studio, llama.cpp on Vulkan, version 2.55.0on mains power, Windows power mode BalancedQwen 3.8 27BQ4_K_M, GGUF21.1 tok/s20.5 to 21.3 over 3 runs19.5 tok/s19.1 to 19.8 over 2 runs22.2 s19.1 to 34.8 s over 3 runsabout 410 tokens of thinkingover 104 sstill thinking at 2,000 tokens11 Oct 2026
HP ZBook Ultra G1aStrix Halo laptop, Ryzen AI Max+ 395, 64GBllama.cpp on VulkanQwen 3.8 27Bnot tested with thinking on yet
HP ZBook Ultra G1aStrix Halo laptop, Ryzen AI Max+ 395, 64GBllama.cpp on ROCm, in WSL 2Qwen 3.8 27Bnot tested with thinking on yet
HP ZBook Ultra G1aStrix Halo laptop, Ryzen AI Max+ 395, 64GBllama.cpp on ROCm, in WSL 2Qwen 3.8 27B with multi-token predictionnot tested with thinking on yet
HP ZBook Ultra G1aStrix Halo laptop, Ryzen AI Max+ 395, 64GBllama.cpp on VulkanQwen 3.8 27B with multi-token predictionnot tested with thinking on yet
Mac mini M4Apple M4, 16GBllama.cpp on Metal, version b11669Gemma 4 12BGoogle's own 4-bit QAT file (Q4_0), GGUF12.8 tok/s12.8 to 12.9 over 3 runs12.9 tok/s12.7 to 13.0 over 3 runs55.2 s49.2 to 65.4 s over 3 runsabout 710 tokens of thinking108.9 s80.6 to 128.8 s over 3 runsabout 1,400 tokens of thinking20 Oct 2026
Lenovo Yoga Pro 9n (RTX Spark)RTX Spark laptop, NVIDIA N1X, 128GBllama.cpp on CUDA, version b11669on mains power, Windows power mode Best performanceGemma 4 12BGoogle's own 4-bit QAT file (Q4_0), GGUF32.9 tok/s32.8 to 33.2 over 3 runs33.2 tok/s32.9 to 33.5 over 3 runs21.9 s20.9 to 22.7 s over 3 runsabout 740 tokens of thinking42.5 s33.3 to 43.3 s over 3 runsabout 1,420 tokens of thinking29 Oct 2026
Lenovo Yoga Pro 9n (RTX Spark)RTX Spark laptop, NVIDIA N1X, 128GBllama.cpp on CUDA, in WSL 2, version b11669on mains power, Windows power mode Best performanceGemma 4 12BGoogle's own 4-bit QAT file (Q4_0), GGUF28.7 tok/s28.6 to 28.9 over 3 runs28.8 tok/s28.7 to 29.6 over 3 runs29.0 s29.0 to 35.6 s over 3 runsabout 860 tokens of thinking41.4 s40.4 to 47.0 s over 3 runsabout 1,210 tokens of thinking29 Oct 2026
Lenovo Yoga Pro 9n (RTX Spark)RTX Spark laptop, NVIDIA N1X, 128GBllama.cpp on CUDA, version b11669on mains power, Windows power mode Best performanceGemma 4 26B-A4BUD-IQ4_XS, about 4 bits, GGUF59.9 tok/s59.7 to 60.3 over 3 runs61.2 tok/s59.9 to 61.4 over 3 runs17.3 s15.9 to 27.0 s over 3 runsabout 1,060 tokens of thinking17.8 s17.3 to 18.3 s over 2 runsabout 1,130 tokens of thinkingstill thinking at 2,000 tokens in 1 of 3 runs29 Oct 2026
Lenovo Yoga Pro 9n (RTX Spark)RTX Spark laptop, NVIDIA N1X, 128GBllama.cpp on CUDA, in WSL 2, version b11669on mains power, Windows power mode Best performanceGemma 4 26B-A4BUD-IQ4_XS, about 4 bits, GGUF57.6 tok/s56.4 to 58.2 over 3 runs57.8 tok/s57.6 to 58.1 over 3 runs14.9 s14.0 to 20.8 s over 3 runsabout 890 tokens of thinking31.1 s29.0 to 33.2 s over 2 runsabout 1,900 tokens of thinkingstill thinking at 2,000 tokens in 1 of 3 runs29 Oct 2026
Lenovo Yoga Pro 9n (RTX Spark)RTX Spark laptop, NVIDIA N1X, 128GBllama.cpp on CUDA, version b11669on mains power, Windows power mode Best performancegpt-oss-20bMXFP4, GGUF, thinking at its lowest level81.5 tok/s79.5 to 81.9 over 3 runs80.8 tok/s80.5 to 81.2 over 3 runs4.3 s3.1 to 10.7 s over 3 runsabout 360 tokens of thinking6.4 sabout 2,000 tokens of thinkingstill thinking at 2,000 tokens in 2 of 3 runs29 Oct 2026
Lenovo Yoga Pro 9n (RTX Spark)RTX Spark laptop, NVIDIA N1X, 128GBllama.cpp on CUDA, in WSL 2, version b11669on mains power, Windows power mode Best performancegpt-oss-20bMXFP4, GGUF, thinking at its lowest level78.4 tok/s76.8 to 79.2 over 3 runs77.8 tok/s77.0 to 78.5 over 2 runs4.5 s3.6 to 22.0 s over 3 runsabout 350 tokens of thinking13.2 s7.6 to 18.8 s over 2 runsabout 1,020 tokens of thinking29 Oct 2026
Lenovo Yoga Pro 9n (RTX Spark)RTX Spark laptop, NVIDIA N1X, 128GBllama.cpp on CUDANemotron 3.5 Bolt 74Bnot tested with thinking on yet
Lenovo Yoga Pro 9n (RTX Spark)RTX Spark laptop, NVIDIA N1X, 128GBllama.cpp on CUDA, in WSL 2Nemotron 3.5 Bolt 74Bnot tested with thinking on yet
Mac mini M4Apple M4, 16GBMLX (mlx-lm) on Metal, version mlx-lm 0.32.2Qwen 3.5 9BMLX 4-bit20.5 tok/s20.4 to 20.5 over 3 runs20.5 tok/s20.3 to 20.5 over 3 runsover 98 sstill thinking at 2,000 tokensover 98 sstill thinking at 2,000 tokens20 Oct 2026
Mac mini M4Apple M4, 16GBllama.cpp on Metal, version b11669Qwen 3.5 9BQ4_K_M, GGUF17.7 tok/s17.7 to 17.8 over 3 runs17.7 tok/s17.6 to 17.7 over 3 runsover 113 sstill thinking at 2,000 tokens95.0 sabout 2,000 tokens of thinkingstill thinking at 2,000 tokens in 2 of 3 runs20 Oct 2026
Lenovo Yoga Pro 9n (RTX Spark)RTX Spark laptop, NVIDIA N1X, 128GBllama.cpp on CUDA, version b11669on mains power, Windows power mode Best performanceQwen 3.5 9BQ4_K_M, GGUF44.6 tok/s44.5 to 44.8 over 2 runs44.5 tok/s44.3 to 44.6 over 3 runsover 45 sstill thinking at 2,000 tokensover 45 sstill thinking at 2,000 tokens29 Oct 2026
Lenovo Yoga Pro 9n (RTX Spark)RTX Spark laptop, NVIDIA N1X, 128GBllama.cpp on CUDA, in WSL 2, version b11669on mains power, Windows power mode Best performanceQwen 3.5 9BQ4_K_M, GGUF40.3 tok/s40.1 to 40.3 over 3 runs40.5 tok/s39.5 to 40.8 over 3 runs5.2 sabout 2,000 tokens of thinkingstill thinking at 2,000 tokens in 2 of 3 runsover 50 sstill thinking at 2,000 tokens29 Oct 2026
Lenovo Yoga Pro 9n (RTX Spark)RTX Spark laptop, NVIDIA N1X, 128GBllama.cpp on CUDA, version b11669on mains power, Windows power mode Best performanceQwen 3.6 35B-A3BUD-Q4_K_M, about 4 bits, GGUF72.3 tok/s71.9 to 72.7 over 3 runs72.7 tok/s70.9 to 73.1 over 3 runsover 28 sstill thinking at 2,000 tokensover 28 sstill thinking at 2,000 tokens29 Oct 2026
Lenovo Yoga Pro 9n (RTX Spark)RTX Spark laptop, NVIDIA N1X, 128GBllama.cpp on CUDA, in WSL 2, version b11669on mains power, Windows power mode Best performanceQwen 3.6 35B-A3BUD-Q4_K_M, about 4 bits, GGUF68.7 tok/s68.7 to 69.8 over 3 runs68.7 tok/s68.4 to 70.9 over 3 runsover 29 sstill thinking at 2,000 tokensover 29 sstill thinking at 2,000 tokens29 Oct 2026
Lenovo Yoga Pro 9n (RTX Spark)RTX Spark laptop, NVIDIA N1X, 128GBllama.cpp on CUDAQwen 3.8 27Bnot tested with thinking on yet
Lenovo Yoga Pro 9n (RTX Spark)RTX Spark laptop, NVIDIA N1X, 128GBllama.cpp on CUDA, in WSL 2Qwen 3.8 27Bnot tested with thinking on yet
Lenovo Yoga Pro 9n (RTX Spark)RTX Spark laptop, NVIDIA N1X, 128GBllama.cpp on CUDAQwen 3.8 27B with multi-token predictionnot tested with thinking on yet
Lenovo Yoga Pro 9n (RTX Spark)RTX Spark laptop, NVIDIA N1X, 128GBllama.cpp on CUDA, in WSL 2Qwen 3.8 27B with multi-token predictionnot tested with thinking on yet
Mac mini M4Apple M4, 16GBPrism ML's llama.cpp on Metal, version b10787Ternary Bonsai 2 27BPTQ1_0, about 1.75 bits a weight, GGUF9.5 tok/s9.4 to 9.6 over 3 runs9.4 tok/s9.4 to 9.5 over 3 runs40.0 s37.0 to 52.7 s over 3 runsabout 370 tokens of thinking42.6 sabout 2,000 tokens of thinkingstill thinking at 2,000 tokens in 2 of 3 runs20 Oct 2026

Thinking is the model working through the problem before it answers. For DeepSeek V4.1 Flash 1017, thinking on means high, the middle of the model's three thinking levels (75 on its scale of 1 to 100), on every machine. For GLM 5.3 Flash, thinking on means high, the middle of the model's three thinking levels, on every machine. For Qwen 3.8 27B, thinking on means medium, the middle of the model's three thinking levels, on every machine. For Gemma 4 12B, thinking on means its single thinking setting (it has no levels), on every machine. For Gemma 4 26B-A4B, thinking on means its single thinking setting (it has no levels), on every machine. For gpt-oss-20b, thinking on means medium, the middle of the model's three thinking levels, on every machine. For Qwen 3.5 9B, thinking on means its single thinking setting (it has no levels), on every machine. For Ternary Bonsai 2 27B, thinking on means medium, the middle of the model's three thinking levels, on every machine. For Qwen 3.6 35B-A3B, thinking on means its single thinking setting (it has no levels), on every machine. The speeds in this table count the tokens it thinks with and the tokens of the answer. The wait is from sending the prompt to the first word of the answer, and it is the middle of three runs, because the model thinks for a different length each time. The cap of 2,000 tokens covers the thinking and the answer together. A wait marked "one run only" was timed in a single separate run with room for 8,000 tokens, because the three runs of that row were made before the test timed the answer. Where a wait begins with "over", the model was still thinking when the 2,000 tokens ran out. The speed beside it is then the speed of its thinking, and the real wait is longer than the one shown.

Several users at once

MachineModel1 user2 users4 users8 users16 usersTested
Four DGX SparksSGLang across all four boxesgraphics chips capped at 2,200MHz to cut power useDeepSeek V4.1 Flash 1017DeepSeek's own release: experts 4-bit MXFP4, the rest 8-bit FP864.0 tok/s63.2 to 68.2 over 3 runs83.0 tok/s43.5 each82.6 to 85.3 over 3 runs119.5 tok/s32.1 each117.3 to 124.0 over 3 runs153.7 tok/s21.1 each152.5 to 155.7 over 3 runs200.3 tok/s13.8 each198.9 to 201.8 over 3 runs20 Oct 2026
RTX 4090 desktopllama.cpp on CUDA, version b11669Gemma 4 12BGoogle's own 4-bit QAT file (Q4_0), GGUF90.5 tok/s90.4 to 90.9 over 3 runs135.0 tok/s90.1 each134.8 to 163.0 over 3 runs205.2 tok/s79.7 each204.4 to 238.3 over 3 runs264.6 tok/s60.3 each263.9 to 325.6 over 3 runs307.3 tok/s38.4 each305.3 to 383.2 over 3 runs20 Oct 2026
RTX 4090 desktopllama.cpp on CUDA, version b11669Gemma 4 26B-A4BUD-IQ4_XS, about 4 bits, GGUF139.5 tok/s139.0 to 140.1 over 3 runs187.8 tok/s124.6 each187.7 to 219.5 over 3 runs281.8 tok/s103.0 each280.7 to 301.9 over 3 runs348.5 tok/s70.5 each344.9 to 412.7 over 3 runs383.4 tok/s39.9 each382.8 to 459.0 over 3 runs20 Oct 2026
RTX 4090 desktopllama.cpp on CUDA, version b11669gpt-oss-20bMXFP4, GGUF, thinking at its lowest level202.1 tok/s201.8 to 203.3 over 3 runs274.8 tok/s174.5 each274.3 to 304.5 over 3 runs388.9 tok/s128.7 each386.5 to 404.5 over 3 runs498.4 tok/s87.1 each495.3 to 539.2 over 3 runs623.5 tok/s58.6 each619.3 to 704.1 over 3 runs20 Oct 2026
RTX 4090 desktopllama.cpp on CUDA, version b11669Qwen 3.5 9BQ4_K_M, GGUF126.8 tok/s122.7 to 127.4 over 3 runs210.2 tok/s123.6 each209.5 to 225.8 over 3 runs335.3 tok/s102.1 each333.8 to 345.3 over 3 runs480.7 tok/s78.8 each471.2 to 500.3 over 3 runs576.1 tok/s49.1 each575.3 to 626.1 over 3 runs20 Oct 2026
RTX 4090 desktopPrism ML's llama.cpp on CUDA, version b10787Ternary Bonsai 2 27BPTQ1_0, about 1.75 bits a weight, GGUF93.6 tok/s92.5 to 93.7 over 3 runs140.6 tok/s86.4 each139.9 to 150.0 over 3 runs208.6 tok/s69.9 each204.9 to 215.0 over 3 runs250.6 tok/s44.1 each250.5 to 269.9 over 3 runs309.0 tok/s29.5 each305.3 to 340.6 over 3 runs20 Oct 2026
RTX 5070 Ti desktopllama.cpp on CUDA, version b11669Gemma 4 12BGoogle's own 4-bit QAT file (Q4_0), GGUF82.6 tok/s77.6 to 83.7 over 3 runs106.8 tok/s82.4 each103.2 to 146.7 over 3 runs148.0 tok/s70.4 each145.3 to 185.0 over 3 runs223.1 tok/s48.2 each171.4 to 223.1 over 2 runs200.1 tok/s32.5 each199.2 to 271.6 over 3 runs20 Oct 2026
RTX 5070 Ti desktopllama.cpp on CUDA, version b11669Gemma 4 26B-A4BUD-IQ4_XS, about 4 bits, GGUF54.3 tok/s53.6 to 55.2 over 3 runs68.6 tok/s42.1 each68.0 to 76.1 over 3 runs86.4 tok/s27.8 each85.4 to 93.9 over 3 runs99.7 tok/s16.8 each99.1 to 109.9 over 3 runs123.5 tok/s9.5 each113.1 to 123.5 over 2 runs21 Oct 2026
RTX 5070 Ti desktopllama.cpp on CUDA, version b11669gpt-oss-20bMXFP4, GGUF, thinking at its lowest level182.8 tok/s176.1 to 189.8 over 3 runs240.6 tok/s161.6 each240.6 to 285.6 over 3 runs309.8 tok/s111.8 each307.4 to 346.9 over 3 runs356.5 tok/s67.5 each356.3 to 409.8 over 3 runs559.5 tok/s50.9 each463.7 to 559.5 over 2 runs21 Oct 2026
RTX 5070 Ti desktopllama.cpp on CUDA, version b11669Qwen 3.5 9BQ4_K_M, GGUF113.4 tok/s110.0 to 116.3 over 3 runs186.6 tok/s112.9 each183.7 to 200.3 over 3 runs276.9 tok/s92.2 each268.5 to 295.3 over 3 runs357.1 tok/s66.6 each356.3 to 399.1 over 3 runs420.1 tok/s40.3 each414.5 to 474.9 over 3 runs20 Oct 2026
RTX 5070 Ti desktopPrism ML's llama.cpp on CUDA, version b10787Ternary Bonsai 2 27BPTQ1_0, about 1.75 bits a weight, GGUF86.9 tok/s84.0 to 87.2 over 3 runs122.5 tok/s82.6 each121.4 to 137.5 over 3 runs171.7 tok/s64.8 each164.1 to 186.4 over 3 runs183.5 tok/s37.0 each183.5 to 206.6 over 3 runs213.3 tok/s22.7 each212.7 to 240.4 over 3 runs20 Oct 2026
HP ZBook Ultra G1aStrix Halo laptop, Ryzen AI Max+ 395, 64GBllama.cpp on Vulkan, version b11669on mains power, Windows power mode BalancedGemma 4 12BGoogle's own 4-bit QAT file (Q4_0), GGUF22.8 tok/s22.5 to 23.0 over 3 runs28.0 tok/s21.9 each27.7 to 37.6 over 3 runs37.1 tok/s14.7 each36.1 to 44.9 over 3 runs45.7 tok/s9.4 each42.0 to 51.7 over 3 runs35.7 tok/s3.7 each35.6 to 43.9 over 3 runs22 Oct 2026
HP ZBook Ultra G1aStrix Halo laptop, Ryzen AI Max+ 395, 64GBllama.cpp on ROCm, in WSL 2, version b11669on mains power, Windows power mode Best performanceGemma 4 12BGoogle's own 4-bit QAT file (Q4_0), GGUF20.6 tok/s19.7 to 20.7 over 3 runs23.8 tok/s20.8 each23.4 to 35.8 over 3 runs30.3 tok/s17.0 each30.0 to 39.1 over 3 runs33.6 tok/s10.8 each33.3 to 44.8 over 3 runs34.7 tok/s5.9 each34.6 to 47.1 over 3 runs27 Oct 2026
HP ZBook Ultra G1aStrix Halo laptop, Ryzen AI Max+ 395, 64GBllama.cpp on Vulkan, version b11669on mains power, Windows power mode BalancedGemma 4 26B-A4BUD-IQ4_XS, about 4 bits, GGUF37.6 tok/s37.6 to 37.7 over 3 runs43.6 tok/s32.7 each42.1 to 54.7 over 3 runs55.5 tok/s19.6 each54.6 to 61.0 over 3 runs45.9 tok/s8.9 each45.3 to 52.8 over 3 runs52.1 tok/s4.7 each50.7 to 60.0 over 3 runs22 Oct 2026
HP ZBook Ultra G1aStrix Halo laptop, Ryzen AI Max+ 395, 64GBllama.cpp on ROCm, in WSL 2, version b11669on mains power, Windows power mode Best performanceGemma 4 26B-A4BUD-IQ4_XS, about 4 bits, GGUF31.9 tok/s31.0 to 32.2 over 3 runs34.6 tok/s29.7 each34.6 to 52.2 over 3 runs43.2 tok/s22.0 each43.0 to 56.2 over 3 runs45.9 tok/s12.8 each45.9 to 59.1 over 3 runs47.7 tok/s6.7 each47.3 to 61.4 over 3 runs27 Oct 2026
HP ZBook Ultra G1aStrix Halo laptop, Ryzen AI Max+ 395, 64GBllama.cpp on Vulkan, version b11669on mains power, Windows power mode Balancedgpt-oss-20bMXFP4, GGUF, thinking at its lowest level55.5 tok/s55.3 to 57.5 over 3 runs69.1 tok/s48.1 each66.3 to 81.5 over 3 runs79.1 tok/s29.1 each78.7 to 93.8 over 3 runs84.5 tok/s13.6 each75.4 to 85.6 over 3 runs97.9 tok/s8.9 each92.6 to 106.8 over 3 runs22 Oct 2026
HP ZBook Ultra G1aStrix Halo laptop, Ryzen AI Max+ 395, 64GBllama.cpp on ROCm, in WSL 2, version b11669on mains power, Windows power mode Best performancegpt-oss-20bMXFP4, GGUF, thinking at its lowest level48.6 tok/s47.3 to 48.7 over 3 runs53.6 tok/s39.2 each52.8 to 68.1 over 3 runs65.7 tok/s25.8 each65.0 to 76.0 over 3 runs75.1 tok/s16.2 each74.8 to 88.9 over 3 runs90.9 tok/s11.8 each89.4 to 113.7 over 3 runs27 Oct 2026
HP ZBook Ultra G1aStrix Halo laptop, Ryzen AI Max+ 395, 64GBllama.cpp on Vulkan, version b11669on mains power, Windows power mode Best performanceQwen 3.5 9BQ4_K_M, GGUF35.8 tok/s35.4 to 35.8 over 3 runs58.3 tok/s34.2 each52.7 to 58.5 over 3 runs85.7 tok/s27.6 each85.7 to 85.8 over 3 runs99.6 tok/s16.9 each98.8 to 99.6 over 3 runs75.9 tok/s5.9 each74.8 to 77.7 over 3 runs26 Oct 2026
HP ZBook Ultra G1aStrix Halo laptop, Ryzen AI Max+ 395, 64GBllama.cpp on ROCm, in WSL 2, version b11669on mains power, Windows power mode Best performanceQwen 3.5 9BQ4_K_M, GGUF30.9 tok/s30.1 to 30.9 over 3 runs47.8 tok/s29.6 each47.8 to 53.1 over 3 runs65.6 tok/s23.0 each65.2 to 72.6 over 3 runs75.8 tok/s13.6 each74.3 to 81.9 over 3 runs107.4 tok/s11.5 each104.9 to 120.8 over 3 runs27 Oct 2026
HP ZBook Ultra G1aStrix Halo laptop, Ryzen AI Max+ 395, 64GBllama.cpp on Vulkan, version b11669on mains power, Windows power mode Best performanceQwen 3.6 35B-A3BUD-Q4_K_M, about 4 bits, GGUF50.0 tok/s49.5 to 50.1 over 3 runs65.7 tok/s38.8 each65.0 to 68.6 over 3 runs80.3 tok/s24.6 each80.3 to 82.4 over 2 runs78.8 tok/s12.1 each78.7 to 82.2 over 3 runs75.1 tok/s5.7 each74.8 to 78.6 over 3 runs27 Oct 2026
HP ZBook Ultra G1aStrix Halo laptop, Ryzen AI Max+ 395, 64GBllama.cpp on ROCm, in WSL 2, version b11669on mains power, Windows power mode Best performanceQwen 3.6 35B-A3BUD-Q4_K_M, about 4 bits, GGUF34.0 tok/s30.7 to 34.4 over 3 runs47.3 tok/s31.9 each63.7 tok/s22.9 each63.6 to 69.7 over 3 runs62.0 tok/s12.9 each61.5 to 77.0 over 3 runs68.3 tok/s7.7 each65.6 to 74.4 over 3 runs27 Oct 2026
Mac mini M4Apple M4, 16GBllama.cpp on Metal, version b11669Gemma 4 12BGoogle's own 4-bit QAT file (Q4_0), GGUF10.9 tok/s10.5 to 11.1 over 3 runs17.0 tok/s10.9 each16.9 to 17.4 over 3 runs25.7 tok/s9.5 each23.7 to 26.7 over 3 runsnot measurednot measured20 Oct 2026
Lenovo Yoga Pro 9n (RTX Spark)RTX Spark laptop, NVIDIA N1X, 128GBllama.cpp on CUDA, version b11669on mains power, Windows power mode Best performanceGemma 4 12BGoogle's own 4-bit QAT file (Q4_0), GGUF32.6 tok/s31.1 to 32.6 over 3 runs42.6 tok/s30.6 each40.9 to 58.5 over 3 runs60.7 tok/s27.4 each60.0 to 76.2 over 3 runs73.4 tok/s21.4 each73.1 to 99.9 over 3 runs82.3 tok/s14.8 each82.2 to 117.9 over 3 runs29 Oct 2026
Lenovo Yoga Pro 9n (RTX Spark)RTX Spark laptop, NVIDIA N1X, 128GBllama.cpp on CUDA, in WSL 2, version b11669on mains power, Windows power mode Best performanceGemma 4 12BGoogle's own 4-bit QAT file (Q4_0), GGUF28.1 tok/s28.1 to 29.1 over 2 runs37.3 tok/s27.4 each36.5 to 49.0 over 3 runs51.9 tok/s24.4 each50.1 to 65.1 over 3 runs65.7 tok/s19.0 each64.6 to 87.9 over 3 runs75.9 tok/s13.5 each74.3 to 103.2 over 3 runs29 Oct 2026
Lenovo Yoga Pro 9n (RTX Spark)RTX Spark laptop, NVIDIA N1X, 128GBllama.cpp on CUDA, version b11669on mains power, Windows power mode Best performanceGemma 4 26B-A4BUD-IQ4_XS, about 4 bits, GGUF59.6 tok/s54.5 to 60.1 over 3 runs68.3 tok/s50.3 each67.8 to 94.6 over 3 runs89.4 tok/s38.0 each89.1 to 108.1 over 3 runs103.5 tok/s25.6 each102.2 to 130.5 over 3 runs115.5 tok/s16.4 each115.3 to 155.8 over 3 runs29 Oct 2026
Lenovo Yoga Pro 9n (RTX Spark)RTX Spark laptop, NVIDIA N1X, 128GBllama.cpp on CUDA, in WSL 2, version b11669on mains power, Windows power mode Best performanceGemma 4 26B-A4BUD-IQ4_XS, about 4 bits, GGUF51.9 tok/s50.9 to 52.3 over 3 runs82.8 tok/s46.9 each60.7 to 82.8 over 2 runs76.0 tok/s33.5 each74.8 to 92.5 over 3 runs91.3 tok/s22.8 each89.3 to 115.5 over 3 runs102.0 tok/s14.9 each101.6 to 139.4 over 3 runs29 Oct 2026
Lenovo Yoga Pro 9n (RTX Spark)RTX Spark laptop, NVIDIA N1X, 128GBllama.cpp on CUDA, version b11669on mains power, Windows power mode Best performancegpt-oss-20bMXFP4, GGUF, thinking at its lowest level81.6 tok/s80.0 to 81.8 over 3 runs93.0 tok/s59.6 each92.3 to 114.7 over 3 runs115.0 tok/s39.4 each114.5 to 129.0 over 3 runs135.7 tok/s24.6 each135.3 to 154.8 over 3 runs200.2 tok/s24.0 each200.2 to 254.0 over 3 runs29 Oct 2026
Lenovo Yoga Pro 9n (RTX Spark)RTX Spark laptop, NVIDIA N1X, 128GBllama.cpp on CUDA, in WSL 2, version b11669on mains power, Windows power mode Best performancegpt-oss-20bMXFP4, GGUF, thinking at its lowest level75.7 tok/s70.5 to 75.9 over 3 runs87.2 tok/s56.1 each86.1 to 107.7 over 3 runs106.2 tok/s35.9 each105.5 to 116.9 over 3 runs121.4 tok/s21.6 each121.1 to 138.0 over 3 runs180.1 tok/s21.4 each179.9 to 231.1 over 3 runs29 Oct 2026
Mac mini M4Apple M4, 16GBMLX (mlx-lm) on Metal, version mlx-lm 0.32.2Qwen 3.5 9BMLX 4-bit17.6 tok/s6.6 to 17.6 over 3 runs31.6 tok/s19.7 each31.5 to 31.6 over 3 runs43.5 tok/s15.0 each43.4 to 44.5 over 3 runs44.7 tok/s7.8 each36.9 to 44.9 over 3 runs54.0 tok/s5.2 each53.9 to 54.1 over 3 runs20 Oct 2026
Mac mini M4Apple M4, 16GBllama.cpp on Metal, version b11669Qwen 3.5 9BQ4_K_M, GGUF15.9 tok/s15.6 to 15.9 over 3 runs22.7 tok/s13.5 each33.9 tok/s11.1 each33.7 to 33.9 over 3 runs44.4 tok/s8.4 each43.4 to 45.1 over 3 runs44.5 tok/s4.2 each43.5 to 46.5 over 3 runs20 Oct 2026
Lenovo Yoga Pro 9n (RTX Spark)RTX Spark laptop, NVIDIA N1X, 128GBllama.cpp on CUDA, version b11669on mains power, Windows power mode Best performanceQwen 3.5 9BQ4_K_M, GGUF43.9 tok/s42.2 to 44.6 over 3 runs73.8 tok/s42.1 each72.9 to 78.6 over 3 runs114.9 tok/s35.8 each113.7 to 123.4 over 3 runs147.6 tok/s25.1 each147.3 to 160.4 over 3 runs187.8 tok/s17.1 each184.9 to 206.3 over 3 runs29 Oct 2026
Lenovo Yoga Pro 9n (RTX Spark)RTX Spark laptop, NVIDIA N1X, 128GBllama.cpp on CUDA, in WSL 2, version b11669on mains power, Windows power mode Best performanceQwen 3.5 9BQ4_K_M, GGUF38.0 tok/s37.9 to 39.8 over 3 runs60.9 tok/s36.1 each60.9 to 63.7 over 2 runs102.3 tok/s32.2 each98.0 to 107.7 over 3 runs128.1 tok/s22.5 each127.6 to 139.7 over 3 runs167.0 tok/s15.6 each164.5 to 188.6 over 3 runs29 Oct 2026
Lenovo Yoga Pro 9n (RTX Spark)RTX Spark laptop, NVIDIA N1X, 128GBllama.cpp on CUDA, version b11669on mains power, Windows power mode Best performanceQwen 3.6 35B-A3BUD-Q4_K_M, about 4 bits, GGUF70.1 tok/s69.3 to 70.6 over 3 runs92.8 tok/s57.2 each92.5 to 106.7 over 3 runs118.4 tok/s39.1 each117.1 to 128.7 over 3 runs139.9 tok/s24.8 each137.4 to 154.4 over 3 runs160.8 tok/s14.8 each157.0 to 179.7 over 3 runs29 Oct 2026
Lenovo Yoga Pro 9n (RTX Spark)RTX Spark laptop, NVIDIA N1X, 128GBllama.cpp on CUDA, in WSL 2, version b11669on mains power, Windows power mode Best performanceQwen 3.6 35B-A3BUD-Q4_K_M, about 4 bits, GGUF60.6 tok/s60.5 to 60.9 over 3 runs94.4 tok/s54.5 each86.5 to 94.4 over 2 runs102.7 tok/s35.5 each99.7 to 108.8 over 3 runs121.9 tok/s22.0 each119.0 to 136.1 over 3 runs142.6 tok/s13.5 each142.4 to 158.8 over 3 runs29 Oct 2026
Mac mini M4Apple M4, 16GBPrism ML's llama.cpp on Metal, version b10787Ternary Bonsai 2 27BPTQ1_0, about 1.75 bits a weight, GGUF7.6 tok/s7.4 to 7.6 over 3 runs3.4 tok/s1.9 each3.4 to 3.5 over 3 runs5.2 tok/s1.5 each5.1 to 5.2 over 3 runsnot measurednot measured20 Oct 2026

Several people, or several agents, using one machine at once. Each column is that many requests started together, each on a different subject, with about 1,000 tokens of prompt and room for 512 tokens of answer, thinking off. The figure is all of them together, in tokens a second, the middle of three runs, and under it is what each user got. Every answer here is prose, so the one-user column is closer to the prose figure in the first table than to the code one.

A coding agent's whole job, timed

MachineModel and recipeThe whole jobTested
RTX 4090 desktopllama.cpp on CUDA, version b11669Qwen 3.8 27BQ4_K_M; multi-token prediction, 2 tokens drafted a step (Artificial Analysis's RTX 5090 recipe)7.3 min15 Oct 2026
One DGX Sparkllama.cpp on CUDA, version b11669graphics chips capped at 2,200MHz to cut power useQwen 3.8 27BUD-Q4_K_M; DFlash, a small helper model drafting 7 tokens a step (Artificial Analysis's DGX Spark recipe)17.3 min28 Oct 2026
Lenovo Yoga Pro 9n (RTX Spark)RTX Spark laptop, NVIDIA N1X, 128GBllama.cpp on CUDA, version b11669Qwen 3.8 27BUD-Q4_K_M; DFlash, a small helper model drafting 7 tokens a step (Artificial Analysis's RTX Spark recipe)17.4 min29 Oct 2026
Lenovo Yoga Pro 9n (RTX Spark)RTX Spark laptop, NVIDIA N1X, 128GBllama.cpp on CUDA, version b11669Qwen 3.8 27BQ4_K_M; multi-token prediction, 2 tokens drafted a step (Artificial Analysis's Strix Halo recipe)22.9 min29 Oct 2026
Lenovo Yoga Pro 9n (RTX Spark)RTX Spark laptop, NVIDIA N1X, 128GBllama.cpp on CUDA, in WSL 2, version b11669Qwen 3.8 27BQ4_K_M; multi-token prediction, 2 tokens drafted a step (Artificial Analysis's Strix Halo recipe)24.9 min29 Oct 2026
One DGX Sparkllama.cpp on CUDA, version b11669graphics chips capped at 2,200MHz to cut power useQwen 3.8 27BQ4_K_M; multi-token prediction, 2 tokens drafted a step (Artificial Analysis's Strix Halo recipe)27.1 min28 Oct 2026
HP ZBook Ultra G1aStrix Halo laptop, Ryzen AI Max+ 395, 64GBllama.cpp on Vulkan, version b11669Qwen 3.8 27BQ4_K_M; multi-token prediction, 2 tokens drafted a step (Artificial Analysis's Strix Halo recipe)43.2 min27 Oct 2026
HP ZBook Ultra G1aStrix Halo laptop, Ryzen AI Max+ 395, 64GBllama.cpp on ROCm, in WSL 2, version b11669Qwen 3.8 27BQ4_K_M; multi-token prediction, 2 tokens drafted a step (Artificial Analysis's Strix Halo recipe)49.9 min27 Oct 2026
Four DGX SparksvLLM across all four boxesgraphics chips capped at 2,200MHz to cut power usetimed from another machine on the same networkGLM 5.3 FlashNVFP4 at 4 bits, dense layers at 8; DFlash2, a small helper model drafting tokens8.4 min15 Oct 2026

A coding agent's recorded work, played back by Artificial Analysis's AgentPerf-Local (version 0.3.3): the same 168 requests on every machine, each with its recorded prompt, and the model made to write exactly the recorded number of tokens for each, 30,883 in all, so every machine does the same work. The figure is the time to answer all of them, without the time the agent's tools took, so lower is better. Multi-token prediction and DFlash both draft a few tokens ahead for the model to check in one pass, which saves time when the guesses are right. Each row is the quickest of its runs.

The models, exactly

The hardware, exactly

GLM 5.3 Flash on four DGX Sparks, before and after a recipe change

Test5 October
new recipe
2 October
old recipe
Change
Writing codeone user94.2 tok/s58.4 tok/s1.6 times
A long answerone user89.8 tok/s45.6 tok/s2.0 times
A short answerone user60.4 tok/s28.2 tok/s2.1 times
Four at onceall four added together110.7 tok/s65.2 tok/s1.7 times

The same test on both days. The only change was a recipe another owner published. The first word of an answer arrived after 0.26 seconds in a session recorded on 5 October. The change column is my own maths.

Three models, the same eight prompts

ModelRuns onWriting speed
middle of 8 prompts
First word
short prompt
Reading a 345,000-token
document from cold
GLM 5.3 Flash4 DGX Sparks46.3 tok/s0.19 s257 s
Qwen 3.8 27B2 DGX Sparks42.8 tok/s0.16 s810 s
DeepSeek V4 Flash2 DGX Sparks40.9 tok/s0.29 snot measured

Measured in August 2026 with each model thinking at its highest setting, on different prompts from the test at the top of this page. These were also taken before October's recipe change, so they should not be set beside the other tables.

How I test