Vol. I · No. 1Edition: AfternoonEst. 2026AboutSearchRSS

The Sand Paper

Finding grains of sand with grains of sand.
A Journal of Intelligence Transfer
Feature · Local AI

The State of the Sparks: GLM-5.3 and DeepSeek V4.1 Flash on Two and Three DGX Sparks

What fits in 256 GB and 384 GB, how fast it runs, how close the quants stay to full precision, and which inference engine to pick for each build.

Two NVIDIA DGX Sparks give you 256 GB of unified memory. Three give you 384 GB. This month, the two best open models builders run at that level are Z.ai's GLM-5.3 family and DeepSeek's October 17 refresh of V4.1 Flash, known as 1017. Here is what fits, how fast it runs, how close it stays to full precision, and which engine to use.

At a glance

  • Two Sparks. GLM-5.3-Flash fits at about 4 bits with room for a 1M-token context. DeepSeek-V4.1-Flash-1017 fits only at 2.7 to 2.9 bits, with its Engram tables kept on disk.
  • Three Sparks. DeepSeek-1017 runs from its official weights. The full 753B GLM-5.3 fits at 2.75 bits. GLM-5.3-Flash gains context and concurrency more than single-stream speed.
  • Speed. On two Sparks, the best measured single-stream prose rates are 60.4 tok/s for GLM-5.3-Flash and 65.0 tok/s for DeepSeek-1017, both on TensorFold.
  • Quality. NVIDIA's 4-bit GLM-5.3-Flash scores within a point of BF16 on its two published tests. For DeepSeek under 3 bits, builders publish drift figures but no matched benchmark against the full model.
  • Engines. TensorFold posts the top single-stream numbers. vLLM has the most recipes. NIM is the only vendor-supported path, for GLM-5.3-Flash on two Sparks.
  • The builders' pick. @MiaAI_lab, whose recipes many owners run, recommends either Flash model on two or more Sparks, and would skip the full GLM-5.3.

The models, checked

We checked names and sizes against the model cards. Every builder figure below names its quant, because the same model can differ by 2x in speed between builds.

ModelTotal parametersActive per tokenContextReleased as
GLM-5.3-Flash320B18B1MFP8
GLM-5.3 (full)753Babout 40B1M (builds here run about 500K)FP8
DeepSeek-V4.1-Flash-1017763.2B, including 196.6B of Engram tablesabout 8B reading, 16B generating1MFP8 dense, FP4 experts
Swipe the table sideways to see every column.

The DeepSeek count explains why you see "552B" in older posts. That figure is the backbone alone. The 1017 card lists 763,205,315,794 parameters, and the repository is 510.3 GB, or 476 GiB on disk. For comparison, the official GLM-5.3-Flash repository is 328.4 GB and the full GLM-5.3 755.7 GB.

The Engram tables are n-gram lookup memory. A token reads only a few rows, so builders keep the tables on NVMe and fetch rows as needed. That trick is what makes DeepSeek fit on Sparks at all.

The hardware: what two and three Sparks give you

Each Spark has a GB10 chip and 128 GB of unified memory at 273 GB/s. The recipes we read treat about 121.7 GiB per box as usable. Each box has two QSFP ports at 200 Gb/s each.

Two Sparks and three Sparks, wiredTwo DGX Sparks connect with one QSFP cable at 200 Gb/s and pool 256 GB. Three Sparks connect in a triangle with three cables, every box using both ports, and pool 384 GB. Each box reads its own memory at 273 GB/s; the cable carries about 25 GB/s by our estimate. 64 attention heads split evenly across two or four boxes but not three, so three-box builds pad the model.TopologyTwo Sparks, three SparksTWO SPARKS · 256 GB POOLEDSPARK 1128 GB · 273 GB/sSPARK 2128 GB · 273 GB/s1 cable200 Gb/sTensor parallel 2: each box holds half the weights.THREE SPARKS · 384 GB POOLEDSPARK 1128 GB · 273 GB/sSPARK 2128 GB · 273 GB/sSPARK 3128 GB · 273 GB/s3 cablesEvery box uses both ports. 64 heads ÷ 3 is uneven.WHY THE CABLE MATTERSMemory inside one box273 GB/sOne cable between boxes (our estimate)≈ 25 GB/sOnly small activations cross the cable, so decodescales. Cost: 2 × $6,950 ≈ $13,900; 3 ≈ $20,850.Ports: NVIDIA. Price: @sudoingX. Totals: our math.
Two Sparks need one cable. Three use all six ports in a triangle. Arithmetic and memory figures are estimates; port speeds are NVIDIA's.

