-
Notifications
You must be signed in to change notification settings - Fork 75
Remove Ampere-Turing matmul scheduler #5836
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?
Conversation
|
Review updated until commit 060c34c Description
|
| Relevant files | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Enhancement | 5 files
| ||||||||||
| Tests | 4 files
| ||||||||||
| Configuration changes | 1 files
|
PR Reviewer Guide
Here are some key observations to aid the review process:
| 🧪 PR contains tests |
| ⚡ Recommended focus areas for review |
Breaking Change Documentation
|
a0d36ff to
643b29e
Compare
|
!test |
Greptile SummaryRemoves the Ampere/Turing matmul scheduler as part of the effort to eliminate Swizzle2D support. The PR deletes ~1,544 lines of scheduler implementation code and updates all matmul tests to require Hopper (SM 9.0) or newer GPUs. Key Changes:
Minor Issues:
Confidence Score: 5/5
Important Files Changed
Sequence DiagramsequenceDiagram
participant Client
participant MatmulScheduler
participant ArchCheck
participant HopperScheduler
participant AmpereMinus as AmpereMinus (REMOVED)
Client->>MatmulScheduler: schedule(fusion, params)
MatmulScheduler->>MatmulScheduler: Get MMA macro
alt isTuring(macro) || isAmpere(macro)
MatmulScheduler->>AmpereMinus: BEFORE: schedule_matmul::AmpereMinus(fusion, mparams).run()
Note over AmpereMinus: Removed 1544 lines<br/>(matmul_ampere-.cpp/h)
MatmulScheduler->>MatmulScheduler: AFTER: throw NVF_THROW error
Note right of MatmulScheduler: "Support for Turing and<br/>Ampere was dropped"
else isHopper(macro)
MatmulScheduler->>HopperScheduler: schedule_matmul::Hopper(fusion, mparams).run()
HopperScheduler-->>MatmulScheduler: Success
else isBlackwell(macro)
MatmulScheduler->>MatmulScheduler: schedule_matmul::Blackwell(fusion, mparams).run()
end
Note over ArchCheck: All tests now require<br/>Hopper (arch 9.0+)
ArchCheck->>ArchCheck: BEFORE: CUDA arch >= 7.5/8.0
ArchCheck->>ArchCheck: AFTER: CUDA arch >= 9.0
MatmulScheduler-->>Client: Scheduled fusion or error
|
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.
Additional Comments (4)
-
tests/cpp/test_matmul_scheduler.cpp, line 142 (link)logic: Test will fail on Turing/Ampere since scheduler now throws error for these architectures. Should be
NVFUSER_TEST_CUDA_ARCH_RANGE_GUARD(9, 0, 10, 0); -
tests/cpp/test_matmul_scheduler.cpp, line 168 (link)logic: Ampere (8.0) no longer supported. Update to
NVFUSER_TEST_CUDA_ARCH_GUARD(9, 0); -
tests/cpp/test_matmul_scheduler.cpp, line 142-3245 (link)logic: 48 tests in this file still have CUDA arch guards for Turing (7.5) and/or Ampere (8.0). Since the scheduler now throws for these architectures (see
csrc/scheduler/matmul.cpp:80), all these tests will fail. All guards with7, 5should start at9, 0and all guards with upper bound9, 0should have upper bound10, 0. Are these tests intentionally meant to verify error handling for unsupported architectures, or should they be updated to only run on Hopper+? -
csrc/scheduler/matmul.h, line 49 (link)syntax: Stale reference to
AmpereMinusin comment - this class was removed
7 files reviewed, 4 comments
|
!test |
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.
Additional Comments (1)
-
benchmarks/cpp/matmul.cpp, line 404-409 (link)style: dead code - the
NVFUSER_BENCHMARK_ARCH_SMEM_GUARD(9, 0, ...)on line 401 already skips anything below arch 9.0, so this check for architectures in range [8.0, 9.0) will never execute
10 files reviewed, 1 comment
As part of #5722, I dropped the matmul scheduler for Ampere/Turing. I tried to just disable Swizzle2D but wasn't quite sure how to correctly update the scheduler. Instead of figuring it out, I decided just dropping it.
The matmul tests now only run on Hopper or upper.