Research 9 min read

Best Model for a Dual DGX Spark: DeepSeek-V4-Flash vs Qwen3.8-Flash-Next vs GLM-5.3-Flash

ai.rs Aug 30, 2026
Best Model for a Dual DGX Spark: DeepSeek-V4-Flash vs Qwen3.8-Flash-Next vs GLM-5.3-Flash illustration

Two NVIDIA GB10 boxes, 121 GB of unified memory each, joined by a 200-gigabit direct-attach cable. Three open-weight flagships that each want the whole thing. They cannot coexist — every one of them sits at roughly 119 GB of the 121 available per node — so choosing between them is not an academic exercise. It is a twelve-minute swap and a decision about what the machine is for.

This is what a month of measuring them produced, including the parts where the measurements were wrong.

The contenders

DeepSeek-V4-Flash Qwen3.8-Flash-Next GLM-5.3-Flash
parameters 304 B total 180 B total, 6 B active 320 B total, 18 B active
quantisation NVFP4 NVFP4 + FP8 n-gram table EXL3 4 bpw
on disk 156 GiB 126 GiB 164 GiB
shards 48 206 120
in-checkpoint speculator DSpark, block 5 MTP, 1 layer DFlash2, separate 5-layer drafter
vision none at all images and video images and video
reasoning ships no chat template — reachable only through a hand-built endpoint native, switchable native, reasoning_effort honoured

Three vendors, three entirely different speculative decoders, one shared constraint: none of them fits on one box, and all three arrived with recipes written for hardware that is not quite this hardware.

Two of those speculators we have written about at length — DSpark and MTP live inside their checkpoints, needing nothing downloaded. GLM is the odd one out here: DFlash2 is a separate drafter file, the arrangement the other two vendors abandoned.

Speed: DeepSeek wins, and it is not close

Every figure below is single-stream, from the same harness, thinking off, each model at the best configuration it can actually run here.

workload DeepSeek-V4-Flash Qwen3.8-Flash-Next GLM-5.3-Flash
structured output 88.2 tok/s 71.2 52.0
JSON 81.1 70.0 51.6
freeform code 70.8 64.3 48.7
prose 41.7 31.1 30.4
agent loop 75.5 37.2 24.4
agent, multi-turn 76.2 / 61.7 29.9 24.1

DeepSeek leads every row, and the gap widens exactly where it matters most for interactive work. On the agent loop — short bursts of generation between tool calls, which is what a coding assistant actually does — it is twice Qwen's rate and three times GLM's.

The reason is acceptance. All three ship a speculator, and throughput is forward passes multiplied by how many tokens each pass yields. DeepSeek runs 14.9 passes a second and gets 5.94 of a possible 6 tokens accepted on each — 99% of everything available to it. Qwen manages 14.2 passes and 4.99 of 5. Both are at their ceiling; the ceilings differ.

Prose is the great leveller. 41.7 / 31.1 / 30.4 — the field compresses to almost nothing, because prose is where every speculator guesses worst. Qwen accepts 29% of its draft tokens on prose against 97.5% on structured output. When the next word is genuinely unpredictable, a speculative decoder is just an expensive way to run one forward pass.

Quality: the ranking inverts

LiveCodeBench v6, 33 shared problems
Qwen3.8-Flash-Next 26/33 · 78.8%
GLM-5.3-Flash 21/33 · 63.6%
DeepSeek-V4-Flash 20/33 · 60.6%

The slowest-but-one model is the most correct, by six problems out of thirty-three. DeepSeek leads every speed row and comes last here.

Except that "thinking off" is doing work in that table

This is the one methodological choice in the article that deserves to be argued with, so it gets stated rather than buried.

All three models were measured with reasoning disabled, which reads as even-handed and is not. Reasoning makes Qwen and GLM worse — that is the next section. It makes DeepSeek dramatically better: we have already published 54.3% without reasoning against 96.7% with it on LiveCodeBench, our own measurement, on a single flag. So the setting chosen for fairness is the setting that helps two of these models and cripples the third.

Three things keep that from simply inverting the result, and none of them dissolve it. That 54.3/96.7 pair comes from a different run against a different problem set — DeepSeek scores 60.6% here where it scored 54.3% there — so the numbers are not transferable to these thirty-three problems, and 96.7% cannot be pencilled into the table. DeepSeek reaches that mode only through an endpoint we had to build ourselves, because the checkpoint ships no chat template, which is a real cost rather than a footnote. And every speed figure in this article is thinking-off too, so turning reasoning on would move DeepSeek's quality up and its throughput down, in amounts nobody here has measured together.