NVIDIA documents three layouts: a direct cable for two, a three-cable ring for three, and a switch for more. Our arithmetic puts 200 Gb/s at about 25 GB/s. That is roughly a tenth of each box's memory speed.

That gap shapes every recipe. Tensor parallel decoding works because each box keeps its own share of the weights, and only small activations cross the cable.

At $6,950 a box, the price @sudoingX quoted on October 19, two Sparks cost about $13,900 and three about $20,850. That is our arithmetic, before cables.

Three is the odd one out. Both models have 64 attention heads, which split evenly across two or four boxes but not three. Builders pad the model with dummy heads to make it divide.

"3 is a genuinely awkward middle: it works... but you pay in patch surface and you get memory rather than speed." (jc2375, on the NVIDIA developer forum)

Memory: what fits

What fits in two and three SparksWeight sizes in GiB against the usable memory of two Sparks, about 243 GiB, and three Sparks, about 365 GiB. GLM-5.3-Flash: official FP8 305.8, NVIDIA NVFP4 181, FP4-Local about 166, EXL3 4 bpw 163.6. Full GLM-5.3: FP8 703.8, EXL3 3.38 bpw 297.1, EXL3 2.75 bpw 273. DeepSeek-V4.1-Flash-1017: 476 on disk, about 305 in memory with Engram on NVMe, GGUF Q2_K 246.3 for the September weights, EXL3 2.9 bpw 196 plus about 190 of Engram on disk, 2.70-bit 182.5.Memory fitWhat fits in 256 and 384 GB2 SPARKS243 GiB3 SPARKS365 GiBGLM-5.3-FLASH · 320BOfficial FP8 (repo size)305.8NVIDIA NVFP4181NVIDIA FP4-Local (in use)166EXL3 4 bpw, Mia163.6GLM-5.3 FULL · 753BOfficial FP8 (repo size)704 →EXL3 3.38 bpw, @ViC305297.1EXL3 2.75 bpw, Mia273DEEPSEEK-V4.1-FLASH-1017 · 763BOfficial weights on disk476Official, in memory, Engram on NVMe305GGUF Q2_K (Sept weights)246.3EXL3 2.9 bpw, Mia (+190 on disk)1962.70-bit, @sudoingX182.5GiB. Usable lines: 121.7 GiB a box, per Mia’s repos.Gold: DeepSeek with its Engram tables on NVMe.
Sizes in GiB, converted from GB where a source used GB. Dark bars are published sizes; the gold bar is DeepSeek's in-memory share with Engram moved to NVMe. Usable lines assume 121.7 GiB per box.
BuildWeightsTwo SparksThree SparksSource
GLM-5.3-Flash, official FP8305.8 GiB on disk (328.4 GB)NoOn paper, about 59 GiB spare; no report foundHugging Face repo size, our arithmetic
GLM-5.3-Flash, NVIDIA NVFP4181 GiBYesYeskindling repo
GLM-5.3-Flash, NVIDIA FP4-Localabout 166 GiB in useYes, validated by NVIDIAYesNVIDIA model card
GLM-5.3-Flash, EXL3 4 bpw175.7 GB (163.6 GiB)YesYesMia's AI Lab
GLM-5.3 full, official FP8703.8 GiB on disk (755.7 GB)NoNoHugging Face repo size
GLM-5.3 full, EXL3 2.75 bpwabout 273 GiBNoYes, about 86 GiB a boxMia's AI Lab
GLM-5.3 full, EXL3 3.38 bpw319 GBNoNo@ViC305 (four Sparks)
DeepSeek-1017, official weights476 GiB on disk; about 305 GiB in memory with Engram on NVMeNo (145 GiB a box)Yes (about 101 GiB a box)Mia's DeepSeek repo
DeepSeek-1017, EXL3 2.9 bpw196 GiB, plus about 190 GiB of Engram on diskYesYesMia's 2-Spark repo
DeepSeek-1017, 2.70-bit (vLLM)196 GBYesYes@sudoingX
DeepSeek V4.1 Flash, GGUF Q2_K246.3 GiBOver the lineYes, on a forkvcruz305 card
Swipe the table sideways to see every column.

