chore: nightly sync main into dev (28_04_2026) - #4505
Closed
svcnvidia-nemo-ci wants to merge 49 commits into
Closed
Conversation
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com> Co-authored-by: Xin Yao <xiny@nvidia.com>
Co-authored-by: john2 <john2@jrlogin01.jureca>
Signed-off-by: Charlie Truong <chtruong@nvidia.com>
Co-authored-by: root <root@nvl72098-T17.cm.cluster> Co-authored-by: William Dykas <wdykas@oci-hsg-cs-001-vscode-03.cm.cluster> Co-authored-by: root <root@nvl72160-T13.cm.cluster>
…classmethod (#3812) Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: Dmytro Pykhtar <37850217+dimapihtar@users.noreply.github.com>
Signed-off-by: oliver könig <okoenig@nvidia.com>
#4403) Co-authored-by: Antoni-Joan Solergibert <asolergibert@nvidia.com>
Co-authored-by: Philip Petrakian <ppetrakian@nvidia.com>
Signed-off-by: Maanu Grover <maanug@nvidia.com> Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>
Signed-off-by: dimapihtar <dpykhtar@nvidia.com>
Signed-off-by: dimapihtar <dpykhtar@nvidia.com>
Co-authored-by: Siddharth Singh <sidsingh@nvidia.com> Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…nference cuda graph scope for hybrid models (#4440)
…ss curve gaps for latent MoE models (#4433) Signed-off-by: root <jiemingz@nvidia.com>
…4158) Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…4422) Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Signed-off-by: rprenger <rprenger@nvidia.com>
Signed-off-by: qiyuw <qiyuw@nvidia.com> Co-authored-by: Antoni-Joan Solergibert <asolergibert@nvidia.com>
Signed-off-by: Keshav Santhanam <ksanthanam@nvidia.com>
Contributor
Author
|
/ok to test cd2001d |
The merge took main's version of transformer_config.py for the conflict regions but kept dev's references (in non-conflicting blocks) to moe_expert_rank_capacity_factor, moe_hybridep_num_sms_preprocessing, and moe_mlp_glu_interleave_size. Restore these field declarations from dev so the dataclass matches what the validation logic and call sites expect. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> Signed-off-by: svcnvidia-nemo-ci <svcnvidia-nemo-ci@nvidia.com>
Contributor
Author
|
/ok to test 54cbb38 |
- Add num_sms_preprocessing_api parameter to init_hybrid_ep_buffer(). The merge took main's function signature (without this param) but kept dev's call site that passes it; restore the parameter so the signatures match. - Add moe_hybridep_num_sms_preprocessing to GOLDEN_CONFIG in test_hybrid_moe_model.py to acknowledge the new arg now exposed on TransformerConfig. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> Signed-off-by: svcnvidia-nemo-ci <svcnvidia-nemo-ci@nvidia.com>
Contributor
Author
|
/ok to test 0e9f938 |
Forward takes 13 args (including num_sms_preprocessing_api restored in the previous commit), so backward must return 13 gradients. The merge dropped the final None that aligned with num_sms_preprocessing_api. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> Signed-off-by: svcnvidia-nemo-ci <svcnvidia-nemo-ci@nvidia.com>
Contributor
Author
|
/ok to test 3d25b74 |
The nightly sync took main's data_samplers.py verbatim, which only sets the no-op collate_fn = lambda x: x when args.hybrid_context_parallel is true. Dev's pre-merge version had the same override gated on args.dynamic_context_parallel; that branch was lost in the merge. Without it, PyTorch's default collate runs on a list of variable-length packed-sequence dicts and trips the shared-storage stack path with "RuntimeError: Trying to resize storage that is not resizable", crashing gpt3_mcore_te_tp2_pp1_cp4_dcp. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The nightly sync took main's training.py verbatim, which lost dev's calls to wrap_data_iterator at the two sites that drive sequence packing for Dynamic-CP / DP-balanced THD. Without the wrap, the data iterator yields a list-of-dicts (one per sample) instead of the single packed dict containing cu_seqlens / cu_seqlens_padded / max_seqlen / local_cp_size, so get_batch_on_this_rank_for_sequence_packing trips "AssertionError: cu_seqlens is missing in current batch" on the first training step (e.g. gpt3_mcore_te_tp2_pp1_cp4_dcp). Restored at both sites that dev wraps: - train_step: rebinds local data_iterator, takes scheduled num_microbatches - evaluate: uses local packed_data_iterator / scheduled_eval_num_microbatches to keep the outer iterator intact across the eval loop, with StopIteration handled per dev's pattern Not restored: dev's seqlen-aware num_floating_point_operations signature (2-arg -> 4-arg) and the seqlen_sum_this_global_batch / seqlen_squared_sum_this_global_batch plumbing. That is a larger merge scope and only affects FLOPs accuracy in tensorboard, not correctness. The third forward_backward_func call in evaluate (process_non_loss_data path) is also intentionally not wrapped, matching dev. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Member
|
/ok to test 42f1108 |
Contributor
Author
|
Superseded by today's nightly sync. |
Contributor
|
@xiaoyao0115 to fix the dynamic context parallel related code. I think claude is taking main over dev but in this case main is lagging behind since the mirror PR has not been merged. |
Contributor
Author
|
Superseded by today's nightly sync. |
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.
Summary
Nightly sync of
mainintodevfor 2026-04-28. Squashes 42 commits from main into the dev branch.Python lines: +11647 / -2593 across 129 files
Files where main's version was taken
Per the nightly-sync skill, the following files were overridden with main's version because dev's version referenced args / APIs that main has removed or renamed:
megatron/training/training.py— references dev-only args; main has the more recent control-flowmegatron/training/utils.py— references dev-only argsmegatron/training/datasets/data_samplers.py— main'sMegatronFullValidationSamplerplusHybridCPMegatronPretrainingSamplerare the canonical implementationsBeyond the explicit override list,
megatron/training/initialize.pywas kept at dev's versionbecause main's call passes
hybrid_context_parallel=toinitialize_model_parallel, which dev'sfunction signature no longer accepts (renamed/refactored to
dynamic_context_parallel+min_dynamic_context_parallel_size).Files restored from main
megatron/core/pipeline_parallel/hybrid_cp_schedule.py— dev had renamed/removed it during theDynamic CP refactor; main's
data_schedule.py::HybridCPDataLoaderWrapper(used bytraining.pyfor the deprecatedhybrid_context_parallelfeature) still importsBalancedCPSchedulerfrom it.Special-case merges
megatron/core/datasets/data_schedule.py— kept dev's file (Dynamic-CP schedulers) andappended main's
HybridCPDataLoaderWrapperclass verbatim. Imports updated to addBalancedCPSchedulerand the typing helpers (Any,List).Files kept at dev's version (dependency-management triple + CODEOWNERS)
pyproject.toml(dev-onlynvtx~=0.2,fast-hadamard-transform, dev-pinnednvidia-resiliency-extrevision)uv.lock(machine-generated; matchespyproject.toml)docker/Dockerfile.ci.dev.github/CODEOWNERS(intentionally divergent from main; sync bot must never touch this)No new git sources were present in main but missing from dev, so no
[tool.uv.sources]reconciliation was needed.
Formatting
All changed Python files were formatted with
black --skip-magic-trailing-comma --skip-string-normalization(24.10) followed byisort(5.13.2).pylintreports 10.00/10 on the changedmegatron/core/files.Remerge-diff stat (only shows where conflict resolution differed from a clean three-way merge)
Test plan
lintingcicd-container-build(dev + lts)Coverage (unit-test)and unit-test workersNemo_CICD_Test🤖 Generated with Claude Code