What that leaves is narrower than the heading above it. DeepSeek is last on correctness among three models configured for throughput. It is not established that it is the least capable of the three, and on the one occasion we measured its reasoning mode it scored higher than anything in this article. A comparison of all three at their best is the measurement this piece is missing.

That single table is why this comparison exists. A throughput benchmark would have picked DeepSeek and stopped. A model that is 10% slower and 30% more often right is a better coding tool, and no amount of tokens per second changes it.

The paired data sharpens it further. Against GLM, Qwen solved six problems GLM missed while GLM solved one Qwen missed. That is not two models with complementary strengths — six against one is one model strictly better. The entire gap sits on hard problems: all three are perfect on easy (12/12), and the spread is 9/13 versus 4/13 at the top end.

Why GLM loses hard problems, and it is not the budget

Qwen3.8-Flash-Next GLM-5.3-Flash
median answer 3,169 tokens 242 tokens
median time per problem 82 s 14 s
all 33 problems 91 min 22 min
truncated at the cap 0 0

GLM is four times faster end to end while decoding 37% slower per token, purely because it writes thirteen times less. On easy and medium problems that terseness costs nothing — 12/12 and 5/8, matching Qwen. On hard ones it answers briefly and wrongly, where Qwen wins by working at length.

Zero truncations on both sides, so this is not a token budget running out. It is a difference in willingness to think.

Which makes the reasoning result genuinely strange

Both Qwen and GLM ship switchable reasoning. Both are worse with it on:

Both models score worse with reasoning enabled, and they fail in opposite directions

Two vendors, two architectures, same direction. And they fail differently. Qwen reasons too much — twelve of thirty-three runs hit a 32,000-token ceiling and never produced an answer at all. GLM reasons too little — 638 median tokens, zero truncations, and three of the four hard problems it previously solved now lost. The obvious hypothesis, that reasoning would cure GLM's terseness, is exactly backwards: it wrote slightly more and got slightly worse.

On this hardware, with these models, thinking off is the default until proven otherwise.

Context: the only place GLM wins

configured verified by retrieval
DeepSeek-V4-Flash 1,048,576 not tested
Qwen3.8-Flash-Next 262,144 not tested
GLM-5.3-Flash 435,456 403,837 tokens, depth 0.9

Ten needles out of ten, at 48K, 156K, 200K, 301K and 404K, at depths 0.1, 0.5 and 0.9. Prefill flat at 820–845 tok/s across an eightfold range. Depth costs 1%: 301K took 357.6 s with the needle at halfway and 361.2 s with it at 90%.

That last number is the interesting one. A model that is skimming loses the end of a long context first. This one does not — retrieval cost is prefill, not search, and what that context costs to hold is its own piece of arithmetic.

And GLM is the only model here that can read a long document and look at the pictures in it. DeepSeek has more configured context and no vision whatsoever. Qwen sees, and stops at 262K — 35% short of what GLM has been verified to retrieve. For a scanned contract, an illustrated manual, a long PDF with figures, there is exactly one option on this hardware.

Vision: accuracy and reliability point different ways

The test: three frames of an egg wrapped in a cloth stocking, spun on a drill chuck. Eight repeats. Ground truth verified by looking at the frame.

reads the covering as per window
Qwen3.8-27B (on the desktop 5090) missed the wrapping entirely 0.52 s/frame
Qwen3.8-Flash-Next "balloon" — 7/8 2.9 s
GLM-5.3-Flash "fabric", "nylon stocking" — 8/8 6.1 s median

GLM is the only one that gets it right, every time. That is what 1,381 image tokens per frame buys over Qwen's 631 — it is the densest processor of the three and it sees more of the picture. Which is the same lesson as the image-token trap from the last round, arriving from the other side: token count decides what a vision model can see, and it is invisible in the call.

Then two of the eight runs ran away. 219 seconds and 43,888 characters; 189 seconds and 39,367 characters — against a normal six seconds and 320. The mean is nine times the median. On a 58-keyframe video that is two or three windows turning a one-minute job into eleven, and the failure is silent: it produces plausible description, not an error.