A rough rule for your own estimates: parameters in billions, times bits per weight, divided by eight, gives gigabytes. Add the parts kept at 16 bits, the KV cache and about 6 GiB of headroom per box.

Speed: what builders measured

Every figure below is a builder's own measurement, with their prompts and settings. Treat cross-build comparisons as rough. "Prose" is single-stream decode on ordinary text, the slowest and most comparable case.

Measured single-stream prose speedBuilders’ published single-stream decode rates in tokens per second. Two Sparks: DeepSeek-1017 EXL3 2.9 on TensorFold 65.0; GLM-5.3-Flash EXL3 4 bpw on TensorFold 60.4; DeepSeek 2.70-bit on vLLM 59.2; DeepSeek EXL3 1M build on TensorFold 56.8; GLM-5.3-Flash NVFP4 on vLLM 42.6, on Flare 39.4 as a mean of prompt types, on the Atlas fork 36.3, on vLLM knapcio stack 35.3; DeepSeek EXL3 on the vLLM kit 27.0. Three Sparks: GLM-5.3-Flash EXL3 on TensorFold 77.6; DeepSeek official on vLLM 59.7; GLM-5.3-Flash NVFP4 on vLLM 54.2; DeepSeek official on SGLang 51.0; GLM-5.3-Flash NVFP4 on vLLM jetnet 35.2; full GLM-5.3 at 2.75 bpw 31.3.Measured speedOne stream, prose, tok/sDeepSeek-1017GLM-5.3-FlashGLM-5.3TWO SPARKSDS-1017 EXL3 2.9 · TensorFold65GLM-F EXL3 4 · TensorFold60.4DS-1017 2.70-bit · vLLM59.2DS-1017 EXL3 2.9, 1M · TensorFold56.8GLM-F NVFP4 · vLLM (kindling)42.6GLM-F NVFP4-MXFP8 · Flare (mean)39.4GLM-F NVFP4 · Atlas fork36.3GLM-F NVFP4 · vLLM (knapcio)35.3DS-1017 EXL3 2.9 · vLLM kit27THREE SPARKSGLM-F EXL3 4 · TensorFold77.6DS-1017 official · vLLM (ds41f)59.7GLM-F NVFP4 · vLLM (kindling)54.2DS-1017 official · SGLang51GLM-F NVFP4 · vLLM (jetnet)35.2GLM-5.3 full 2.75 · TensorFold31.3306090Each builder’s own prompts and settings. Rough comparison only.
Single-stream prose decode, tok/s, as published. Flare's figure is a mean across prompt types. Sources in the tables below.

Two Sparks

