Add THD-format per-rank batch fetch with padding mask for sequence packing - #6589
Closed
ilml wants to merge 2 commits into
Closed
Add THD-format per-rank batch fetch with padding mask for sequence packing#6589ilml wants to merge 2 commits into
ilml wants to merge 2 commits into
Conversation
…cking Split 4/10 from NVIDIA#3386 (sequence packing / THD E2E support). Adds get_batch_on_this_rank_for_sequence_packing (TP/PP broadcast, PackedSeqParams construction, CP partitioning via the new get_thd_partitioned_indices TE wrapper) plus THD padding-mask helpers and their unit tests. Original changes by @xiaoyao0115 in NVIDIA#3386. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Signed-off-by: ilml <tolong@nvidia.com>
Per review feedback on NVIDIA#5904: - Remove get_thd_partitioned_indices from the TE extensions module and call tex.thd_get_partitioned_indices directly, matching the existing call site in megatron/core/utils.py and the other tex users (ssm/mamba_context_parallel.py, models/mimo, models/multimodal). The is_te_min_version("1.10.0") gate was unreachable -- the supported TE floor is 2.16.0 (LTS) / 2.18.0 (dev) -- and it misreported a missing TE as an outdated one, since is_te_min_version returns False when TE is absent. The guarded 'tex is not None' import also keeps megatron/core/datasets free of an eager dependency on the TE extensions module. - Reuse data_schedule_utils.broadcast_scalars for the two receive-buffer shapes instead of hand-rolling them: two collectives and two device syncs collapse into one of each. - Drop local_cp_size=None / cp_group=None from the PackedSeqParams call; both are already the dataclass defaults. Original changes by @xiaoyao0115 in NVIDIA#3386. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Signed-off-by: ilml <tolong@nvidia.com>
Contributor
Author
|
/ok to test 956a101 |
ilml
marked this pull request as ready for review
August 17, 2026 20:56
This was referenced Aug 17, 2026
jaredcasper
approved these changes
Aug 18, 2026
This was referenced Aug 18, 2026
This was referenced Aug 18, 2026
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.
Note
Replaces #5904, which was accidentally merged into its review-time base
pull-request/5903(a copy-pr-bot mirror ref that gets force-pushed) instead ofmain, so nothing landed. Same branch, same head SHA; prior review history lives in #5904.What does this PR do?
Adds
get_batch_on_this_rank_for_sequence_packing(TP/PP broadcast of packed microbatches,PackedSeqParamsconstruction, CP partitioning), the THD padding-mask helpers, and theget_thd_partitioned_indicesTE wrapper, with unit tests.Part 04/10 of splitting #3386 (Add E2E support for THD format; dev-branch PR #2924). Original changes by @xiaoyao0115 in #3386 — split into functionally self-contained PRs to ease review. Hard dependencies (must merge first): #5903.
Split series (#3386)
Branches are stacked linearly (each on the previous) so every PR shows a clean own-diff once its base is retargeted to the copy-pr-bot
pull-request/<parent>ref; until then the Files-changed view of a stacked PR includes its ancestors — its own change is the last commit.Stacked on #5903.
Review notes
test_get_batch_on_this_rank_for_sequence_packingneeds the 8-GPU torchrun CI harness and TE >= 2.9.0 for the packing paths.Issue tracking
Linked issue: Related to #3386
Contribution process
Pre-checks
🤖 Generated with Claude Code