By Davide Ciffa

Lucebox (AMD Radeon AI PRO R9700 + Strix Halo) Beats NVIDIA DGX Spark by 3.63x on DeepSeek V4 Flash Decode Speed

51.1 tok/s (Lucebox) vs 14.09 tok/s (single DGX Spark)

An AMD-Powered Lucebox under a starry sky, with the Lucebox and AMD marks above it

DeepSeek V4 Flash decode comparison

Measured decode throughput for one request at a time on the full 284B model
SystemTested configurationDecode throughput
LuceboxROCmFPX compressed model, DSpark draft model, four experts per token51.1 tok/s median
1× NVIDIA DGX SparkQ2 compressed model, average of tests at four context lengths14.09 tok/s
Measured ratio51.1 ÷ 14.093.63×

Using the unrounded DGX Spark mean of 14.0875 tok/s gives the 3.63× headline ratio. Each platform runs a configuration tuned for its own hardware, so this is a whole-system comparison rather than a GPU-only A/B test. Decode throughput is the rate at which each system generates new tokens.

DeepSeek V4 Flash has 284 billion parameters. The 102.3 GB ROCmFPX build is too large for the R9700’s 32 GB of memory, so Lucebox gives the two AMD GPUs different jobs. The R9700 handles the dense path and frequently selected experts; Strix Halo holds the remaining experts in its 128 GB memory and runs them in parallel.

The headline Lucebox result is the median of three measured requests after two warmups, using an approximately 2k-token prompt and 128 generated tokens. An 11.3 GB DSpark draft model proposes several tokens at once; the full DeepSeek V4 Flash model verifies them before they are accepted. We also ran a separate 53-token prompt to measure the upper end of the implementation.

For the single-device baseline and the ROCmFPX compression details, see our companion report on DeepSeek V4 Flash on AMD Ryzen AI MAX+ 395.

Complete system price

AMD-Powered Lucebox is priced at $6,499 as a complete local inference system, including the custom chassis, 2 TB of storage, power delivery, hardware integration, validation, and warranty. NVIDIA lists one DGX Spark at $4,699, or $9,398 for two.

Complete systemCurrent U.S. priceWhat is included
1× DGX Spark$4,699Complete system with 4 TB storage
AMD-Powered Lucebox$6,499Custom chassis, 2 TB storage, power delivery, integration, validation, and warranty
2× DGX Spark$9,398Two complete systems

At those list prices, Lucebox costs 38% more than one DGX Spark and delivers about 2.6× the decode throughput per dollar in the headline configurations. It costs 31% less than two DGX Sparks.

Prices are the U.S. list prices available at publication, before tax and shipping. Sources: Lucebox system configuration and NVIDIA Marketplace. Configurations and prices can change.

One DGX Spark, measured directly

We ran a Q2 compressed version of the full DeepSeek V4 Flash model on one DGX Spark. We then measured Lucebox at the same 2k, 4k, 8k, and 16k context lengths.

Matched single-request decode throughput on the full 284B model
ContextLucebox1× DGX SparkSpeedup
2k51.0 tok/s14.18 tok/s3.60×
4k49.6 tok/s14.24 tok/s3.48×
8k47.5 tok/s14.04 tok/s3.38×
16k42.9 tok/s13.89 tok/s3.09×
Mean47.75 tok/s14.09 tok/s3.39×

The DGX Spark mean is 14.0875 tok/s, which we report as 14.09 tok/s. Lucebox averages 47.75 tok/s across the same four context lengths, a 3.39× speedup. The 3.63× headline uses the separate 51.1 tok/s Lucebox serving result shown above.

DGX Spark ran the Q2 model; Lucebox ran the ROCmFPX model with four experts per token and DSpark speculative decoding. Each system uses the configuration designed for its hardware.

For wider context, LocalMaxxing includes two-DGX-Spark results both with the standard target and with a DSpark-specific package. We show both below rather than selecting the more favorable reference.

The public two-Spark results bracket Lucebox: the standard target is effectively tied with our longer decode run, while the DSpark-specific configuration is faster. They are useful reference points, but not substitutes for a matched benchmark.

How the work is split

Tensor parallelism usually divides the same calculation evenly between matching GPUs. That does not work well here because the R9700 and Strix Halo have different speeds and memory. An even split makes the R9700 wait. Splitting the model into whole layers is also slow because every token must pass through one device and then the other.

