Conversation
Signed-off-by: HuiyingLi <willwin.lee@gmail.com>
Signed-off-by: HuiyingLi <willwin.lee@gmail.com>
Signed-off-by: HuiyingLi <willwin.lee@gmail.com>
Signed-off-by: HuiyingLi <willwin.lee@gmail.com>
3 tasks
Contributor
Author
End-to-end training throughputQwen3.8 FlashNext full-model training (48 layers), 8 nodes × 8 H100, EP64, sequence length 8192, LBS 1 / GBS 64, BF16, mock data with
Both variants use FA4 and the same indexer scheduling ( TPS/GPU counts training label tokens over the complete training-loop time, divided by 64 GPUs. |
Signed-off-by: HuiyingLi <willwin.lee@gmail.com>
Contributor
Author
|
/ok to test d16988b |
Signed-off-by: HuiyingLi <willwin.lee@gmail.com>
Contributor
Author
|
/ok to test 7ca8baf |
akoumpa
reviewed
Sep 18, 2026
|
|
||
| # Install DeepSelect from unmodified upstream source; add H100 via NVCC flags. | ||
| # Build the wheel once so upstream's timestamped version stays consistent. | ||
| ARG INSTALL_DEEPSELECT=true |
Contributor
There was a problem hiding this comment.
@HuiyingLi two asks:
- can we include it in the pyproject.toml?
- we have a test that ensures commits are in-sync btwn pyproject.toml and dockerfile, can you include deepselect?
9 tasks
This branch was successfully 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.
What does this PR do ?
Add an optional DeepSelect backend for Qwen3.8 FlashNext's QSA compressed-block selection. Set
model.backend.qsa_topk: deepselecton the model-owned backend config to select 512 causal blocks from FP32 CUDA scores; the default remainstorch.Changelog
Qwen3_8_FlashNextBackendConfigand recipe/backend resolution without adding a QSA setting to the sharedBackendConfig.deep_selectextension with row alignment and per-query causal bounds. Preserve dense prefixes, incomplete-block tails, packed document handling, and CP offsets.NVCC_APPEND_FLAGSadds SM90a to upstream's SM100a/SM103a targets. Building the wheel first avoids disagreement between upstream's timestamped metadata and wheel versions.Before your PR is "Ready for review"
Pre checks:
Validation on DFW:
TORCH_COMPILE_DISABLE=1for CPU math tests.0f03b68748b304863fdf0181a11458d04ae533a9usinguv build --wheelfollowed by wheel installation, with CUDA_VISIBLE_DEVICES empty during compilation. Tracked upstream source has no diff.git diff --checkpassed. Full Docker image build was not run.2.13.0a0+8145d630e8.nv26.06on H100.Additional Information
The extension is source-built outside uv's project resolution; standalone
uv syncdoes not install it. Use the image built by this PR, which installs the extension by default.This PR is independently based on main. It keeps the existing FlexAttention implementation and indexer scheduling; FA4 integration and the separate indexer scheduling optimizations are outside its scope.
Validation artifacts:
/lustre/fsw/portfolios/coreai/users/huiyingl/qwen38next/deepselect_pr_20260916/on DFW.End-to-end training throughput
Qwen3.8 FlashNext full-model training (48 layers), 8 nodes × 8 H100, EP64, sequence length 8192, LBS 1 / GBS 64, BF16, mock data with
fake_balanced_gate=true. Ablation based on main9d875a6d3; variants ran in the same allocation, with 30 measured steps after 20 warmup steps.Both variants use FA4 and the same indexer scheduling (
query_chunk_size=128); this measures the selector change alone.TPS/GPU counts training label tokens over the complete training-loop time, divided by 64 GPUs.