[https://nvbugs/6633931][fix] Chunk the MoE workspace on the SM90 branch of TestDeepSeekV32::test_fp8_blockscale - #18322
Conversation
….2 blockscale test Left unset, moe_max_num_tokens defaults to max_num_tokens * dp_size, which the DP-gathered row count can never exceed, so MoE runs unchunked and sizes a single 14.02 GiB workspace for 65536 rows. Warmup allocates it after the KV cache, which was sized from a profile taken before it and leaves only 10.80 GiB free. Signed-off-by: Pranav Shrestha <254760092+pranav-nvidia@users.noreply.github.com>
…hunk Signed-off-by: Pranav Shrestha <254760092+pranav-nvidia@users.noreply.github.com> # Conflicts: # tests/integration/test_lists/waives.txt
Signed-off-by: Pranav Shrestha <254760092+pranav-nvidia@users.noreply.github.com>
…hunk Signed-off-by: Pranav Shrestha <254760092+pranav-nvidia@users.noreply.github.com> # Conflicts: # tests/integration/test_lists/waives.txt
|
/bot run --disable-fail-fast |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Enterprise Run ID: 📒 Files selected for processing (2)
💤 Files with no reviewable changes (1)
🚧 Files skipped from review as they are similar to previous changes (1)
Included review availability: Your plan provides up to 12 included reviews per hour; 11 remain after this review. WalkthroughThe FP8 blockscale accuracy test now sets ChangesFP8 blockscale validation
Estimated code review effort: 1 (Trivial) | ~5 minutes Merge Risk: ⚪ Minimal · up to This change limits workspace sizing for the SM90 test and removes its waiver, reducing intermittent test OOMs without changing product runtime behavior. No actionable merge-blocking risk remains beyond normal checks and review. Suggested reviewers: 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
|
PR_Github #70405 [ run ] triggered by Bot. Commit: |
|
PR_Github #70405 [ run ] completed with state
|
|
/bot run |
|
PR_Github #70477 [ run ] triggered by Bot. Commit: |
|
PR_Github #70477 [ run ] completed with state
|
|
/bot run |
|
PR_Github #70489 [ run ] triggered by Bot. Commit: |
|
PR_Github #70489 [ run ] completed with state |
…hunk Signed-off-by: Pranav Shrestha <254760092+pranav-nvidia@users.noreply.github.com> # Conflicts: # tests/integration/test_lists/waives.txt
|
Note GitHub couldn't provide a complete incremental comparison for this pull request, so CodeRabbit is performing a full review instead. This review may take a little longer. |
|
/bot run |
|
PR_Github #70782 [ run ] triggered by Bot. Commit: |
|
PR_Github #70782 [ run ] completed with state |
Dev Engineer Review
test_fp8_blockscalenow setsMoeConfig(max_num_tokens=16384)on the SM90 path.QA Engineer Review
TestDeepSeekV32::test_fp8_blockscale[baseline].--stage-list.tests/integration/test_lists/waives.txt.Description
TestDeepSeekV32::test_fp8_blockscale[baseline]fails intermittently onDGX_H200-8_GPUs-PyTorch-Post-Merge-1with a CUDA OOM during executor warmup: a single 14.02 GiB MoE workspace allocation against 10.80 GiB free.The SM90 branch of the test builds
MoeConfig()with nomax_num_tokens. Left unset,moe_max_num_tokensdefaults tomax_num_tokens * dp_size(8192 * 8 = 65536), which the DP-gathered row count can never exceed, socalculate_num_chunksreturns 1 and MoE sizes one workspace for all 65536 rows. That workspace is allocated during warmup, after the KV cache has been sized from a profiling pass taken before it, so it has to fit in whatever the KV cache left behind.baselineismtp_nextn=0, so it has the lowest profiling peak of the three parametrizations, hence the largest KV cache (13.55 GiB) and the least headroom — which is why it fails and its siblings do not.Capping the MoE token count at 16384 gives 4 chunks and a ~3.5 GiB workspace. MoE chunking is mathematically equivalent, so accuracy is unaffected. The Blackwell branch immediately above has carried
max_num_tokens=16384since the test was introduced; this brings the SM90 branch in line.The waive for this test is removed in the same change.
A separate PR fixes the kernel-side over-allocation that made this latent gap start failing (
#16849grew the SM90 fp8-block-scale MoE workspace from 11.0 to 14.0 GiB). The two are independent: this change alone restores margin for the test, the kernel change alone leaves it fitting by only 0.12 GiB.Test Coverage
accuracy/test_llm_api_pytorch.py::TestDeepSeekV32::test_fp8_blockscale[baseline]onDGX_H200-8_GPUs-PyTorch-Post-Merge-1, un-waived by this PR and run via--stage-list.PR Checklist
GitHub Bot Help
To see a list of available CI bot commands, please comment
/bot help.