fix: support multi-process DDP online rollout - #55
Open
0z5a wants to merge 4 commits into
Open
Conversation
0z5a
force-pushed
the
codex/ddp-online-rollout-main-0z5a
branch
from
September 2, 2026 21:20
a76d78a to
84fdb3e
Compare
0z5a
force-pushed
the
codex/ddp-online-rollout-main-0z5a
branch
from
September 3, 2026 01:48
84fdb3e to
e9b5cc0
Compare
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.
Description
Enable
online_grpoandonline_dpowith multi-process DDP without NCCL deadlocks from rank-divergent rollout lengths.Rollout inference uses the rank-local replicated
DDP.module; every training forward/backward/update remains on the DDP wrapper. The change also adds an executor-owned inference boundary, keeps FSDP andtorch.compileonline rollout fail-fast, fixes rank-local state-dict broadcast allocation, and parameterizes the integration workload throughASTRAI_DDP_TEST_WORLD_SIZE.No throughput uplift is claimed. This is a correctness, synchronization, and deadlock-freedom change.
NVIDIA L20 validation
Environment: L20 SM89, driver 570.86.10, CUDA 12.8, PyTorch 2.11.0+cu128, NCCL.
epoch_0_step_7.The integrated soak is recorded against validation revision
fe81f17772db7acb8d7575b3f617a454a83ca58d. It combines this DDP path with #59's rollout-version fencing; it is integration evidence, not a performance comparison.GPU 7 had an active unrelated workload and was not touched. A 7-rank attempt started successfully but was terminated when other users' jobs resumed, so only the completed 3-rank soak is claimed.
Local and InfraSWE validation
a955e00cc3ac79b261d515fb6dd393ba5fd306dd: 283 passed, comparison cell valid.Raw environment, replay statistics, limitations, and the long-soak summary are checked in under
docs/benchmarks/andbenchmarks/results/.Compatibility boundaries
parallel_mode='ddp'.torch.compileis rejected before scheduler construction.nvcc; the L20 regression excludestests/extension.Checklist