-
Notifications
You must be signed in to change notification settings - Fork 113
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
Test large arrays in in device radix sort #1349
Conversation
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.
Thanks for the quick PR! I like the approach a lot for sanity checking large number of items. I'd be fine just being able to test keys for now as a best-effort approach to catching indexing issues, while halving memory requirements.
91e3090
to
36d8fad
Compare
4798689
to
35b5b16
Compare
35b5b16
to
c011651
Compare
c011651
to
2c22e7c
Compare
Looking at CI logs, this appears to increase the time needed to run CUB tests in CI by around 9 minutes (39m -> 48 min for gcc12/cuda12.3/c++17). |
Time cost update after removing redundant tests using signed Looking at CI logs, this appears to increase the time needed to run CUB tests in CI by around 1 minutes (39m -> 40 min for gcc12/cuda12.3/c++17). Thanks @elstehle for pointing this out! The new large-input tests do take longer than 1 minute to run, but this is offset by reducing the number of small-input tests. |
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.
Great work!
Thanks for the excellent reviews! Should be all set to merge now once CI is green (current failure looks like an infra issue). @elstehle I've updated the large array initialization methods to take a seed as suggested -- be sure to update your merge sort PR. |
Description
closes #1268
closes #1348
Adds a new test utility that generates large (>2^32 elements) test inputs for sorting algorithms and verifies them, optimizing for runtime and minimizing host/device memory overhead.
Also adds large num_item test cases to radix sort tests in catch2 and removes the old legacy radix sort tests.
A new
c2h::cpu_timer
utility is also added that is useful for breaking down execution times of test cases per-step.Looking at CI logs, this appears to increase the time needed to run CUB tests in CI by around 1 minutes (39m -> 40 min for gcc12/cuda12.3/c++17). The new large-input tests take longer than one minute, but their cost is offset by cleaning up some redundant small-input testscases.