-
Notifications
You must be signed in to change notification settings - Fork 89
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
Add static_map::insert_if. #118
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.
Looks good! Just some small changes around stream support. No need to worry about #115 right now cause it's mainly me trying things around and not sure how it goes eventually.
@PointKernel I should probably have posted some of this in my initial PR comment. There are a number of tasks that I noticed would be worth doing but I wasn't sure whether I should include in this PR. Some of them are things you commented on, so let me list here and we can scope out this PR before I make any further changes. I'm not sure that all of these are necessarily good ideas, but they are relevant so we may as well discuss them here
CC @jrhemstad in case you had thoughts too. You pointed out #110 which seems to include some of these as well, so I think it's just a matter of determining what's the appropriate scope for this PR and what I should chunk out for future work. |
@PointKernel 's point is that you can't rely on all iterators to have an
We have benchmarked that, and using the CG code path with a tile size of 1 is definitely slower than the purely scalar code path. There is a significant amount of extra work in the CG code path that is eliminated in the scalar path. |
|
@PointKernel I'm not sure why, but the Github UI is not permitting me to re-request review here (I tried a few different browsers). It's unclear whether that's a result of some restriction on the repo or just something wrong with Github right now. This should be ready for another pass. |
I guess we need to be in some specific groups cause I can't do it either. @jrhemstad maybe the time to grow cuco "maintainer" group? |
Co-authored-by: Yunsong Wang <[email protected]>
@PointKernel Thanks for those comments on CG and atomics, I haven't used either yet and I learned a few new things. Should be helpful in future refactorings/optimizations. |
…nti joins (#9666) This PR resolves #9586, replacing the hash table used in semi and anti joins with cuco::static_map. It depends on NVIDIA/cuCollections#118. At present the code is slower than the original version, so we'll probably want to make some optimizations in cuco before merging this. Authors: - Vyas Ramasubramani (https://github.com/vyasr) Approvers: - Yunsong Wang (https://github.com/PointKernel) - Conor Hoekstra (https://github.com/codereport) - Jake Hemstad (https://github.com/jrhemstad) URL: #9666
This PR adds support for a predicated rather than unconditional insertion into a hash map. There is some code duplication introduce here, but for this PR I've prioritized getting a working implementation together to make sure that we can move forward. Once this feature is merged I plan to look into some refactorings, but I'd like to avoid conflicts with #115 while getting a working version of
insert_if
for rapidsai/cudf#9586.Resolves #116.