Model and buildEngineProse, one streamCode or structuredSeveral at oncePrefillContext
DeepSeek-1017, EXL3 2.9 bpwTensorFold65.072.0 code98.4 at 42,124 at 32K524,288
DeepSeek-1017, 2.70-bitvLLM59.2100.7 code, 141.3 structured
DeepSeek-1017, EXL3 2.9 bpw, 1M buildTensorFold vs vLLM kit56.8 vs 27.092.2 vs 39.9 code1M, needle passed at 1,035,020
GLM-5.3-Flash, EXL3 4 bpwTensorFold60.4114.7 structured108.8 at 4, 130.8 at 81,978.9 at 32K1,048,576
GLM-5.3-Flash, NVIDIA NVFP4vLLM (kindling)42.666.2 code, 94.7 structured116 at 8, mixed2,931 at 32Klongest request 160K
GLM-5.3-Flash, NVIDIA NVFP4vLLM (knapcio stack)35.368.9 code262,144
GLM-5.3-Flash, NVFP4-MXFP8Flare39.4, mean of prompt types107 at 82,276570K prompt answered
GLM-5.3-Flash, NVIDIA NVFP4Atlas fork (SparkGLM)36.365.7 code2,760
Swipe the table sideways to see every column.

The top DeepSeek row comes from @niklaslenz_ai, measuring @MiaAI_lab's October 21 recipe. Prose ran about 5% faster than her October 19 version.

Three Sparks

Model and buildEngineProse, one streamCode or structuredSeveral at oncePrefillContext
DeepSeek-1017, official weightsvLLM (spark-ds41f)59.7, the repo's single-stream test116.0 at 4, 152.7 at 84,465 at 32K1M
DeepSeek-1017, official weightsSGLang (Mia)51.085.4 at 4about 2,000256K set; about 32K usable on the head node
GLM-5.3-Flash, EXL3 4 bpwTensorFold77.6146.2 at 41M
GLM-5.3-Flash, NVIDIA NVFP4vLLM (kindling)54.288.0 code, 121.4 structured146 at 8, mixed3,864 at 32Klongest request 524K
GLM-5.3-Flash, NVIDIA NVFP4vLLM (jetnet)35.2, decodeabout 1,800471,813-token retrieval
GLM-5.3 full, EXL3 2.75 bpwTensorFold31.341.7 code48.2 at 4, with 32K windows591.2 at 32K499,712
Swipe the table sideways to see every column.

For the full GLM-5.3, sampled replies run slower than those figures, since fewer speculative drafts survive. Mia's page gives 22.9 to 24.0 tok/s on prose with sampling.

What a third Spark buys

For GLM-5.3-Flash on TensorFold, the third box lifts one-stream prose from 60.4 to 77.6 tok/s, about 28% by our arithmetic. On kindling's vLLM build, the KV pool grows from 1.38M to 2.24M tokens and the longest request from 160K to 524K.

For DeepSeek, the third box is the difference between a 2.9-bit quant and the official weights. It does not buy speed: the best three-Spark single stream we found trails the best two-Spark one.

Quality: how close the quants stay

BuildPublished checkWhat it shows
GLM-5.3-Flash, NVIDIA FP4-LocalGPQA Diamond 91.3% vs 92.1% BF16; ToolEvalBench 92.4% vs 91.9%Within a point on both
GLM-5.3-Flash, EXL3 4 bpw (Mia)KL 0.0903 against Z.ai's FP8; GSM8K 98.8%, HumanEval 95.7%Small drift; no FP8 score given beside it
GLM-5.3-Flash, NVFP4-MXFP8 on FlareGSM8K 193 of 200; the same checkpoint on one GB300 scored 194 and 196Same quant, different hardware
GLM-5.3 full, EXL3 3.38 bpw (four Sparks)KL 0.082 against BF16, 91.15% top-1 agreementThe best-documented full-model quant
DeepSeek-1017, 2.70-bit (@sudoingX)KL 0.0243 from native 101720% closer than an earlier 2.9-bit pack, he says
DeepSeek-1017, EXL3 2.9 bpw (Mia)QA 94.0%, MMLU 91.9%, Tool Eval 93/100 in sparkDashAbsolute scores; no full-precision baseline in the same run
DeepSeek-1017, EXL3 3.75 bpw, three SparksKL 4% to 20% better than 3.5 bpwNew today from @easthambuilds

