Repository navigation
Conversation
…names The non-deterministic dense projection GEMM tests and benchmark used this package's default (deterministic omitted = the deterministic package) as the reference for the deterministic result. Call the deterministic package's canonical entries (projection_det_*, router_det_*, router_fp32_det_gemm, dense_projection_det_gemm) directly instead, and drop the test that asserted the deterministic package's former names without "det". The tests and the benchmark no longer depend on those former names or on the default mode, so the deterministic package can drop its aliases. No library code changes; every changed call runs the same deterministic program with the same arguments as before.
Contributor
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: true
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. |
Collaborator
Author
|
@flashinfer-bot run tests/experimental/test_cake_dense_projection_gemm.py tests/experimental/test_cake_dense_projection_det_gemm_names.py |
Collaborator
Author
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
tests/experimental/test_cake_dense_projection_gemm.py: the GPU tests take every deterministic reference result from the deterministic package's own entry points (projection_det_forward,projection_det_dgrad,projection_det_wgrad,dense_projection_det_gemm,router_det_forward,router_det_dgrad,router_det_wgrad,router_fp32_det_gemm). Before, they called this package's entry points withdeterministicleft at its default, which forwards to those functions.test_the_deterministic_names_mapis removed: it asserted that the deterministic package still exports its former names withoutdet.benchmarks/bench_cake_dense_projection_gemm.py: thedetarm of--memorycalls the deterministic package's convenience entry points directly. Theatomicarm still calls this package withdeterministic=False.Why
The naming and mode rules for the experimental training kernels: deterministic entry points carry
detin their names, the deterministic package keeps no aliases withoutdet, and thedeterministicargument of a non-deterministic package never selects the deterministic package. After this PR, the tests and the benchmark of this package depend on neither the aliases nor the default mode. A follow-up can then remove the aliases fromdense_projection_det_gemm. The mode change of this package comes in a separate PR.Behavior
No library code changes. Each changed call runs the same deterministic function with the same arguments as before. The tests of today's default dispatch stay until the mode change.
Tests
mainabbe776c:pre-commiton the changed files and on all files, no new failing hook.test_cake_dense_projection_gemm.py,test_cake_dense_projection_det_gemm_names.pyandtest_cake_dense_projection_det_gemm.py: 0 new failures (test_cake_dense_projection_gemm.py: 393 passed / 161 skipped,main394 / 161). Collection: one test id removed (test_the_deterministic_names_map), none added.test_cake_dense_projection_gemm.pyandtest_cake_dense_projection_det_gemm_names.py, this branch vsmainon the same node:mainThe difference of one passed test is the removed test. A coverage run of the changed tests on GB200 executed every changed reference call except the one in
test_gpu_router_tmem_head_tail_program_in_its_windows, which skips on sm_100a; GB300 runs it.--memory --accuracy: every row ran; thedetarm's convenience memory equalsmainon every row.