Add THD-format per-rank batch fetch with padding mask for sequence packing - #5904
Merged
ilml merged 2 commits intoAug 17, 2026
Merged
Conversation
This was referenced Jul 20, 2026
ilml
marked this pull request as ready for review
July 22, 2026 01:02
ilml
force-pushed
the
split/3386-04-thd-batch-fetch
branch
from
July 27, 2026 20:04
1ffa623 to
ad0738c
Compare
cuichenx
reviewed
Jul 28, 2026
cuichenx
reviewed
Jul 28, 2026
dimapihtar
approved these changes
Jul 30, 2026
cuichenx
approved these changes
Jul 30, 2026
ilml
force-pushed
the
split/3386-04-thd-batch-fetch
branch
from
July 30, 2026 21:19
12334c0 to
1cc3a9e
Compare
Connor-XY
approved these changes
Jul 30, 2026
ilml
force-pushed
the
split/3386-04-thd-batch-fetch
branch
2 times, most recently
from
August 6, 2026 16:44
e8e5f20 to
ce62c99
Compare
ilml
force-pushed
the
split/3386-04-thd-batch-fetch
branch
from
August 10, 2026 22:04
ce62c99 to
48fecb2
Compare
…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>
ilml
force-pushed
the
split/3386-04-thd-batch-fetch
branch
from
August 10, 2026 22:09
48fecb2 to
956a101
Compare
6 tasks
6 tasks
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?
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