-
Notifications
You must be signed in to change notification settings - Fork 724
[JAX] [PyT] Tighten SWA checks in DPA, MHA and other APIs before passing onto cuDNN fused attn & unfused attn backends #2970
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
KshitijLakhani
wants to merge
8
commits into
NVIDIA:main
Choose a base branch
from
KshitijLakhani:klakhani/feat/attn-swa-enh-jax
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
8 commits
Select commit
Hold shift + click to select a range
ca43999
Add check_set_window_size to JAX attn to mimic the behavior of Pyt attn
KshitijLakhani d96e402
TransformerLayer APi does not need to check the window size. That con…
KshitijLakhani 4a0f573
Update the window size via check set window size API per rank for CP …
KshitijLakhani c770934
Code clean up
KshitijLakhani f1a67b8
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] 6c3c9b8
Fix small conditional check on right side window for causal when coer…
KshitijLakhani 1c53da0
Fix small conditional check on right side window for causal when coer…
KshitijLakhani 43a8d27
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
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
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
Oops, something went wrong.
Oops, something went wrong.
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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I wonder if we should do this, or go the other direction and change the mask? Technically, this could be a valid combination right? no_mask/padding + swa(left, 0) -> essentially causal + swa(left,0)?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@cyanguwa I did think a bit about this especially since I had seen it in the PyT
check_set_window_size()too.Because there is a lot of downstream branching on the mask type in the primitives, and none really on the SWA window size, I'd prefer to not coerce the mask and instead coerce the SWA window size instead with a warning. This can also make debugging difficult (because we do change the masks for some of the CP patterns internally without the user being aware and so it just increases the chances of something going wrong when the mask has the ability to be changed in multiple places and often)
Also, smaller concern but if the mask is indeed coerced, it can give the user an incorrect understanding of the support when
is_fused_attn_kernel_available()is called by them. They maybe asking about padding masks and may get an answer for padding_causal instead now (which can also be argued for the SWA window but I believe the mask just has more ramifications in general)There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could we make "no_mask/padding + swa(left,0)" officially supported then, as a first-class citizen, just like any other combination, including "causal/padding_causal/BRCM/PBRCM + swa(left,0)", which is what it's equivalent to anyway.