That looked disqualifying. It was not — the runaway turned out to belong to the multi-image call, not to vision. Eight repeats of a single-image read came back 0 for 8, with lengths within 7% of each other (1,369–1,473 characters, 14.8–16.5 s). The obvious fix, capping the output everywhere, would have truncated exactly the case GLM is best at in order to cure a fault that case does not have. Capping only the multi-image path — 1,500 tokens, four times the longest healthy answer — bounded it.

The proof is the real job rather than the synthetic one. The same 58-keyframe clip, described end to end:

cues "dough" cloth / fabric / stocking "balloon"
Qwen3.8-Flash-Next 58 0 2 4
GLM-5.3-Flash 58 0 6 0

Under two minutes, no runaway. And on the frames themselves GLM is simply right where Qwen is wrong — "a cloth-wrapped egg" against "the balloon-covered egg" — while also reading "20V" and "2.0" off the battery and placing the later shot "on a black wire rack inside a dark oven".

So the most accurate reader of the three is also usable, once the cap is put in the one place the fault actually lives.

Operations: what it costs to change your mind

DeepSeek Qwen GLM
load 334 s 701 s 490 s
unload 15.3 s 8.9 s 8 s
needs --enforce-eager no yes yes

A full round trip between two of them is about twelve minutes of no service.

The load times contain a small puzzle worth stating: the largest checkpoint loads fastest. DeepSeek is 156 GiB in 334 s; Qwen is 126 GiB in 701 s. The answer is shard count, not bytes — 48 fat shards against 206 thin ones. GLM, at 164 GiB and 120 shards, lands in the middle at 490 s exactly as that theory predicts.

Two of the three also need --enforce-eager, and neither vendor's recipe mentions it, because neither vendor was running a GB10. Qwen's torch.compile locks up for twenty minutes; GLM's sparse attention indexer asks for 119 thread blocks where this chip has 48 streaming multiprocessors, and its fallback path wants 128 KB of shared memory per block where GB10 provides 99 KB. Neither is a tuning problem. Both are the hardware being smaller than the code assumes.

The verdict

On raw performance: DeepSeek-V4-Flash. It wins every throughput row, often by a wide margin, and doubles the field on the agent loop. If your work is high-volume generation and you do not need pictures, nothing here competes.

On quality, with every model configured for throughput: Qwen3.8-Flash-Next. 26 of 33 against 20 and 21, with the paired data showing it strictly better rather than differently good against GLM. It is second on speed everywhere, which is the point — it gives up the least. The qualifier matters: DeepSeek's reasoning mode is outside this comparison and scored higher than anything in it when we measured it separately.

On overall usability: Qwen3.8-Flash-Next, comfortably. It is the only model that is good at everything asked of it: second-fastest, most correct, sees, reasons if you want it to, and holds 262K of context. It has no disqualifying weakness. The other two each have one — DeepSeek cannot see at all, and GLM is third on both speed and quality.

But the honest answer is that it depends on the job, and the split is clean enough to state as a rule:

Which of the three models to run for which kind of work

A note on the numbers that were wrong

Half of what this article reports was measured incorrectly at least once, and the corrections are more instructive than the results.

A default is not a measurement. GLM was declared unusable on the strength of crashes at --max-model-len 1000000 — the repository's own default. Its own results file records the profiles they actually run: 435,456 and 499,968. A third-party report on identical hardware says plainly that "512K/1M remain untested". Every real measurement sat between 262K and 500K, and the only source naming 1M was a config file contradicted by its own project's data. At 435,456 the model retrieves exactly at 404K.

A long-context benchmark built from repeated text measures the cache. An early ladder appeared to prefill 94,657 tokens without trouble. The tell was in the data and went unread: that prompt returned faster than a 70,985-token one. Prefix caching meant almost nothing was computed. With unique content the same server died at a third of the length.

Cold servers lie. GLM's decode was recorded at 41.0 tok/s and flagged as an unexplained gap against a published 62.9. It was a Triton kernel compiling during the measurement. Warm, it is 60.6 — the gap never existed.

And the benchmark you tune on decides what you tune toward

This one has a published casualty, so it gets its own heading.

Two days ago we recommended running Qwen's speculator at depth 9, and reported it beating DeepSeek on structured output, JSON and code by 3–15%. That recommendation came from a synthetic decode suite: fixed prompts, fixed output lengths, one shape of work. On that suite k=9 is 31% faster on structured output, and the number is real.

