Repository navigation
[Spec] Fix DFLASH verify mask policy for wrapped attention backends - #43054
Conversation
Resolve HybridAttnBackend / TboAttnBackend to the backend that runs TARGET_VERIFY before checking the skip list, so split prefill/decode backends no longer capture verify graphs with an unused custom mask. Add a FlashInfer guard against mask-less plans on masked graph wrappers. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
eaab6ee to
3a06a7c
Compare
|
/tag-and-rerun-ci |
nvpohanh
left a comment
There was a problem hiding this comment.
[by Claude Code] Severity: style | Confidence: High
Issue
The GSM8K before/after table has no commands, so others cannot rerun it. The description does not include:
- the server launch command: the target and DFLASH draft model paths, the
--speculative-*flags (algorithm and number of draft tokens), and the attention backend flags; - the
lm_evalcommand: task, limit, concurrency, and sampling settings.
Fix
Add both commands for the before and after runs. If the Nemotron-3.5-Super checkpoint or the LiLiCorr draft is not public, one before/after GSM8K run on a public DFLASH target/draft pair with --prefill-attention-backend flashinfer --decode-attention-backend trtllm_mha is enough.
|
/rerun-test test/registered/attention/unittests/dense/test_flashinfer.py test/registered/attention/unittests/swa/test_flashinfer.py test/registered/spec/dflash/test_dflash.py test/registered/e2e/models/test_kimi_k3_b300.py |
|
🚀 🚀 🚀 🚀 |
|
/tag-and-rerun-ci |
|
[by Claude Code] I've started babysitting the NVIDIA CI of this PR. I'll check it every 30 minutes until all NV pipelines pass. If a relevant job fails, I may rerun it, merge the latest Anyone can stop me at any time: just post a comment asking me to stop (for example, |
|
/rerun-failed-ci |
|
[by Claude Code] All NV pipelines have passed. |
|
@kpham-sgl could you help us to merge this? Thanks! |
|
merging since @Jiminator has approved and this is a small change and CI has passed. |
Motivation
With DFLASH and split attention backends (
--prefill-attention-backend flashinfer --decode-attention-backend trtllm_mha, default--speculative-attention-mode prefill), target-verify output is corrupted (GSM8K 0.03).resolve_dflash_verify_mask_policychecks the skip list by class name, soHybridAttnBackendis not matched and verify CUDA graphs are captured with a custom mask. DFLASH replay always passescustom_mask=None, so FlashInfer runs the captured custom-mask kernel on a stale mask buffer.Modifications
HybridAttnBackend/TboAttnBackendto the backend that runsTARGET_VERIFYbefore checking the skip list.Accuracy Tests
Nemotron-3.5-Super NVFP4 + DFLASH (LiLiCorr), DGX SPARK(GB10),
lm_evalGSM8K 5-shot:--speculative-attention-mode decode(reference)🤖 Generated with Claude Code
CI States
Latest PR Test (Base): ✅ Run #38254580606
Latest PR Test (Extra): ❌ Run #38254580401
Latest PR Test (AMD ROCm 10): ❌ Run #38254580590