Conversation
|
Auto-sync is disabled for draft pull requests in this repository. Workflows must be run manually. Contributors can view more details about this message here. |
Signed-off-by: Jingyue Wu <jingyuew@nvidia.com>
wujingyue
marked this pull request as ready for review
September 25, 2026 14:55
wujingyue
force-pushed
the
test/mfsdp-v2-activation-offload
branch
from
September 25, 2026 14:56
4567251 to
bd1b7a0
Compare
This branch was successfully deployed
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.
What does this PR do?
Add integration coverage for MFSDP v2 using
HybridModelwith three MLA/MLP pairs (+-+-+-) andcore_attnandattn_projactivation offload. The test compares six training steps against an identically initialized no-offload baseline, comparing the per-step microbatch losses.The eager tests use flat ZeRO-3 with one optimizer instance. They use unfused attention (matching the pipeline-parallel offload tests), BF16 compute/main gradients, FP32 main weights, two microbatches, gradient clipping at 1.0, and max inflight offloads 1.
A pytest fixture handles process-group setup and offload/process-group teardown, including after assertion failures.
The loss-comparison test does not run a profiler. A separate transfer test requires positive offloaded bytes for both attention groups and positive DtoH/HtoD transfer counts when enabled, versus zero counts when disabled during the final steady-state iteration. The transfer test builds the model and optimizer, warms up once, then profiles one
_train()call. Losses stay on the GPU, so the test introduces no loss-copy traffic into the trace.This PR adds only the integration test. It needs no
NVTE_CPU_OFFLOAD_V1override. This exercises MCore's existing fine-grained offloader, not a migration to TE's newer offload implementation. It does not add sharding support or modify production offloading. MoE overlap, paged stash, and full-scale DeepSeek training are outside this test's scope.Validation
NVTE_CPU_OFFLOAD_V1unset.tools/autoformat.shstops at the repository's obsolete Pylintbad-builtinsoption. Pylint passes with onlyunrecognized-optiondisabled.Contribution process
tools/autoformat.sh(environment limitation noted above).