Repository navigation
chore(deps): AUT-967 stabilize Transformer Engine 2.18 upgrade - #5997
Merged
Merged
Conversation
…and uv.lock Updated the version of transformer-engine from 2.17.0+2e559f06 to 2.18.0+e7c550c5 in both pyproject.toml and uv.lock files, ensuring consistency across dependencies. Signed-off-by: Ajay Balasa <abalasa@nvidia.com>
Replaced "nvidia-mathdx" with "nvidia-cudnn-frontend>=1.25.0" in pyproject.toml and added "nvidia-cudnn-frontend" to uv.lock to ensure compatibility with the latest requirements. Signed-off-by: Ajay Balasa <abalasa@nvidia.com>
Modified the NCCL version in Dockerfile.ci.dev and install_nccl.sh to 2.30.7-1+cuda13.3 to align with the requirements of the transformer-engine 2.18's NCCL EP build. Signed-off-by: Ajay Balasa <abalasa@nvidia.com>
Signed-off-by: Ajay Balasa <abalasa@nvidia.com>
Signed-off-by: svcnemo-autobot <svcnemo-autobot@nvidia.com>
Signed-off-by: svcnemo-autobot <svcnemo-autobot@nvidia.com>
Signed-off-by: svcnemo-autobot <svcnemo-autobot@nvidia.com>
svcnvidia-nemo-ci
marked this pull request as draft
July 23, 2026 17:29
Contributor
|
This PR has been automatically converted to draft because all PRs must start as drafts. When you are ready for review, click Ready for Review to begin the review process. This will:
See the contribution guide for more details. |
Collaborator
Author
|
/ok to test 01e452d |
balasaajay
approved these changes
Jul 23, 2026
Phlip79
approved these changes
Jul 23, 2026
Signed-off-by: svcnemo-autobot <svcnemo-autobot@nvidia.com>
Adjusted numerical values in the golden value JSON files for both gpt3_7b_tp1_pp4_memory_speed and gpt3_7b_tp4_pp1_memory_speed test cases. These changes include minor corrections to memory allocation, iteration times, and other performance metrics to ensure accuracy in functional tests. Signed-off-by: Ajay Balasa <abalasa@nvidia.com>
Signed-off-by: svcnemo-autobot <svcnemo-autobot@nvidia.com>
Signed-off-by: svcnemo-autobot <svcnemo-autobot@nvidia.com>
Collaborator
Author
|
/ok to test c6f76db |
Contributor
|
🔄 Merge queue validation started! You can track the progress here: https://github.com/NVIDIA/Megatron-LM/actions/runs/30164969177 |
shjwudp
pushed a commit
to shjwudp/Megatron-LM
that referenced
this pull request
Jul 30, 2026
…A#5997) Signed-off-by: Ajay Balasa <abalasa@nvidia.com> Signed-off-by: svcnemo-autobot <svcnemo-autobot@nvidia.com> Co-authored-by: Ajay Balasa <abalasa@nvidia.com>
terminator123
pushed a commit
to 021ai/Megatron-LM
that referenced
this pull request
Aug 3, 2026
…A#5997) Signed-off-by: Ajay Balasa <abalasa@nvidia.com> Signed-off-by: svcnemo-autobot <svcnemo-autobot@nvidia.com> Co-authored-by: Ajay Balasa <abalasa@nvidia.com>
4 of 6 tasks
1 task done
nemo-autobot-origin Bot
pushed a commit
to svcnemo-autobot/Megatron-LM
that referenced
this pull request
Oct 7, 2026
Repairs for failures found by local validation of main slice ab20a60 merged into dev f80139c: - tests/unit_tests/inference: give the prefix-caching _StubEngine the cuda_graph_all_prefills attribute the merged DynamicInferenceEngine reads. - megatron/core/optimizer/layer_wise_optimizer.py: tolerate a pg_collection without a tp group (getattr(..., 'tp', None)). - tests/unit_tests/distributed/mfsdp_v2/profiler_utils.py: recover kernel correlation ids without FunctionEvent.linked_correlation_id, which the dev image's torch does not provide. - megatron/core/parallel_state.py: size dynamic data/context-parallel groups against the replicate DP-CP world (with_gtp_remat=False). - gpt3_mcore_te_tp2_pp2_ep4_mhc_overlap_attn_cudagraph{,_nosplit}: refresh dev H100 golden values after main cd4afff (NVIDIA#5916); lm loss and num-zeros match the values main recorded for this change. - megatron/core/inference/contexts/dynamic_context.py: compute Mamba intermediate-state offsets for every prefill chunk, as main does, so the last block boundary of a multi-chunk prompt is cached (required by main dfe9d04 NVIDIA#5952). - tests/unit_tests/test_training.py: give the dev-only training_log fixtures gtp_weight_remat_size=1, the argument main c5ff22b (NVIDIA#4967) made training_log read when computing the global batch size. - megatron/training/training.py: read args.freeze_all_layers with getattr(..., False) in the config-container model-builder path that main ff6b92a (NVIDIA#5926) added, as the same change already does in _forward_backward_grad_context; dev-only tests pass minimal args. - megatron/core/parallel_state.py: with weight rematerialization off (gtp_remat_size == expert_gtp_remat_size == 1), reuse the existing groups of identical membership for the expert GTP weight-remat group and the EGTP-merged expert tp-ep-pp group instead of creating duplicate NCCL process groups. main c5ff22b (NVIDIA#4967) creates them unconditionally; every NCCL group keeps a watchdog thread until process exit, and the extra groups exhausted the thread limit in the transformer unit-test bucket. - tests/functional_tests golden values: drop non-finite iteration-time samples from the 10 golden-value files this sync changes and set start_step/end_step/step_interval to the remaining steps, the layout main uses (cd4afff NVIDIA#5916, 7e6a045 NVIDIA#5997). tools/check_golden_values.py from main bb5647a (NVIDIA#5989) rejects NaN/inf in changed golden values. The H100 files lose only step 1, which lies outside the iteration-time steady window; the two gpt3_7b memory_speed GB200 files keep their even steps 2-24 at step_interval 2. - tests/test_utils/recipes/gb200/gpt-dynamic-inference.yaml: append the read-only GitLab credential to /root/.netrc with `>>` instead of `| tee -a`, so the token is not echoed to stdout and CI logs. The recipe arrives in dev with main 354b5d2 (NVIDIA#6104); this keeps the file otherwise identical to main. Signed-off-by: svcnemo-autobot <svcnemo-autobot@nvidia.com>
nemo-autobot-origin Bot
pushed a commit
to svcnemo-autobot/Megatron-LM
that referenced
this pull request
Oct 7, 2026
Repairs for failures found by local validation of main slice ab20a60 merged into dev f80139c: - tests/unit_tests/inference: give the prefix-caching _StubEngine the cuda_graph_all_prefills attribute the merged DynamicInferenceEngine reads. - megatron/core/optimizer/layer_wise_optimizer.py: tolerate a pg_collection without a tp group (getattr(..., 'tp', None)). - tests/unit_tests/distributed/mfsdp_v2/profiler_utils.py: recover kernel correlation ids without FunctionEvent.linked_correlation_id, which the dev image's torch does not provide. - megatron/core/parallel_state.py: size dynamic data/context-parallel groups against the replicate DP-CP world (with_gtp_remat=False). - gpt3_mcore_te_tp2_pp2_ep4_mhc_overlap_attn_cudagraph{,_nosplit}: refresh dev H100 golden values after main cd4afff (NVIDIA#5916); lm loss and num-zeros match the values main recorded for this change. - megatron/core/inference/contexts/dynamic_context.py: compute Mamba intermediate-state offsets for every prefill chunk, as main does, so the last block boundary of a multi-chunk prompt is cached (required by main dfe9d04 NVIDIA#5952). - tests/unit_tests/test_training.py: give the dev-only training_log fixtures gtp_weight_remat_size=1, the argument main c5ff22b (NVIDIA#4967) made training_log read when computing the global batch size. - megatron/training/training.py: read args.freeze_all_layers with getattr(..., False) in the config-container model-builder path that main ff6b92a (NVIDIA#5926) added, as the same change already does in _forward_backward_grad_context; dev-only tests pass minimal args. - megatron/core/parallel_state.py: with weight rematerialization off (gtp_remat_size == expert_gtp_remat_size == 1), reuse the existing groups of identical membership for the expert GTP weight-remat group and the EGTP-merged expert tp-ep-pp group instead of creating duplicate NCCL process groups. main c5ff22b (NVIDIA#4967) creates them unconditionally; every NCCL group keeps a watchdog thread until process exit, and the extra groups exhausted the thread limit in the transformer unit-test bucket. - tests/functional_tests golden values: drop non-finite iteration-time samples from the 10 golden-value files this sync changes and set start_step/end_step/step_interval to the remaining steps, the layout main uses (cd4afff NVIDIA#5916, 7e6a045 NVIDIA#5997). tools/check_golden_values.py from main bb5647a (NVIDIA#5989) rejects NaN/inf in changed golden values. The H100 files lose only step 1, which lies outside the iteration-time steady window; the two gpt3_7b memory_speed GB200 files keep their even steps 2-24 at step_interval 2. - tests/test_utils/recipes/gb200/gpt-dynamic-inference.yaml: append the read-only GitLab credential to /root/.netrc with `>>` instead of `| tee -a`, so the token is not echoed to stdout and CI logs. The recipe arrives in dev with main 354b5d2 (NVIDIA#6104); this keeps the file otherwise identical to main. Signed-off-by: svcnemo-autobot <svcnemo-autobot@nvidia.com>
nemo-autobot-origin Bot
pushed a commit
to svcnemo-autobot/Megatron-LM
that referenced
this pull request
Oct 7, 2026
Repairs for failures found by local validation of main slice ab20a60 merged into dev f80139c: - tests/unit_tests/inference: give the prefix-caching _StubEngine the cuda_graph_all_prefills attribute the merged DynamicInferenceEngine reads. - megatron/core/optimizer/layer_wise_optimizer.py: tolerate a pg_collection without a tp group (getattr(..., 'tp', None)). - tests/unit_tests/distributed/mfsdp_v2/profiler_utils.py: recover kernel correlation ids without FunctionEvent.linked_correlation_id, which the dev image's torch does not provide. - megatron/core/parallel_state.py: size dynamic data/context-parallel groups against the replicate DP-CP world (with_gtp_remat=False). - gpt3_mcore_te_tp2_pp2_ep4_mhc_overlap_attn_cudagraph{,_nosplit}: refresh dev H100 golden values after main cd4afff (NVIDIA#5916); lm loss and num-zeros match the values main recorded for this change. - megatron/core/inference/contexts/dynamic_context.py: compute Mamba intermediate-state offsets for every prefill chunk, as main does, so the last block boundary of a multi-chunk prompt is cached (required by main dfe9d04 NVIDIA#5952). - tests/unit_tests/test_training.py: give the dev-only training_log fixtures gtp_weight_remat_size=1, the argument main c5ff22b (NVIDIA#4967) made training_log read when computing the global batch size. - megatron/training/training.py: read args.freeze_all_layers with getattr(..., False) in the config-container model-builder path that main ff6b92a (NVIDIA#5926) added, as the same change already does in _forward_backward_grad_context; dev-only tests pass minimal args. - megatron/core/parallel_state.py: with weight rematerialization off (gtp_remat_size == expert_gtp_remat_size == 1), reuse the existing groups of identical membership for the expert GTP weight-remat group and the EGTP-merged expert tp-ep-pp group instead of creating duplicate NCCL process groups. main c5ff22b (NVIDIA#4967) creates them unconditionally; every NCCL group keeps a watchdog thread until process exit, and the extra groups exhausted the thread limit in the transformer unit-test bucket. - tests/functional_tests golden values: drop non-finite iteration-time samples from the 10 golden-value files this sync changes and set start_step/end_step/step_interval to the remaining steps, the layout main uses (cd4afff NVIDIA#5916, 7e6a045 NVIDIA#5997). tools/check_golden_values.py from main bb5647a (NVIDIA#5989) rejects NaN/inf in changed golden values. The H100 files lose only step 1, which lies outside the iteration-time steady window; the two gpt3_7b memory_speed GB200 files keep their even steps 2-24 at step_interval 2. - tests/test_utils/recipes/gb200/gpt-dynamic-inference.yaml: append the read-only GitLab credential to /root/.netrc with `>>` instead of `| tee -a`, so the token is not echoed to stdout and CI logs. The recipe arrives in dev with main 354b5d2 (NVIDIA#6104); this keeps the file otherwise identical to main. - tests/test_utils/python_scripts/generate_jet_trigger_job.py and .gitlab/stages/0{2,3,4}*.yml: restore main's opt-in error extraction (build_test_script, --enable-error-extraction and the four stage flags from main 06bb399, NVIDIA#5831). The earlier dev sync NVIDIA#7055 dropped them without a recorded reason, so this merge kept dev's copies while importing main's test_ci_triage.py, linear_ci.py and 06.triage.yml (e443bd3 NVIDIA#5881, b842f59 NVIDIA#5957), which depend on them. All four files now match main; 01.build.yml keeps dev's base-image pin. Signed-off-by: svcnemo-autobot <svcnemo-autobot@nvidia.com>
nemo-autobot-origin Bot
pushed a commit
to svcnemo-autobot/Megatron-LM
that referenced
this pull request
Oct 8, 2026
Repairs for failures found by local validation of main slice ab20a60 merged into dev f80139c: - tests/unit_tests/inference: give the prefix-caching _StubEngine the cuda_graph_all_prefills attribute the merged DynamicInferenceEngine reads. - megatron/core/optimizer/layer_wise_optimizer.py: tolerate a pg_collection without a tp group (getattr(..., 'tp', None)). - tests/unit_tests/distributed/mfsdp_v2/profiler_utils.py: recover kernel correlation ids without FunctionEvent.linked_correlation_id, which the dev image's torch does not provide. - megatron/core/parallel_state.py: size dynamic data/context-parallel groups against the replicate DP-CP world (with_gtp_remat=False). - gpt3_mcore_te_tp2_pp2_ep4_mhc_overlap_attn_cudagraph{,_nosplit}: refresh dev H100 golden values after main cd4afff (NVIDIA#5916); lm loss and num-zeros match the values main recorded for this change. - megatron/core/inference/contexts/dynamic_context.py: compute Mamba intermediate-state offsets for every prefill chunk, as main does, so the last block boundary of a multi-chunk prompt is cached (required by main dfe9d04 NVIDIA#5952). - tests/unit_tests/test_training.py: give the dev-only training_log fixtures gtp_weight_remat_size=1, the argument main c5ff22b (NVIDIA#4967) made training_log read when computing the global batch size. - megatron/training/training.py: read args.freeze_all_layers with getattr(..., False) in the config-container model-builder path that main ff6b92a (NVIDIA#5926) added, as the same change already does in _forward_backward_grad_context; dev-only tests pass minimal args. - megatron/core/parallel_state.py: with weight rematerialization off (gtp_remat_size == expert_gtp_remat_size == 1), reuse the existing groups of identical membership for the expert GTP weight-remat group and the EGTP-merged expert tp-ep-pp group instead of creating duplicate NCCL process groups. main c5ff22b (NVIDIA#4967) creates them unconditionally; every NCCL group keeps a watchdog thread until process exit, and the extra groups exhausted the thread limit in the transformer unit-test bucket. - tests/functional_tests golden values: drop non-finite iteration-time samples from the 10 golden-value files this sync changes and set start_step/end_step/step_interval to the remaining steps, the layout main uses (cd4afff NVIDIA#5916, 7e6a045 NVIDIA#5997). tools/check_golden_values.py from main bb5647a (NVIDIA#5989) rejects NaN/inf in changed golden values. The H100 files lose only step 1, which lies outside the iteration-time steady window; the two gpt3_7b memory_speed GB200 files keep their even steps 2-24 at step_interval 2. - tests/test_utils/recipes/gb200/gpt-dynamic-inference.yaml: append the read-only GitLab credential to /root/.netrc with `>>` instead of `| tee -a`, so the token is not echoed to stdout and CI logs. The recipe arrives in dev with main 354b5d2 (NVIDIA#6104); this keeps the file otherwise identical to main. - tests/test_utils/python_scripts/generate_jet_trigger_job.py and .gitlab/stages/0{2,3,4}*.yml: restore main's opt-in error extraction (build_test_script, --enable-error-extraction and the four stage flags from main 06bb399, NVIDIA#5831). The earlier dev sync NVIDIA#7055 dropped them without a recorded reason, so this merge kept dev's copies while importing main's test_ci_triage.py, linear_ci.py and 06.triage.yml (e443bd3 NVIDIA#5881, b842f59 NVIDIA#5957), which depend on them. All four files now match main; 01.build.yml keeps dev's base-image pin. - moe/gpt3_mcore_te_tp2_pp1_te_8experts2parallel_{overlap_grad_reduce_param_gather_groupedGEMM,ddp_average_in_collective}_1node and moe/gpt3_moe_mcore_te_tp4_ep2_etp2_pp2_resume_torch_dist_dist_optimizer_1node: refresh the dev GB200 golden values after main cd4afff (NVIDIA#5916). This merge imports the grad-norm/num-zeros fix but kept dev's pre-fix GB200 goldens, so lm loss (exact) and num-zeros failed on dgx_gb200. The values come from the dgx_gb200 golden-value artifacts of CICD run 37688059691 on the previous head 29cf2c4. lm loss, num-zeros and both memory metrics are bit-identical to the goldens the reverted dev sync 5ccdc55 (NVIDIA#7094) regenerated. iteration-time drops its step-1 NaN (start_step 2), as above. Signed-off-by: svcnemo-autobot <svcnemo-autobot@nvidia.com>
nemo-autobot-origin Bot
pushed a commit
to svcnemo-autobot/Megatron-LM
that referenced
this pull request
Oct 9, 2026
Repairs for failures found by local validation of main slice ab20a60 merged into dev f80139c: - tests/unit_tests/inference: give the prefix-caching _StubEngine the cuda_graph_all_prefills attribute the merged DynamicInferenceEngine reads. - megatron/core/optimizer/layer_wise_optimizer.py: tolerate a pg_collection without a tp group (getattr(..., 'tp', None)). - tests/unit_tests/distributed/mfsdp_v2/profiler_utils.py: recover kernel correlation ids without FunctionEvent.linked_correlation_id, which the dev image's torch does not provide. - megatron/core/parallel_state.py: size dynamic data/context-parallel groups against the replicate DP-CP world (with_gtp_remat=False). - gpt3_mcore_te_tp2_pp2_ep4_mhc_overlap_attn_cudagraph{,_nosplit}: refresh dev H100 golden values after main cd4afff (NVIDIA#5916); lm loss and num-zeros match the values main recorded for this change. - megatron/core/inference/contexts/dynamic_context.py: compute Mamba intermediate-state offsets for every prefill chunk, as main does, so the last block boundary of a multi-chunk prompt is cached (required by main dfe9d04 NVIDIA#5952). - tests/unit_tests/test_training.py: give the dev-only training_log fixtures gtp_weight_remat_size=1, the argument main c5ff22b (NVIDIA#4967) made training_log read when computing the global batch size. - megatron/training/training.py: read args.freeze_all_layers with getattr(..., False) in the config-container model-builder path that main ff6b92a (NVIDIA#5926) added, as the same change already does in _forward_backward_grad_context; dev-only tests pass minimal args. - megatron/core/parallel_state.py: with weight rematerialization off (gtp_remat_size == expert_gtp_remat_size == 1), reuse the existing groups of identical membership for the expert GTP weight-remat group and the EGTP-merged expert tp-ep-pp group instead of creating duplicate NCCL process groups. main c5ff22b (NVIDIA#4967) creates them unconditionally; every NCCL group keeps a watchdog thread until process exit, and the extra groups exhausted the thread limit in the transformer unit-test bucket. - tests/functional_tests golden values: drop non-finite iteration-time samples from the 10 golden-value files this sync changes and set start_step/end_step/step_interval to the remaining steps, the layout main uses (cd4afff NVIDIA#5916, 7e6a045 NVIDIA#5997). tools/check_golden_values.py from main bb5647a (NVIDIA#5989) rejects NaN/inf in changed golden values. The H100 files lose only step 1, which lies outside the iteration-time steady window; the two gpt3_7b memory_speed GB200 files keep their even steps 2-24 at step_interval 2. - tests/test_utils/recipes/gb200/gpt-dynamic-inference.yaml: append the read-only GitLab credential to /root/.netrc with `>>` instead of `| tee -a`, so the token is not echoed to stdout and CI logs. The recipe arrives in dev with main 354b5d2 (NVIDIA#6104); this keeps the file otherwise identical to main. - tests/test_utils/python_scripts/generate_jet_trigger_job.py and .gitlab/stages/0{2,3,4}*.yml: restore main's opt-in error extraction (build_test_script, --enable-error-extraction and the four stage flags from main 06bb399, NVIDIA#5831). The earlier dev sync NVIDIA#7055 dropped them without a recorded reason, so this merge kept dev's copies while importing main's test_ci_triage.py, linear_ci.py and 06.triage.yml (e443bd3 NVIDIA#5881, b842f59 NVIDIA#5957), which depend on them. All four files now match main; 01.build.yml keeps dev's base-image pin. - moe/gpt3_mcore_te_tp2_pp1_te_8experts2parallel_{overlap_grad_reduce_param_gather_groupedGEMM,ddp_average_in_collective}_1node and moe/gpt3_moe_mcore_te_tp4_ep2_etp2_pp2_resume_torch_dist_dist_optimizer_1node: refresh the dev GB200 golden values after main cd4afff (NVIDIA#5916). This merge imports the grad-norm/num-zeros fix but kept dev's pre-fix GB200 goldens, so lm loss (exact) and num-zeros failed on dgx_gb200. The values come from the dgx_gb200 golden-value artifacts of CICD run 37688059691 on the previous head 29cf2c4. lm loss, num-zeros and both memory metrics are bit-identical to the goldens the reverted dev sync 5ccdc55 (NVIDIA#7094) regenerated. iteration-time drops its step-1 NaN (start_step 2), as above. - megatron/core/models/gpt/fine_grained_callables.py: forward config.moe_ncclep_zero_copy from the GPT schedule-plan TransformerLayerNode to ScheduleNode, the contract main NVIDIA#5735 added, so free_input never empties NCCL-EP symmetric-memory inputs. megatron/core/transformer/transformer_config.py: reject moe_ncclep_zero_copy with dev's ep_overlap_use_scheduled_tensor_release (NVIDIA#7062), whose scheduled release would own and empty those persistent shared buffers. Addresses review 5470751474 (finding 1). - megatron/core/optimizer/__init__.py and emerging_optimizers.py: with GTP_remat (main NVIDIA#4967), tag fused QKV weights from their TP-local rows before GTP sharding (param._unsharded_shape) instead of the local shard, which silently disabled dev's split-QKV Muon (NVIDIA#7085); rebuild the GTP_remat row shards and strip their alignment padding before the projection/per-head/global QKV split, then restore this rank's shard. Mirrors main's later fix (NVIDIA#7117), which is outside this slice. Addresses review 5470751474 (finding 2). Signed-off-by: svcnemo-autobot <svcnemo-autobot@nvidia.com>
This branch was previously 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.
Background
Transformer Engine 2.18 exposed functional regressions and ARM64 CI builders need bounded compiler concurrency.
What changed
MAX_JOBS=8only for ARM64 TE builds.Details
The compiler limit is exported only when
uname -misaarch64;UV_CONCURRENT_BUILDSis not overridden, and x86 builds are unchanged. The branch includes currentmain.Tested