One quality trap is documented. NVFP4 builds that also quantize attention emit intermittent corrupted tokens, the tonyd2wild repo warns, citing a vLLM issue. NVIDIA's own NVFP4 checkpoint leaves attention unquantized and showed no corruption in the repo's tests.

What owners say

  • @MiaAI_lab: "DeepSeek is better at some tasks, while GLM is more consistent and nicer to talk to." She calls the full GLM-5.3 about equal to DeepSeek V4.1 Flash, and much slower.
  • @HandwerkAiLab: on German business texts with thinking off, DeepSeek-1017 scored 98.1% on three Sparks and GLM-5.3-Flash 93.3%, in single runs. "But for daily use throughput and stability count more, and GLM is easier to run."
  • @GaryIngle77: on three Sparks, 1017 was sharper on facts than the September weights but paraphrased more. The original quoted 31 of his 32 messages verbatim; 1017 quoted 12.

Engines: which to run

Which engine runs which buildA matrix of engines against five builds: GLM-5.3-Flash on two and three Sparks, DeepSeek-1017 on two and three, and the full GLM-5.3 on three. TensorFold has measured recipes for all but DeepSeek on three, which has a new recipe without published speed. vLLM has measured recipes for both Flash models on two and three. SGLang runs DeepSeek on three. NIM officially supports GLM-5.3-Flash on two, with no speed published. Flare runs GLM-5.3-Flash on two, and a community patch claims DeepSeek on three. llama.cpp supports GLM-5.3-Flash upstream with no multi-Spark report, and DeepSeek V4.1 needs a fork. No reports were found for TensorRT-LLM or EXO. Ollama is single-box, and neither model fits one box.EnginesWhich engine runs which buildGLM-F2GLM-F3DS2DS3GLM3number of SparksTensorFoldvLLMSGLangNVIDIA NIMNVIDIA Flarellama.cppTensorRT-LLMOllamaEXOPublished recipe with measured speedsSupported or patched, no speed figure foundNo report found (not proof it fails)Will not run: needs a fork, or no multi-nodeGLM-F: GLM-5.3-Flash. DS: DeepSeek-1017. GLM: full GLM-5.3.As of October 22, from the recipes in Sources.
Based on published recipes and reports as of October 22. A gap means we found no report, which does not prove an engine cannot do it.
EngineMulti-SparkFormats used hereGB10 statusForAgainst
TensorFoldYes, 2 to 4 boxesEXL3Community engine in Zig; Mia's GLM recipe adds 96 patchesFastest single stream, 1M context, one-command setupYoung project; DeepSeek support sits on branches
vLLMYes, tensor parallel across boxesNVFP4, FP8, EXL3 via overlayCommunity images (eugr, Local Inference Lab)Most recipes, best concurrency, OpenAI APIUpstream lacks pieces; three boxes need padding patches
SGLangYesOfficial MXFP4 and FP8Mia's DeepSeek recipes on three and four SparksRuns DeepSeek's own weightsTight memory on three boxes limits context
NVIDIA NIMTwo SparksNVFP4Officially supported for GLM-5.3-FlashVendor support, container readyOne model and one layout; no speed figure published
NVIDIA FlareTwo Sparks; a patch claims threeNVFP4, FP8 KVNew in October, RustLong prompts, many usersNo EXL3; Mia measured it slower than posted claims
llama.cppRPC across boxesGGUFGLM-5.3-Flash merged September 30Broad hardware, simpleDeepSeek V4.1 needs a fork; no multi-Spark GLM report found
TensorRT-LLMNo recipe found for these modelsNVFP4, FP8NVIDIA ships a Spark playbookNVIDIA's own kernelsNo Spark recipe found for either model
OllamaOne boxGGUFRuns on SparkEasiest startNo multi-node, so neither model fits
EXOClusters of devicesVariesNo report foundNo report found for either model
Swipe the table sideways to see every column.

