51.1 tok/s (Lucebox) vs 14.09 tok/s (single DGX Spark)
DeepSeek V4 Flash decode comparison
| System | Tested configuration | Decode throughput |
|---|---|---|
| Lucebox | ROCmFPX compressed model, DSpark draft model, four experts per token | 51.1 tok/s median |
| 1× NVIDIA DGX Spark | Q2 compressed model, average of tests at four context lengths | 14.09 tok/s |
| Measured ratio | 51.1 ÷ 14.09 | 3.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 system | Current U.S. price | What is included |
|---|---|---|
| 1× DGX Spark | $4,699 | Complete system with 4 TB storage |
| AMD-Powered Lucebox | $6,499 | Custom chassis, 2 TB storage, power delivery, integration, validation, and warranty |
| 2× DGX Spark | $9,398 | Two 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.
| Context | Lucebox | 1× DGX Spark | Speedup |
|---|---|---|---|
| 2k | 51.0 tok/s | 14.18 tok/s | 3.60× |
| 4k | 49.6 tok/s | 14.24 tok/s | 3.48× |
| 8k | 47.5 tok/s | 14.04 tok/s | 3.38× |
| 16k | 42.9 tok/s | 13.89 tok/s | 3.09× |
| Mean | 47.75 tok/s | 14.09 tok/s | 3.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.
DeepSeek V4 Flash decode, one request at a time · tok/s
1× DGX Spark
average of four tests
14.09
2× DGX Spark
without a helper model
45.70
AMD-Powered Lucebox
serving median
51.10
AMD-Powered Lucebox
short prompt, fastest run
55.00
2× DGX Spark
with DSpark
65.09
The Lucebox values are a three-request serving median and the fastest of three separate runs with a 53-token prompt. The single DGX Spark figure is our mean across 2k, 4k, 8k, and 16k context tests. Public sources: two DGX Sparks without a draft model and two DGX Sparks with DSpark. Prompts, context lengths, software, compression, and routing settings differ, so the public runs provide context rather than a controlled A/B comparison.
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.
One machine · two jobs
Faster GPU
Radeon AI PRO R9700
32 GB local GDDR6
- Core layers used for every token
- Most frequently selected experts
- DSpark helper model
- Working cache and final token selection
Larger memory
Strix Halo Radeon 8060S
128 GB shared LPDDR5X
- Remaining expert blocks
- Runs only experts selected for the current token
- Runs at the same time as the R9700
- No duplicate copy of the working cache
At each layer: find the selected experts → run them on the GPU that stores them → combine the results on the R9700.
The 32 GB and 128 GB memories are separate, not one shared 160 GB pool. Lucebox decides where every part of the model and its working state is stored.
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.
Effect of each change in the short test · tok/s
Full model only
30.1 to 30.4
DSpark
check 3, then 1
37.50
DSpark
check all 4 together
50.80
Combine
GPU transfers
52.60
Group Strix work
by expert
54.90
The 37.50 and 50.80 tok/s tests accepted the same draft tokens. Checking all four positions together removed an unnecessary split. Combining GPU transfers reduced waiting between the GPUs. Grouping Strix Halo’s work by expert meant reading the same weights fewer times. All draft tokens were accepted in the final short run.
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.
Prompt processing for the same ~2k-token prompt · tok/s
Strix Halo only
baseline
~298
Both GPUs
initial R9700 join, DSpark loaded
368.76
Both GPUs
R9700 join, target only
377.82
Both GPUs
optimized R9700 join, DSpark loaded
415.52
Every row uses the same approximately 2k-token prompt, four experts per token, and no prompt cache. The final value is the median of three measured requests with DSpark loaded. Earlier implementation runs generated more output tokens after prefill, but the prompt-processing input was unchanged.
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
- DeepSeek V4 Flash: 284B model, up to 32 tok/s on Ryzen AI MAX+ 395
- Gemma 4 26B vs DeepSeek V4 Flash on ds4-eval-92
- DFlash + PFlash on AMD Strix Halo
- DeepSeek V4 Flash results on LocalMaxxing
- Lucebox source code
Use both sides of the machine
Lucebox is open source. The implementation, models, and benchmark details are public.