Skip to content

Mamba: Bug Fix for No Intermediate State Case - #6598

Merged
adistomar merged 5 commits into
NVIDIA:mainfrom
adistomar:aditya-ssm-int-state-update-bug-fix
Aug 27, 2026
Merged

Mamba: Bug Fix for No Intermediate State Case#6598
adistomar merged 5 commits into
NVIDIA:mainfrom
adistomar:aditya-ssm-int-state-update-bug-fix

Conversation

@adistomar

@adistomar adistomar commented Aug 17, 2026

Copy link
Copy Markdown
Member
  • I, the PR author, have personally reviewed every line of this PR.

What does this PR do?

⚠️ For major changes (either in lines of code or in its impact), please make sure to first share a design doc with the team. If you're unsure what's the best way to do so, contact @NVIDIA/mcore-oncall.

For hybrid models, in the non-speculative decoding case wherein there are no intermediate states, the intermediate_ssm_states pointer gets set to a dummy value x. However, in the actual state update kernel, since {"HAS_INT_STATE": lambda args: args["int_state_ptr"] occurs at launch time, HAS_INT_STATE becomes True due to int_state_ptr being set to the dummy x rather than just being None. So the current code accidentally ends up launching programs which all modify the x tensor at stride (0, 0, 0, 0, 0). Since the scheduler determines which programs launch first, if any program that is not pid = 0 launches first, it ends up corrupting the data in x at the stride belonging to pid = 0.

Also we don't have any reason to be modifying the input x in the first place. So this is how I test this non-deterministic bug in the unit test. I check whether the input to the selective state update function is the same before and after the function is run. This helps indirectly validate that x is not being accidentally modified.

Issue tracking

For PRs from open-source community contributors:

  • New features: a linked issue is required. Please open a feature request and reference it here before submitting the PR.
  • Small updates (bug fixes, minor improvements): a linked issue is recommended and will accelerate the PR review process.

Linked issue:

Contribution process

Pre-checks

  • I have added relevant unit tests
  • I have added relevant functional tests
  • I have added proper typing to my code Typing guidelines
  • I have added relevant documentation
  • I have run the autoformatter.sh on my PR

Code review

Feel free to message or comment @NVIDIA/mcore-oncall to help accelerate your merge into main. The less complex your PR is, the faster it will be approved and merged!

All PRs start as draft. If you open a non-draft PR, it will be automatically converted to draft.

Step 1: Mark PR as "Ready for Review"

  1. When your PR is ready, click Ready for Review.
  2. An oncall reviewer is auto-assigned and expert reviewers are notified based on your changes.
    • Some PRs may jump straight to step 2. This is determined by .github/CODEOWNERS.

⚠️ Only mark as ready once merge-conflicts are resolved and the CI is passing.
Final Review might get declined if these requirements are not fulfilled.

Step 2: Final Review

For PRs that change megatron/core, once all expert reviewers have approved, the Final Review label is applied automatically and final reviewers are assigned.

For PRs outside megatron/core, this step is skipped.

Step 3: Approved

Once all required reviewers have approved, the Approved label is applied automatically.

Merge

Any member of mcore-engineers will be able to merge your PR.

@adistomar
adistomar requested review from a team as code owners August 17, 2026 23:55
@copy-pr-bot

copy-pr-bot Bot commented Aug 17, 2026

Copy link
Copy Markdown

This pull request requires additional validation before any workflows can run on NVIDIA's runners.

Pull request vetters can view their responsibilities here.

Contributors can view more details about this message here.

@svcnvidia-nemo-ci
svcnvidia-nemo-ci marked this pull request as draft August 17, 2026 23:55
@github-actions

Copy link
Copy Markdown
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:

  1. Add the oncall reviewer (optional reviewer)
  2. Add required review teams based on your changes

See the contribution guide for more details.

@santhnm2 santhnm2 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Small nit: remove the double quotes comment in favor of comment

@santhnm2
santhnm2 marked this pull request as ready for review August 18, 2026 00:39
@svcnvidia-nemo-ci svcnvidia-nemo-ci added the Final Review PR is in the "final review" stage label Aug 18, 2026
@adistomar
adistomar enabled auto-merge August 23, 2026 22:31
@adistomar

Copy link
Copy Markdown
Member Author

@NVIDIA/core-nemo Can I please get this approved? It is a one-line code change that fixes a race condition bug in the mamba state update code. Thank you.

@svcnvidia-nemo-ci svcnvidia-nemo-ci added Approved All necessary approvals have been made and removed Final Review PR is in the "final review" stage labels Aug 24, 2026
@sidsingh-nvidia

Copy link
Copy Markdown
Contributor

/ok to test 5248736

Signed-off-by: adistomar <adityatomar2604@gmail.com>
Signed-off-by: adistomar <adityatomar2604@gmail.com>
Signed-off-by: adistomar <adityatomar2604@gmail.com>
Signed-off-by: adistomar <adityatomar2604@gmail.com>
Signed-off-by: adistomar <adityatomar2604@gmail.com>
@nemo-automation-bot

Copy link
Copy Markdown

🔄 Merge queue validation started!

You can track the progress here: https://github.com/NVIDIA/Megatron-LM/actions/runs/33065457337

Merged via the queue into NVIDIA:main with commit 6e5a8c1 Aug 27, 2026
92 checks passed
@adistomar
adistomar deleted the aditya-ssm-int-state-update-bug-fix branch August 27, 2026 12:06
ksivaman pushed a commit to ksivaman/Megatron-LM that referenced this pull request Sep 1, 2026
Signed-off-by: adistomar <adityatomar2604@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Approved All necessary approvals have been made complexity: low

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants