-
Notifications
You must be signed in to change notification settings - Fork 197
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
Improve the performance of radix top-k #1175
Improve the performance of radix top-k #1175
Conversation
Pull requests from external contributors require approval from a |
More details about the benchmark changes and results. The adaptive version is most useful when the most significant bits of input data are almost the same. That is, when the value range of input data is narrow. So, some new benchmarks are added to demonstrate its advantage.
Benchmark results (using A100 GPU and CUDA 12.0):
|
/ok to test |
Codecov Report
Additional details and impacted files@@ Coverage Diff @@
## branch-23.04 #1175 +/- ##
===============================================
Coverage ? 87.99%
===============================================
Files ? 21
Lines ? 483
Branches ? 0
===============================================
Hits ? 425
Misses ? 58
Partials ? 0 Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here. ☔ View full report at Codecov. |
/okay to test |
/add to allowlist |
/okay to test |
/ok to test |
/ok to test |
@yong-wang just a heads up that we are reaching the halfway point for release 23.04 and are trying to avoid having too many last-minute changes merged during burndown. It looks like this has a conflict to resolve and it’s otherwise approved to go in. Do you think we can get this in for 23.04? |
/ok to test |
/merge |
@cjnolet there seems to be an issue with the input types passed to raft/cpp/include/raft/spatial/knn/knn.cuh Lines 156 to 167 in e4aec7b
|
Thanks Tamas for locating the bug. I had misread the error message and missed the bug. |
/ok to test |
/ok to test |
There is an error with some of the tests: ./MATRIX_TEST --gtest_filter=*ReferencedRandomDoubleSizeT*
[ FAILED ] 4 tests, listed below:
[ FAILED ] SelectK/ReferencedRandomDoubleSizeT.Run/77, where GetParam() = (params{batch_size: 20, len: 700, k: 10, asc, no-input-index}, kRadix8bits)
[ FAILED ] SelectK/ReferencedRandomDoubleSizeT.Run/112, where GetParam() = (params{batch_size: 100, len: 1700, k: 31, asc, no-input-index}, kRadix8bits)
[ FAILED ] SelectK/ReferencedRandomDoubleSizeT.Run/140, where GetParam() = (params{batch_size: 100, len: 1700, k: 64, dsc, no-input-index}, kRadix8bits)
[ FAILED ] SelectK/ReferencedRandomDoubleSizeT.Run/182, where GetParam() = (params{batch_size: 100, len: 1700, k: 1023, dsc, no-input-index}, kRadix8bits)
|
Got it. I'll take a look. |
/okay to test |
/okay to test |
The main changes are:
len
is relatively small (<= 16384)k
values, we can stop the computation earliercounter
, calculation of kernel launch parameters, and the scan step