Repository navigation
fix: admit SM120 and use FA4 with invalid-tile fix #295
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
base: main
Are you sure you want to change the base?
Changes from all commits
413ddf3
8afd9d4
7a8cd46
2fefe2e
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
|
|
@@ -432,7 +432,7 @@ def gapped_replay_unavailable_reason(device: torch.device) -> str | None: | |||||
| if torch.version.hip is not None: | ||||||
| return "it needs NVIDIA CUDA, not ROCm" | ||||||
| major, minor = torch.cuda.get_device_capability(device) | ||||||
| if (major, minor) != (9, 0) and major != 10: | ||||||
| if (major, minor) not in ((9, 0), (12, 0)) and major != 10: | ||||||
| # Hopper and Blackwell use different FA4 kernels; the replay GPU tests cover | ||||||
| # the segment isolation and untouched gap rows required by both paths. | ||||||
| return f"it needs FlashAttention-4 on Hopper (sm90) or Blackwell (sm100/sm103), got sm{major}{minor}" | ||||||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The message still lists only sm90/sm100/sm103 after the condition above started admitting sm120.
Suggested change
|
||||||
|
|
||||||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -196,7 +196,7 @@ vllm = [ | |
| # Match nvcr.io/nvidia/pytorch:25.11-py3: https://docs.nvidia.com/deeplearning/frameworks/pytorch-release-notes/rel-26-01.html | ||
| cu128 = [ | ||
| # FA4 CuTeDSL kernels; the cu13 extra is only needed by CUDA 13 environments. | ||
| "flash-attn-4==4.0.0b24", | ||
| "flash-attn-4==4.0.0b30", | ||
| "flash-attn-3-nv==1.0.3+cu128.torch210; platform_machine == 'x86_64'", | ||
| "flash-attn==2.7.4.post1+cu128.torch210; platform_machine == 'x86_64'", | ||
| "natten==0.21.6.dev6+cu128.torch210; platform_machine == 'x86_64'", | ||
|
|
@@ -231,7 +231,7 @@ cu128-train = [ | |
| # Match nvcr.io/nvidia/pytorch:25.11-py3: https://docs.nvidia.com/deeplearning/frameworks/pytorch-release-notes/rel-25-11.html | ||
| cu130 = [ | ||
| # Match imaginaire4's FA4 installation on both x86_64 and aarch64. | ||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. After this bump the comment is no longer true unless imaginaire4's container moves to b30 as well. Please coordinate the pin with the i4 side (or drop the comment), since the two trees are kept in sync by the release flow. |
||
| "flash-attn-4[cu13]==4.0.0b24", | ||
| "flash-attn-4[cu13]==4.0.0b30", | ||
| "flash-attn-3-nv==1.0.3+cu130.torch210; platform_machine == 'x86_64'", | ||
| "flash-attn==2.7.4.post1+cu130.torch210; platform_machine == 'x86_64'", | ||
| # GB300/B300 (sm_103a): use the custom build that includes sm_103a kernels (both arches). | ||
|
|
@@ -267,7 +267,7 @@ cu130-train = [ | |
| ] | ||
| # torch 2.13 on CUDA 13.0. Same layout as cu130 but pinned to torch 2.13. | ||
| cu130-torch213 = [ | ||
| "flash-attn-4[cu13]==4.0.0b24", | ||
| "flash-attn-4[cu13]==4.0.0b30", | ||
| #"flash-attn-3-nv==1.0.3+cu130.torch210; platform_machine == 'x86_64'", # TODO: torch213 build (cu130.torch210 wheels are cp313-only + torch210 ABI) | ||
| #"flash-attn==2.7.4.post1+cu130.torch210; platform_machine == 'x86_64'", # TODO: torch213 build (cu130.torch210 wheels are cp313-only + torch210 ABI) | ||
| # torch2.13 build (natten 0.21.6, sm 80/86/89/90/100/103/110/120/121) — matches this group's torch/ABI. | ||
|
|
||
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.
FA4 gates on
arch // 10, so sm121 (DGX Spark / GB10) takes exactly the same kernels as sm120; admitting(12, 0)but refusing(12, 1)is an arbitrary split. Suggestmajor == 12here (andmajor == 11for Thor only if someone runs the tests there).