[https://nvbugs/6379316][fix] Reject MNNVL on split NVLink topology#16603
[https://nvbugs/6379316][fix] Reject MNNVL on split NVLink topology#16603karljang wants to merge 6 commits into
Conversation
|
/bot run |
|
PR_Github #60293 [ run ] triggered by Bot. Commit: |
|
PR_Github #60293 [ run ] completed with state
|
|
/bot run --disable-fail-fast |
|
PR_Github #60317 [ run ] triggered by Bot. Commit: |
|
PR_Github #60317 [ run ] completed with state
|
|
/bot help |
GitHub Bot Help
Provide a user friendly way for developers to interact with a Jenkins server. Run See details below for each supported subcommand. Details
Launch build/test pipelines. All previously running jobs will be killed.
kill
Kill all running builds associated with pull request. skip
Skip testing for latest commit on pull request. reuse-pipeline
Reuse a previous pipeline to validate current commit. This action will also kill all currently running builds associated with the pull request. IMPORTANT NOTE: This is dangerous since lack of user care and validation can cause top of tree to break. |
|
/bot run --extra-stage "DGX_H200-8_GPUs-PyTorch-Post-Merge-1" --disable-fail-fast |
c9bd803 to
3c816ec
Compare
|
/bot run --extra-stage "DGX_H200-8_GPUs-PyTorch-Post-Merge-1" --disable-fail-fast |
|
/bot run --stage-list "DGX_H200-8_GPUs-PyTorch-Post-Merge-1" --disable-fail-fast |
|
PR_Github #60422 [ run ] triggered by Bot. Commit: |
|
PR_Github #60421 [ run ] triggered by Bot. Commit: |
|
PR_Github #60422 [ run ] completed with state |
|
PR_Github #60421 [ run ] completed with state
|
|
/bot run --stage-list "DGX_H200-8_GPUs-PyTorch-Post-Merge-1" --disable-fail-fast |
|
PR_Github #60464 [ run ] triggered by Bot. Commit: |
|
PR_Github #60464 [ run ] completed with state
|
Signed-off-by: Kanghwan Jang <861393+karljang@users.noreply.github.com>
Signed-off-by: Kanghwan Jang <861393+karljang@users.noreply.github.com>
Signed-off-by: Kanghwan Jang <861393+karljang@users.noreply.github.com>
8d7b539 to
f4a5393
Compare
|
/bot run --stage-list "DGX_H200-8_GPUs-PyTorch-Post-Merge-1" --disable-fail-fast |
|
PR_Github #60737 [ run ] triggered by Bot. Commit: |
Signed-off-by: Kanghwan Jang <861393+karljang@users.noreply.github.com>
|
/bot run --stage-list "DGX_H200-8_GPUs-PyTorch-Post-Merge-1" --disable-fail-fast |
|
PR_Github #60737 [ run ] completed with state
|
|
/bot run --stage-list "DGX_H200-8_GPUs-PyTorch-Post-Merge-1" --disable-fail-fast |
|
PR_Github #60776 [ run ] triggered by Bot. Commit: |
|
PR_Github #60776 [ run ] completed with state |
|
/bot run --disable-reuse-test --disable-fail-fast --extra-stage "DGX_H200-8_GPUs-PyTorch-Post-Merge-1" |
|
PR_Github #60895 [ run ] triggered by Bot. Commit: |
|
PR_Github #60895 [ run ] completed with state
|
|
/bot run --disable-reuse-test --disable-fail-fast --extra-stage "DGX_H200-8_GPUs-PyTorch-Post-Merge-1" |
|
PR_Github #61021 [ run ] triggered by Bot. Commit: |
|
PR_Github #61021 [ run ] completed with state
|
|
/bot run --disable-reuse-test --disable-fail-fast --extra-stage "DGX_H200-8_GPUs-PyTorch-Post-Merge-1" |
|
PR_Github #61086 [ run ] triggered by Bot. Commit: |
|
PR_Github #61086 [ run ] completed with state
|
|
/bot run --stage-list "DGX_H200-8_GPUs-PyTorch-Post-Merge-1" --disable-fail-fast |
|
PR_Github #61342 [ run ] triggered by Bot. Commit: |
|
PR_Github #61342 [ run ] completed with state |
|
/bot run --disable-fail-fast --extra-stage "DGX_H200-8_GPUs-PyTorch-Post-Merge-1" |
|
PR_Github #61361 [ run ] triggered by Bot. Commit: |
|
PR_Github #61361 [ run ] completed with state
|
Signed-off-by: Kanghwan Jang <861393+karljang@users.noreply.github.com>
Signed-off-by: Kanghwan Jang <861393+karljang@users.noreply.github.com>
|
/bot run --stage-list "DGX_B200-4_GPUs-PyTorch-1" --disable-reuse-test |
|
/bot kill |
|
/bot run --disable-fail-fast --extra-stage "DGX_H200-8_GPUs-PyTorch-Post-Merge-1" |
|
PR_Github #61433 [ kill ] triggered by Bot. Commit: |
|
PR_Github #61433 [ kill ] completed with state |
|
PR_Github #61434 [ run ] triggered by Bot. Commit: |
|
PR_Github #61434 [ run ] completed with state
|
Summary
Fix the DeepSeek V3.2 H200 host-cache-offload and FP8 block-scale failures by addressing three distinct layers in the failure chain: invalid communication selection on split NVLink topologies, an empty-EP-rank hole in FP8 block-scale MoE, and cross-test GPU-memory retention in a reused MPI worker pool.
Bug scope
test_dsa_host_cache_offload[host_cache_offload]andtest_fp8_blockscale[baseline].Fix 1: Reject unsupported MNNVL communication
Focus: topology-aware communication selection without disabling RDMA-based DeepEP.
Per-device active NVLink state does not prove that every visible GPU belongs to one fabric-attached MNNVL domain. PCIe NVL systems can contain multiple local NVLink islands connected only through PCIe/SYS, but the previous check treated them like a full NVSwitch fabric. This selected
NVLinkOneSidedacross ranks that could not communicate through the assumed fabric, causing cross-island dispatch timeouts and sticky CUDA launch failures.This change:
For the affected H200 configuration, auto-selection now falls back to
AllGatherReduceScatter.Fix 2: Handle an empty EP rank in FP8 block-scale MoE
Focus: production correctness after communication fallback.
In the all-gather/reduce-scatter path, a small or skewed batch can route no tokens to any expert owned by one EP rank. Individual empty experts are supported, but the DeepSeek FP8 block-scale grouped GEMM did not support the case where every local expert offset was zero.
This change:
test_fp8_blockscale[baseline], restoring its H200 coverage.Fix 3: Isolate the memory-heavy H200 test
Focus: deterministic CI execution.
The host-cache-offload test runs close to H200 memory capacity. When it reused a long-lived MPI worker pool, allocations retained by earlier tests reduced the available memory and caused a later FlashMLA allocation to OOM or time out even though the test passed in a fresh standalone run.
This change marks the test with
private_mpi_session, giving it a fresh worker pool while leaving normal session reuse unchanged for other tests. It also removes the waiver fortest_dsa_host_cache_offload[host_cache_offload], restoring its H200 coverage.Test coverage
test_dsa_host_cache_offload[host_cache_offload]: passed; MMLU 88.499 (threshold 86.383).test_fp8_blockscale[baseline]: passed; MMLU 88.523 (threshold 86.383), GSM8K 95.603 (threshold 92.397).ff40d28d2c:PR_Github #60776: SUCCESS.L0_MergeRequest_PR #49056: SUCCESS.DGX_H200-8_GPUs-PyTorch-Post-Merge-1 #2148: SUCCESS.test_dsa_host_cache_offload[host_cache_offload]: PASSED.test_fp8_blockscale[baseline]: PASSED.ff40d28d2c:PR_Github #61342/L0_MergeRequest_PR #49573: SUCCESS (Partly Tested).Skip - Passed in the previous pipelines; this is not an additional fresh execution.c78efe9f34:tests/unittest/_torch/test_mnnvl_utils.py: 9/9 passed in a B200 development container.DeepEPLowLatency.is_platform_supported()returnedTrueon B200.Focused CI completion report
Latest targeted CI completion report