Picking by build

  • GLM-5.3-Flash on two Sparks. TensorFold with the EXL3 4 bpw quant for speed and 1M context. NIM or NVIDIA's FP4-Local on vLLM if you want a vendor-backed path.
  • DeepSeek-1017 on two Sparks. TensorFold with Mia's EXL3 2.9 bpw recipe, or @sudoingX's 2.70-bit build on vLLM for structured output.
  • DeepSeek-1017 on three Sparks. vLLM via spark-ds41f for 1M context and concurrency, or SGLang via Mia's recipe. Both run the official weights.
  • Full GLM-5.3 on three Sparks. TensorFold with the 2.75 bpw quant is the only recipe we found.
Which build to start withA starting point from the published recipes. Two Sparks: GLM-5.3-Flash at 4 bits on TensorFold with EXL3, or NVIDIA FP4-Local on vLLM or NIM, for consistency, vision and 1M context; or DeepSeek-1017 at 2.7 to 2.9 bits on TensorFold or vLLM for its strengths on some tasks, with less certainty about quantization loss. Three Sparks: DeepSeek-1017 official weights on vLLM spark-ds41f for 1M context or SGLang; the full GLM-5.3 at 2.75 bpw on TensorFold; or GLM-5.3-Flash with more context and users. Four Sparks remove the head padding for both Flash models.Starting pointWhich build to start withHow many Sparks?TWO · 256 GBGLM-5.3-Flash at 4 bitsConsistent, vision, 1M context, 4 users.TensorFold + EXL3 4 bpw: 60.4 tok/s prose.Vendor path: NVIDIA FP4-Local on vLLM, or NIM.orDeepSeek-1017 at 2.7 to 2.9 bitsStronger on some tasks, owners say.TensorFold + EXL3 2.9 bpw: 65.0 tok/s prose.vLLM 2.70-bit: 141.3 tok/s structured.Quant loss vs. full model: least documented.THREE · 384 GBDeepSeek-1017, official weightsvLLM (spark-ds41f): 1M context, 59.7 tok/s.SGLang (Mia): 51.0 tok/s, tighter memory.Full GLM-5.3 at 2.75 bpwTensorFold only: 31.3 tok/s, about 500K.Mia would pick DeepSeek-1017 instead.GLM-5.3-Flash, more room77.6 tok/s on TensorFold; bigger KV pools.Four Sparks: 64 heads split evenly, no padding.
A starting point drawn from the recipes above, not a benchmark result.

The same level elsewhere

Other models at these sizes, from builders' posts:

  • One Spark: Qwen3.8-Flash-Next, @MiaAI_lab's pick, and Ornith-1.5-122B at 4 bpw.
  • Two Sparks: the two Flash models above. Ling 3.1 Flash, a 560B model, did not fit for @sudoingX.
  • Four Sparks: the full GLM-5.3 at 3.38 bpw, DeepSeek-1017 at 87.7 tok/s prose on SGLang, and Ling 3.1 Flash at Q4 over llama.cpp RPC, which he called "super slow."

Other hardware at the same memory level:

HardwareMemoryReported resultSource
2x RTX PRO 6000 Blackwell192 GBGLM-5.3-Flash FP4-Local validated with 1.8M tokens of FP8 KVNVIDIA model card
Mac Studio M5 Ultra256 GBGLM-5.3-Flash MLX 4-bit: 2,331 tok/s prefill and 164.3 decode at 128K, 181.8 GB peakoMLX benchmark
Mac Studio M5 Ultra256 GBDeepSeek-1017 on TensorFold Metal: 70.7 prose, 104.9 code, 1M contextBobClawblaw repo
DGX Station GB300not checked hereDeepSeek-1017 to 1M context, 2,276.6 tok/s across 32 users@SJRonanMD
Swipe the table sideways to see every column.

The oMLX decode figure varies with context: the same session lists 84.2 tok/s at 8K and 164.3 at 128K, on a code prompt with speculative decoding. We did not find a published price for the M5 Ultra configuration.

Sources

Model cards and official documentation

Recipes and measurements

On X

More from the Local AI deskAll features