[https://nvbugs/6018046][fix] Lower throughput_pp4_mtp max_batch_size to 8 - #14585
[https://nvbugs/6018046][fix] Lower throughput_pp4_mtp max_batch_size to 8#14585tianyuxbear wants to merge 1 commit into
Conversation
… to 8 The throughput_pp4_mtp variant uses pp_size=4 + ep_size=1 + mtp_nextn=1 on a 4-GPU topology. With max_batch_size=32 (every other 4-GPU variant in this test uses bs<=16), the per-bs CUDA-graph snapshot pool plus per-step activation and NCCL collective buffers leave no headroom for the lazy cuBLAS Lt workspace allocation. Under sustained load this surfaces as mid-run CUBLAS_STATUS_EXECUTION_FAILED in the DeepseekV3 router / o_proj GEMMs, followed by an asynchronous illegal memory access. Lower max_batch_size from 32 to 8 to match the already-stable throughput_bs8_mtp configuration. With bs=8 the default 0.70 KV cache fraction provides sufficient cuBLAS workspace headroom; the test passes in repeated runs without any KV fraction reduction. Removes the matching waiver entry. Signed-off-by: Tianyu Xiong <117647511+tianyuxbear@users.noreply.github.com>
|
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)
📝 WalkthroughWalkthroughThis PR adjusts a single test parameter in the DeepSeekR1 GPU test suite. The ChangesBatch size adjustment for throughput_pp4_mtp test
Estimated code review effort🎯 2 (Simple) | ⏱️ ~8 minutes Possibly related PRs
Suggested reviewers
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
|
/bot run --extra-stage "DGX_B300-4_GPUs-PyTorch-Post-Merge-1, DGX_B300-4_GPUs-PyTorch-Post-Merge-2" --disable-fail-fast |
|
PR_Github #50365 [ run ] triggered by Bot. Commit: |
|
PR_Github #50365 [ run ] completed with state
|
|
/bot run --extra-stage "DGX_B300-4_GPUs-PyTorch-Post-Merge-1, DGX_B300-4_GPUs-PyTorch-Post-Merge-2" --disable-fail-fast |
|
PR_Github #50420 [ run ] triggered by Bot. Commit: |
|
PR_Github #50420 [ run ] completed with state
|
|
/bot run --disable-fail-fast |
|
PR_Github #50504 [ run ] triggered by Bot. Commit: |
|
PR_Github #50504 [ run ] completed with state |
|
/bot run --stage-list "DGX_B300-4_GPUs-PyTorch-Post-Merge-2" |
|
PR_Github #50532 [ run ] triggered by Bot. Commit: |
|
PR_Github #50532 [ run ] completed with state |
|
/bot run --disable-fail-fast |
1 similar comment
|
/bot run --disable-fail-fast |
|
PR_Github #50660 [ run ] triggered by Bot. Commit: |
|
PR_Github #50660 [ run ] completed with state |
Summary
Fixes
TestDeepSeekR1::test_nvfp4_multi_gpus[throughput_pp4_mtp](NVBug 6018046) by loweringmax_batch_sizefrom 32 to 8 to match the already-stablethroughput_bs8_mtpconfiguration. The matching waiver entry is removed.Root cause
On 4-GPU PP=4 + MTP topology,
max_batch_size=32causes the per-bs CUDA-graph snapshot pool (32 captured graphs) plus per-step activation and NCCL collective buffers to exhaust the physical headroom needed by the lazycudaMallocfrom cuBLAS Lt workspace (DeepseekV3 router GEMM, attentiono_proj) on B300. With the default 0.70 KV cache fraction allocating ~100 GiB / rank, only ~3 GiB of physical free pool remains for cuBLAS Lt / NCCL workspaces, which is insufficient under sustained load. The failure manifests as mid-runCUBLAS_STATUS_EXECUTION_FAILEDfollowed by an asynchronous illegal memory access.Relation to #14201
#14201 fixes the same bug by combining
max_batch_size 32→8withfree_gpu_memory_fraction 0.70→0.50. Through isolated controlled experiments I verified the KV-fraction change is not strictly required oncebsis lowered:upstream/mainbaselineAt
bs=8the per-bs CUDA-graph pool and per-step activation footprint shrink by 4x, restoring enough physical free pool for the lazy cuBLAS Lt / NCCL workspaces even at the default 0.70 KV fraction. This PR is therefore a minimal single-knob alternative to #14201.Test plan
pytest accuracy/test_llm_api_pytorch.py::TestDeepSeekR1::test_nvfp4_multi_gpus[throughput_pp4_mtp]passes 3/3 on B300 4-GPUSummary by CodeRabbit