fix(distributed): synchronize convergence across ranks - #150
Open
atulcthakur wants to merge 4 commits into
Open
Conversation
Preserve converged system indices, keep convergence collectives rank-symmetric, stop completed runs, and retire converged pipeline systems. Signed-off-by: atulcthakur <atthakur@nvidia.com>
Contributor
Greptile SummaryThis PR fixes three inter-related correctness bugs in
Important Files Changed
Reviews (4): Last reviewed commit: "test: skip unreliable grouped Gloo pipel..." | Re-trigger Greptile |
Collaborator
Author
|
/ok to test 6a34c19 |
zubatyuk
reviewed
Jul 27, 2026
zubatyuk
reviewed
Jul 27, 2026
zubatyuk
reviewed
Jul 27, 2026
Signed-off-by: atulcthakur <atthakur@nvidia.com>
laserkelvin
added a commit
to laserkelvin/nvalchemi-toolkit
that referenced
this pull request
Jul 27, 2026
…orkaround
Regenerating the lockfile on this branch silently upgraded warp-lang from
1.14.0 to 1.15.0. That upgrade, not the documentation, caused the cudagraph
failures: the CI runs differ in exactly one package.
PR NVIDIA#150 (passes): torch 2.13.0+cu130, triton 3.7.1, warp-lang 1.14.0
this branch (fails): torch 2.13.0+cu130, triton 3.7.1, warp-lang 1.15.0
The failing test compiles scatter_reduce_per_graph, whose _segmented_sum
is a custom_op wrapping wp.from_torch and a Warp kernel launch. Under
1.15.0 that path leaves an allocation live in the cudagraph memory pool which
is not tracked as a graph output, so the next capture fails
check_memory_pool. warp-lang >= 1.13.0 has no upper bound, so only the
lockfile pinned it.
Restore the lockfile from 0.2.0-rc and re-lock, which adds only
autodoc-pydantic (plus its pydantic-settings dependency) for the docs
build and leaves every other pin untouched. Revert the conftest reset fixture
added earlier: it was masking this dependency change rather than fixing a test
isolation bug.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Signed-off-by: Kelvin Lee <kinlongkelvi@nvidia.com>
Signed-off-by: atulcthakur <atthakur@nvidia.com>
Collaborator
Author
|
/ok to test 63c6161 |
Signed-off-by: atulcthakur <atthakur@nvidia.com>
Collaborator
Author
|
/ok to test 369a08b |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
ALCHEMI Toolkit Pull Request
Description
DomainParalleltreated convergence indices as Boolean values. Becausetensor([0])means “system 0 converged” but converts toFalse, convergence could be missed.Ranks could also disagree locally and enter different collectives, causing a hang.
The DD run and pipeline paths also failed to stop or retire the converged system.
Fix
Type of Change
Related Issues
Changes Made
nvalchemi/distributed/domain_parallel.pystep().run().test/distributed/test_domain_parallel_convergence.pytensor([0]).run()early exit.Testing
make pytest)make lint)Checklist
Additional Notes
Tip
This repository uses Greptile, an AI code review service, to help conduct
pull request reviews. We encourage contributors to read and consider suggestions
made by Greptile, but note that human maintainers will provide the necessary
reviews for merging: Greptile's comments are not a qualitative judgement
of your code, nor is it an indication that the PR will be accepted/rejected.
We encourage the use of emoji reactions to Greptile comments, depending on
their usefulness and accuracy.