August 13, 2026 · James Meadlock & Milo · Funland dual DGX Spark

DSF-0731-Mia

Created · Updated

LIVE Same model, same image, newer recipe. Official DeepSeek-V4-Flash-0731 on two GB10 Sparks. Runtime is still ghcr.io/anemll/dspark-vllm-gx10:0.1.1 digest sha256:a8394849…. What changed is Mia’s Aug 12–13 start-time hotfixes from MiaAI-Lab/DeepSeek-v4-Flash-DSpark-2x-DGX-Spark @ 018c6bc. We did not pull into the July 29 production tree.
Count 1→30090.9 t/sbest · med 90.4 · stream:false
Keys C168.4best-of-2 agg · accept 0.73
Keys C4 / C6142 / 180agg tok/s · best-of-2
ThinkingoffJSON bool false

What shipped

DSF-0731-Mia live path Hermes with thinking false talks to a two-Spark TP=2 Anemll 0.1.1 server running official Flash-0731. Mia hotfixes 22, 26, 27, and 31 apply at start. Funland keeps util 0.85, batch 8192, and dynamic K 5/4/3. Rollback is the July 29 tree. Live lane · August 13, 2026 Official 0731 · Anemll 0.1.1 · Mia 018c6bc hotfixes · no image bump HERMES thinking: false tools + ROUTE_OK budget path unused 2× DGX SPARK · TP=2 Flash-0731 · 1M / 6 / 8192 util 0.85 · regular graphs · K 5/4/3 KV 2.24M · nvfp4_ds_mla count bench 90.9 tok/s vision stays Qwen3-VL on M5 MIA START PATCHES #22 long-ctx NVFP4 #26 prefix / SWA min #27 decode starvation #31 thinking budget plus six v0.27 backports Did not copy DEFAULT_THINKING=max · batch 16384 · util 0.835-as-gospel · VL sidecar · abliterated weights · in-place git pull

Diagram is the August 13 Funland apply, not Mia’s advertised defaults. Connectors stay in the gutters.

Why we touched a working lane

Mia’s August 13 post asked people to update the 2× Spark repo. The tweet maps to three real bugs on the same Anemll 0.1.1 image we already run:

IssueFailureWhy it matters here
#27 A long new prefill starves in-flight decode. vLLM advertises max_num_partial_prefills=1 and never enforces it. Agent mix: a fat prompt arriving while another reply is still decoding.
#26 Hybrid KV lookup takes the min hit across MLA + sliding-window groups, so a legal SWA drop zeros the common prefix. Same long prompt re-prefills. Worst at concurrent 32K+ prefixes, not C1 replay.
#31 thinking:max + max_tokens mid-reason returns content: null. Stock image 400s thinking_token_budget on the V2/DSpark runner. We already avoid it with thinking: false. The patch is optional insurance, not a reason to turn thinking on.

The quieter win is #22: nvfp4_ds_mla had been dispatched down the slow BF16 KV path. Mia’s changelog claims ~16× decode at 600K+ after the fix. We did not re-run a 600K needle today.

How we applied it

Copy-checkout. origin/main was force-pushed over our July 29 commit, so an in-place pull would have smashed Funland work.

We already rejected batch 16384 on this pair: count dropped 90 → 61 t/s (−32%). Funland 1M also failed to boot at util 0.80 (KV cliff). Those two negatives still stand. Mia’s 0.835 text util is close; we did not spend an outage to chase 0.015.

August 13 gates

Same session as the apply. Loopback unless noted. No new long-context needle.

GateResult
/v1/modelsdeepseek-v4-flash-0731 · max_model_len=1048576
Exact smokeRESTORE_0731_OK, finish_reason=stop
Toolsget_weather("Pensacola") in tool_calls[]
HermesROUTE_OK
Queues0 running · 0 waiting · 0 preemptions
WarmupC4 mean K 4.01 · C6 mean K 3.03 · pass-2 JIT 0
Count 1→300, stream:false600 completion tokens / 6.47 s = 92.7 tok/s
#31 budget=64, thinking onHTTP 200, content not null (481 chars). Hermes still does not send this.
Anemll imageStill latest 0.1.1. No platform bump to apply.

92.7 t/s is the Tony-class peak fixture, not everyday agent feel. Typical agent / Keys C1 on this pair has been the mid-50s to ~70 band. Publish both numbers or you will lie to yourself.

August 13 bench

Fresh loopback run at 6:22 AM CDT, same live 018c6bc process, queues idle, thinking: false, temp 0. Two regimes. Do not mix them into one headline.

Tony-parity · stream:false · completion_tokens / wall

Two reps each. First can be colder. Mix-weighted spec accept across this block: 2260 / 2535 = 0.892.

ProbeBest t/sMedian t/sTokens / wall (best)
count 1→30090.8890.38600 tok / 6.60 s
count 1→15088.0988.04300 tok / 3.41 s
repeat ABCDEFG×8092.8292.28244 tok / 2.63 s
short code is_prime71.6968.7593 tok / 1.30 s
structured JSON51.1248.64154 tok / 3.01 s

Apply-time single count smoke was 92.7 t/s. The scored fixture is the 2-rep Tony board: 90.9 best / 90.4 median. Tony’s published count-class peak is ~82. This is +8.6 on that reference, not a new architecture.

Keys concurrency · server-aggregate · best of 2

House bench_concurrent.py against deepseek-v4-flash-0731. Per-stream SSE numbers under-count under spec decode; the number we keep is server-agg.

LoadBest agg t/sPer-stream (agg/n)Acceptvs 0731 promote (Jul 31)
C168.468.40.72568.9 · tie
C4141.835.50.720135.8 · +4.4%
C6180.330.00.767180.6 · tie

After the board: 0 running / 0 waiting / 0 preemptions. This is operational route evidence, not a leaderboard.

What this is not

Standing call: this copy-checkout is the live Flash-0731 lane. July 29 tree remains rollback. Companion recipe: Flash-0731 current recipe.