[https://nvbugs/6403920][fix] Move allreduce strategy test to smoke, use full-warp hidden_size#16389
[https://nvbugs/6403920][fix] Move allreduce strategy test to smoke, use full-warp hidden_size#16389MrGeva wants to merge 9 commits into
Conversation
Signed-off-by: Eran Geva <19514940+MrGeva@users.noreply.github.com>
Diagnostic-only change: overrides the tiny test model's hidden_size from 64 (which launches an 8-thread, partial-warp block in the fused all-reduce RMSNorm kernel) to 256 (exactly one full warp), so the smoke test no longer exercises the partial-warp reduction path at all. Two prior CI runs of the base branch (agent/fix-ad-allreduce-ci) failed with an identical CUBLAS_STATUS_EXECUTION_FAILED error in an unrelated cuBLAS GEMM (torch_linear_simple), on the same node (nsc-svg-slurm-1-gpu-120), at a different allreduce strategy each time. This branch isolates whether that failure is specific to the partial-warp kernel path or is unrelated node/infra flakiness that also reproduces on the full-warp path. Signed-off-by: Eran Geva <19514940+MrGeva@users.noreply.github.com>
|
/bot run |
📝 WalkthroughWalkthroughThe change separates multi-GPU throughput strategy testing into a new smoke module, retaining graph-level propagation tests in the custom-ops module. The smoke tests prepare shared data, prewarm FlashInfer kernels, apply strategy-specific options, and invoke the throughput benchmark. ChangesAll-reduce strategy test coverage
Estimated code review effort: 4 (Complex) | ~45 minutes Suggested reviewers: Sequence Diagram(s)sequenceDiagram
participant Pytest
participant DatasetPreparer
participant CliRunner
participant AutoDeploy
participant ThroughputBenchmark
Pytest->>DatasetPreparer: generate shared synthetic dataset
DatasetPreparer-->>Pytest: return dataset contents
Pytest->>CliRunner: invoke throughput for each strategy
CliRunner->>AutoDeploy: apply sharding and compilation options
AutoDeploy->>ThroughputBenchmark: run multi-GPU benchmark
ThroughputBenchmark-->>Pytest: return exit status
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Actionable comments posted: 4
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@tests/unittest/auto_deploy/multigpu/smoke/test_ad_allreduce_strategies.py`:
- Around line 40-52: Add Python 3.10+ type annotations to every function and
pytest fixture in this test module, including timeout and timeout_handler, all
parameters, and return types such as Iterator[None], Path, str, and None where
applicable. Ensure annotations cover the additional functions and fixtures
referenced by the review without changing their behavior.
- Around line 34-37: Remove the custom TimeoutError declaration and use Python’s
built-in TimeoutError throughout the test module, preserving the existing
timeout handling behavior.
- Line 194: Move the GPU-count guard for test_allreduce_strategies ahead of
shared_dataset setup and the autouse prewarm_flashinfer_jit fixture, using an
earlier collection or fixture-level skip so CPU and single-GPU runners exit
before dataset preparation or FlashInfer warmup.
- Around line 76-125: Update the FlashInfer prewarm block around the lock_f
acquisition and warmup steps to close and unlock the file in a finally block
whenever fcntl.flock succeeds. Ensure cleanup runs for exceptions from page or
sampling warmup, torch.cuda.empty_cache(), and future steps, while preserving
the existing warmup behavior.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Enterprise
Run ID: fa3d6d0f-b8ed-44d1-bdb3-4c24d1938a1d
📒 Files selected for processing (2)
tests/unittest/auto_deploy/multigpu/custom_ops/test_ad_dist_strategies.pytests/unittest/auto_deploy/multigpu/smoke/test_ad_allreduce_strategies.py
💤 Files with no reviewable changes (1)
- tests/unittest/auto_deploy/multigpu/custom_ops/test_ad_dist_strategies.py
|
PR_Github #59275 [ run ] triggered by Bot. Commit: |
|
PR_Github #59275 [ run ] completed with state
|
…path test_allreduce_strategies moved from tests/unittest/auto_deploy/multigpu/custom_ops/test_ad_dist_strategies.py to tests/unittest/auto_deploy/multigpu/smoke/test_ad_allreduce_strategies.py in the prior commit, but 6 waives.txt entries still referenced the old path, failing the release-check's stale-waive validator. Signed-off-by: Eran Geva <19514940+MrGeva@users.noreply.github.com>
|
/bot run |
|
PR_Github #59281 [ run ] triggered by Bot. Commit: |
|
PR_Github #59281 [ run ] completed with state |
|
/bot run --stage-list "DGX_B200-4_GPUs-AutoDeploy-1" --disable-reuse-test |
|
PR_Github #59378 [ run ] triggered by Bot. Commit: |
ZhanruiSunCh
left a comment
There was a problem hiding this comment.
LGTM for infra part.
|
PR_Github #59448 [ run ] completed with state
|
|
/bot run |
|
/bot run |
|
PR_Github #59650 [ run ] triggered by Bot. Commit: |
|
PR_Github #59650 [ run ] completed with state
|
|
/bot run |
|
PR_Github #59672 [ run ] triggered by Bot. Commit: |
|
PR_Github #59672 [ run ] completed with state
|
|
/bot run |
|
PR_Github #59688 [ run ] triggered by Bot. Commit: |
|
PR_Github #59688 [ run ] completed with state
|
|
/bot run --disable-fail-fast |
|
PR_Github #59697 [ run ] triggered by Bot. Commit: |
BowenFu
left a comment
There was a problem hiding this comment.
LGTM — faithful relocation of the allreduce strategy test to the smoke dir; no test logic dropped, and the smoke dir is already registered so the test still runs.
|
This looks like a great optimization pass, nice work! 🚀😌 Maintainer? Turn off weaves from non-maintainers → |
|
PR_Github #59697 [ run ] completed with state
|
|
/bot run --disable-fail-fast |
|
PR_Github #59731 [ run ] triggered by Bot. Commit: |
|
PR_Github #59731 [ run ] completed with state
|
|
/bot run --disable-fail-fast |
|
PR_Github #59753 [ run ] triggered by Bot. Commit: |
Description
tests/unittest/auto_deploy/multigpu/custom_ops/test_ad_dist_strategies.pytotests/unittest/auto_deploy/multigpu/smoke/test_ad_allreduce_strategies.py(pure relocation, no logic change).hidden_sizefrom 64 to 256, so the fused all-reduce/RMSNorm kernel'sblockReduceSumalways launches exactly one full warp (32 threads) instead of the partial-warp (8-thread) block.No kernel code (
allReduceFusionKernels.cu) is touched at all — the kernel is exactly as it is onmaintoday.Motivation
Isolates the smoke-test-in-new-location + full-warp-hidden_size combination from the kernel fix in #16111, to determine whether CI failures seen on #16111 (an unrelated cuBLAS GEMM error and, separately, an MPI/PMIx runtime stall, on three different physical nodes across attempts) reproduce even without any kernel changes.
Test Coverage
Same
test_allreduce_strategiestest, all 6 strategies,hidden_size=256, run via the smoke directory.🤖 Generated with Claude Code
Summary by CodeRabbit