Measuring the actual workloads gave +27% on one narrow shape and losses on three of five others — including −5% on the agent loop, the thing a coding assistant actually does. The table at the top of this article therefore runs Qwen at k=4, and that is why its structured figure reads 71.2 rather than the 93.4 we published.

Nothing about the model changed. What changed is which benchmark was believed. Optimal speculative depth is a property of the workload, not of the model — and a synthetic suite will happily recommend a setting that loses on everything you actually do, while being perfectly accurate about the thing it measures.

The earlier article has been marked accordingly. Its architecture and memory findings stand; its speed recommendation does not.

Frequently Asked Questions

What is the best model to run on two DGX Sparks? +

Qwen3.8-Flash-Next, for most work. It is second-fastest everywhere, the most correct of the three on LiveCodeBench (26 of 33 against 20 and 21), reads images, reasons if you want it to, and holds 262K of context — the only one of the three with no disqualifying weakness. Run DeepSeek-V4-Flash instead for high-volume generation and agent loops, where it is twice as fast, and GLM-5.3-Flash for long illustrated documents, where it is the only option that combines 400K-plus verified context with vision.

Can you run more than one large model on a dual DGX Spark? +

No. Each of these three occupies roughly 119 GB of the 121 GB a node reports, so only one can be resident at a time and all three need tensor parallelism across both boxes. Swapping between two of them is about twelve minutes of no service — load times are 334 s for DeepSeek, 490 s for GLM and 701 s for Qwen, plus 8–15 s to unload.

Which is faster, DeepSeek-V4-Flash or Qwen3.8-Flash-Next? +

DeepSeek, on every workload measured. 88.2 against 71.2 tok/s on structured output, 81.1 against 70.0 on JSON, and 75.5 against 37.2 on an agent loop — double the rate on the workload a coding assistant actually runs. The cause is draft acceptance: DeepSeek accepts 5.94 of a possible 6 speculative tokens per forward pass, about 99% of what is available to it.

Was DeepSeek-V4-Flash measured with reasoning enabled? +

No — every figure in this comparison has reasoning disabled on all three models, which is even-handed in form but not in effect. Reasoning makes Qwen3.8-Flash-Next and GLM-5.3-Flash worse, and makes DeepSeek-V4-Flash substantially better: measured separately, it went from 54.3% to 96.7% on LiveCodeBench on a single flag. That was a different run against a different problem set, so it cannot be transferred to the 33 problems here, and DeepSeek reaches that mode only through a hand-built endpoint because the checkpoint ships no chat template. The honest reading is that DeepSeek is last on correctness among three models configured for throughput, not that it is the least capable of the three.

Does turning on reasoning improve these models? +

On this hardware it made both models that offer it worse. Qwen3.8-Flash-Next fell from 78.8% to 60.6% and GLM-5.3-Flash from 63.6% to 48.5% on the same 33 problems. They fail in opposite ways: Qwen reasons too much, with 12 of 33 runs hitting a 32,000-token ceiling without ever answering, while GLM reasons too little at 638 median tokens and loses three of the four hard problems it previously solved. Thinking off is the default until proven otherwise.

How much context can GLM-5.3-Flash actually retrieve? +

403,837 tokens, verified — ten needles out of ten at 48K, 156K, 200K, 301K and 404K, at depths 0.1, 0.5 and 0.9, with prefill flat at 820–845 tok/s across an eightfold range. Depth costs about 1%. That is a measured retrieval figure rather than a configured maximum: DeepSeek is configured for 1,048,576 tokens but nobody has checked whether it retrieves there.

What speculative depth should Qwen3.8-Flash-Next use? +

Depth 4 for real work. A synthetic decode suite recommends depth 9 and is right about what it measures — 31% faster on structured output — but measuring the actual workloads gave gains on one narrow shape and losses on three of five others, including −5% on the agent loop. Optimal speculative depth is a property of the workload rather than of the model.

Do these models run on a DGX Spark without changes to the vendor recipe? +

Two of the three need --enforce-eager, which no vendor recipe mentions because no vendor was running a GB10. Qwen's torch.compile locks up for twenty minutes without it. GLM's sparse attention indexer requests 119 thread blocks where the chip has 48 streaming multiprocessors, and its fallback path wants 128 KB of shared memory per block where GB10 provides 99 KB. Both are the hardware being smaller than the code assumes.

Wondering if this fits your business?

The benchmarks and architectures we cover here power real production AI assistants. See where your business stands in 2 minutes.

Take the AI Readiness Check
Share: Post Share

Read next