fix(dspark): reserve V2 padded Q scratch - #26
Conversation
|
@jasl this should fix v2 |
|
Thanks @alexbi29 — validated end-to-end on 2-node GB10 (TP=2, DSv4-Flash, FULL_AND_PIECEWISE) and merged. The fix is correct and does exactly what it says. Because the changed callsite ( V1 (production default)
V1 + MTP2
V2 runner — and this is the interesting part:
That 16/16 is worth flagging. We had previously recorded V2 long-context recall collapsing at this exact config (we measured 3/16 @28k/conc8) and had written it off as an unfixable cudagraph-replay-class recall bug — the reason we'd stayed on V1. Your padded-Q OOM fix also resolves that collapse: the old "misses" were requests erroring under memory pressure, not a replay bug. So this reconciles your 15/16 vs our 3/16 — with the fix it's a clean 16/16 here, and V2 is back on the table for us. Nice catch. Two small follow-ups I applied/noted on the merge (not blockers):
Thanks again — merged into |
Summary
fused_deepseek_v4_qnorm_rope_kv_rope_quant_insert.q_out; DeepSeek V4 attention pre-reserves reusable padded-Q scratch during V2 profile/runtime.Validation
Using V2 Model Runner, GPU KV cache1,095,149tokens, max concurrency2.09x15/16exact recall, one retrieval miss303.8 tok/s, median302.0, range297.4-311.5