DeepSeek V4 Flash is a mixture of experts model. Each layer contains 256 expert blocks, but only a small number are selected for each token. These tests use four. Lucebox stores each expert on one GPU. At every layer, both GPUs run the selected experts they hold, then the R9700 combines their results.

Expert ownership follows the hardware: frequently selected experts stay beside the dense path on the R9700, while the long tail lives in Strix Halo’s larger memory. One process submits both branches, copies the Strix Halo result directly to the R9700, and combines the outputs there. The R9700 remains the sole owner of the target cache and sampler.

How the short test reached 55 tok/s

The largest gain came from verifying four DSpark positions in one GPU operation. A generic safety rule had split some verification steps into groups of three and one, even though the DeepSeek V4 Flash path could handle all four together. Removing that split kept the verifier in one graph; transfer batching and expert grouping supplied the remaining gains.

The fused four-position verifier made the decisive jump. Batching the peer transfers reduced synchronization, and grouping Strix Halo routes by expert avoided rereading the same compressed weights. The final path also joins results and selects the next token on the GPU while reusing state already computed by DSpark.

Test Setup: DeepSeek V4 Flash 284B, Asymmetric Expert Parallelism

Asymmetric expert parallelism means the two GPUs are assigned different work rather than equal slices of every operation.

Hardware
R9700 + Strix Halo
one machine
Software
ROCm 7.2.4
one process, two GPUs
DSpark setting
check 4 positions at once
4 experts per token
Request mode
one request at a time
temperature 0 for repeatability
Serving test
~2k prompt tokens
128 output tokens
Serving median
51.1 tok/s generation
415.52 tok/s prompt processing
Matched context sweep
2k · 4k · 8k · 16k
128 output tokens
Sweep protocol
2 warmups + 3 measured
prompt caches disabled
Short prompt test
54.7 · 54.9 · 55.0 tok/s
Time per DSpark step
helper: 6.0 to 6.1 ms
full model: 64.8 to 65.1 ms
Longer decode test
~2k prompt tokens
510 output tokens
Longer test median
45.5 tok/s median
41.8 to 45.7 range

The server reported exactly 2k, 4k, 8k, and 16k prompt tokens for the matched sweep. All measured requests generated the same 128-token response byte for byte, and the draft acceptance rate was 0.97. The 16k point was measured in a fresh process with the same binary and settings.

The short-prompt result is a ceiling test: 53 prompt tokens, 128 generated tokens, and every DSpark proposal accepted. For a less favorable shape, five measured requests used an approximately 2k-token prompt and generated 510 tokens; decode ranged from 41.8 to 45.7 tok/s, with a 45.5 tok/s median. All five produced the same response byte for byte.

The target was DeepSeek-V4-Flash-ROCMFP2-STRIX.gguf; the draft was DeepSeek-V4-Flash-DSpark-draft-Q4RMFP4-denseF16.gguf. The build passed all 20 automated tests, including end-to-end coverage for regular and streamed DSpark requests.

Benchmark scope. Throughput was measured with four routed experts per token. Repeated runs were deterministic; comparison with the six-expert reference configuration was outside the scope of this performance benchmark.

Prompt processing: 415.52 tok/s with DSpark loaded

Prompt processing, or prefill, is the work performed before the first generated token. With the 11.3 GB DSpark draft resident on the R9700, three measured requests after two warmups reached a 415.52 tok/s median, with a narrow 415.46–415.95 tok/s range.

The progression below separates hardware placement from implementation changes. The initial two-GPU path joined both outputs on the CPU. The faster path leaves the R9700 output in device memory, copies only the Strix Halo partial, and completes the join on the R9700.

Moving the join off the CPU improved the target-only path by 6.8%. With DSpark loaded, the first R9700-join implementation was 23.7% faster than the Strix-only baseline; transfer and kernel work produced the final result shown above.

This faster prompt processing path is optional. It changes the order of some calculations. This test also uses four experts per token instead of the model’s default six. Prompt processing and token generation are separate measurements, so their rates are not added together.

Why heterogeneous hardware works here

The architecture is the point. Strix Halo is an active expert engine, not overflow memory, while the R9700 keeps the latency-sensitive path. Sparse routing makes the uneven split practical: each processor contributes the bandwidth, capacity, and compute it has.

Related

Use both sides of the machine

Lucebox is open source. The implementation, models, and benchmark details are public.

GitHub Main model DSpark helper model Discord