Skip to content

Bump TransformerEngine to 2.17.0 - #1781

Merged
Zhichenzzz merged 1 commit into
mainfrom
bump-te-2.17
Jul 24, 2026
Merged

Bump TransformerEngine to 2.17.0#1781
Zhichenzzz merged 1 commit into
mainfrom
bump-te-2.17

Conversation

@yueming-yuan

Copy link
Copy Markdown
Collaborator

Summary

Bumps TransformerEngine 2.12.0 → 2.17.0 (cu13 trio: transformer_engine / transformer_engine_cu13 / transformer_engine_torch; cu12 path 2.10.0 → 2.17.0). This is the dependency prerequisite for #1261 (NVFP4 RL), which constructs transformer_engine.pytorch.tensor.nvfp4_tensor.NVFP4Quantizer directly.

TE patches

Both patch files are regenerated from pristine pip-installed TE 2.17.0 sources so that they apply cleanly with both GNU patch -p1 (fuzz 0) and git apply. The originals from the #1261 branch fail the Dockerfile's patch -p1 step (the dequantized patch is rejected by GNU patch 2.7.6 even at default fuzz; the fa2 patch needs fuzz 2 and is rejected by git apply as corrupt), which would break the image build.

Validation

  • tests/fast-gpu/test_nvfp4_quantizer.py: 633 passed on a B200 devbox with TE 2.17.0 + both patches.
  • Qwen3-30B-A3B NVFP4 e2e (the NVFP4 RL #1261 branch merged with current main) on 4x B300 (actor 2 GPU TP2/EP2, rollout 2 GPU, --rollout-nvfp4 --train-nvfp4): NVFP4 checkpoint conversion, sglang flashinfer_trtllm_routed rollout, and bf16+fp4 Megatron training all run; steps 0-2 stable with train_rollout_logprob_abs_diff ≈ 0.054-0.056 and train_rollout_kl ≈ 0.012-0.013 (same order as the step-1 sanity numbers reported in NVFP4 RL #1261).
  • te.Linear fwd/bwd and rowwise NVFP4Quantizer smoke-tested on GPU after upgrade.

Note for #1261: after this lands, rebase onto main and drop the branch's copies of the Dockerfile TE bump and the two patch files (this PR's regenerated patch bytes must win, or the docker build fails at the patch step).

- transformer_engine / transformer_engine_cu13 / transformer_engine_torch 2.12.0 -> 2.17.0
- update te_fa2_sm103_whitelist.patch for TE 2.17 source layout
- add te_dequantized_backward_override.patch (hot fix from
  NVIDIA/TransformerEngine#3141; drop after TE v2.18)
@gemini-code-assist

Copy link
Copy Markdown
Contributor

Caution

The consumer version of Gemini Code Assist on GitHub has been sunset. All code review activity has officially ceased.

@guapisolo guapisolo left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@Zhichenzzz
Zhichenzzz merged commit 66b39f0 into main Jul 24, 2026
37 checks passed
@Zhichenzzz
Zhichenzzz deleted the bump-te-2.17 branch July 24, 2026 07:01
@yueming-yuan
yueming-yuan restored the bump-te-2.17 branch July 24, 2026 07:30
@yueming-yuan
yueming-yuan deleted the bump-te-2.17 branch July 24, 2026 07:31
Zhichenzzz added a commit that referenced this pull request Jul 24, 2026
The wheels release still ships transformer_engine_torch 2.12.0; installing
it after the 2.17.0 bump (#1781) downgrades transformer-engine-cu13 via its
dependency pin and the TE import sanity check fails the build. TE now comes
from PyPI, so remove the wheel branch (and delete the stale wheel from
/tmp/wheels so nothing else can pick it up).
Zhichenzzz added a commit that referenced this pull request Jul 24, 2026
Dockerfile changes were only build-tested by the post-merge push
workflow, so breakage landed on main first (#1781 -> #1789 -> this PR).
Single-arch cu13-x86 build, no registry push, cancels superseded runs.
yueming-yuan added a commit that referenced this pull request Jul 26, 2026
…ge#24

Validates the TE 2.17 grouped-linear contract fix end to end. The
`not enough values to unpack (expected 21, got 16)` failures in the
test_glm5_*_lora_ci tests come from megatron-bridge's
`_forward_te_grouped_linear` calling TE's private `_GroupedLinear` with TE
<=2.14's positional layout; miles picked that up when it bumped
TransformerEngine 2.12 -> 2.17 in #1781.

Revert to `@bridge` -- ideally pinned to the merged commit rather than a branch,
as line 82 does for mbridge -- once #24 lands.

Note this does not address `window_size_left`, which is a separate TE 2.17 vs
flash-attn skew inside TE's own context-parallel path.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants