Two Models Across Two DGX Sparks

Two Models Across Two DGX Sparks

Qwen3.8-Flash-Next and GLM-5.3-Flash split across both Sparks with TP=2: speed, memory, and a pelican from each.

AI InfrastructureDGX SparkvLLMTensor ParallelismMoESpeculative Decoding

In the last post Qwen3.8-Flash-Next ran on one Spark. In October NVIDIA published FP4-Local versions of two models: Qwen3.8-Flash-Next and GLM-5.3-Flash. FP4-Local is a 4-bit build for local hardware. The experts are stored in NVFP4, and NVIDIA trained the quantized model further to match the original (quantization-aware distillation). For Qwen it is 95 GiB, against 124 GiB for the NVFP4 version in the last post. I ran both with TP=2, which I described in the Sparks post. Each Spark holds half of every layer, and the two exchange results over the QSFP cable.

Both run on the same vLLM build, from a community image with faster kernels for this chip. Both have a small draft head (MTP) that guesses the next tokens, and the main model checks the guesses.

Qwen3.8-Flash-NextGLM-5.3-Flash
Parameters125B, 6B active320B, 18B active
Weights95 GiB165 GiB
Start time9.5 min7.7 min
Free memory per Spark68 to 70 GiB20 to 21 GiB
KV cache306k tokens302k tokens

Qwen also has the 51B lookup table from the last post. The free memory is while the server runs.

Random text

The first test is the same as in the earlier posts: one user, prompts of about 200 tokens of random filler, 150 tokens out, thinking off. GLM has no mode without thinking, so on this test it was writing its reasoning, not an answer.

Qwen3.8-Flash-NextGLM-5.3-Flash
Tokens per second31.331.2
8k-token prompt, first token3.0 s3.6 s

So the two numbers measure different text. The real prompts below compare the models better. On one Spark the same Qwen weights give 22 tokens per second here, so the second Spark adds about 40%.

Real prompts

Random filler cannot be guessed, so Qwen's draft head almost never helps on the test above. For Qwen I also ran six real prompts, five times each, at temperature 0.7. These are the medians:

PromptTwo SparksOne SparkTokens per step, two Sparks
Write JSON94.162.44.33
Write code89.758.04.04
Rewrite a paragraph71.044.23.74
Explain a concept68.146.53.29
Translate to Turkish55.735.42.87
Write a story50.633.62.25

Two Sparks are about 1.5 times faster on every prompt. The draft keeps the same number of tokens per step on one or two Sparks. What changes is the step: about 45 ms on two Sparks, about 71 ms on one.

I ran the same set on GLM at low, its lowest reasoning level. Both on two Sparks:

PromptQwen3.8-Flash-NextGLM-5.3-FlashTokens per step, GLM
Write JSON94.150.34.40
Write code89.741.03.83
Rewrite a paragraph71.040.73.48
Explain a concept68.133.33.08
Translate to Turkish55.725.82.42
Write a story50.624.62.20

Qwen is about twice as fast. GLM's draft keeps nearly as many tokens per step as Qwen's: 4.40 against 4.33 on JSON, 2.20 against 2.25 on the story. What differs is the step: about 90 ms on GLM, about 45 ms on Qwen. GLM has 18B active parameters per token, Qwen 6B.

A pelican from each

Simon Willison asks every new model for the same thing: "Generate an SVG of a pelican riding a bicycle". I asked both models at each of their reasoning levels, one sample per level.

Qwen3.8-Flash-Next

lowmediumxhigh
Pelican by Qwen3.8-Flash-Next at lowPelican by Qwen3.8-Flash-Next at mediumPelican by Qwen3.8-Flash-Next at xhigh
31 s39 s218 s

GLM-5.3-Flash

lowhighmax
Pelican by GLM-5.3-Flash at lowPelican by GLM-5.3-Flash at highPelican by GLM-5.3-Flash at max
35 s77 s849 s

GLM's high answer is close to its max answer, at a tenth of the time. Qwen's xhigh answer is clearly the best of its three, but it takes more than five times as long as medium.

LevelQwen3.8-Flash-NextGLM-5.3-Flash
low31 s, 2,733 tokens35 s, 1,492 tokens
medium / high39 s, 3,133 tokens77 s, 3,012 tokens
highest218 s, 16,049 tokens849 s, 28,414 tokens
Tokens per second74 to 8933 to 43

GLM has only low, high and max, so its middle row is "high".

On the pelican prompt Qwen is about twice as fast, the same gap as on the real prompts.

Both setups are in my recipes repo, with the commands I ran.