-
Notifications
You must be signed in to change notification settings - Fork 71
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
Support Bloom filters #1303
Merged
nvdbaranec
merged 50 commits into
NVIDIA:branch-23.08
from
nvdbaranec:bloom_filter_merge_change
Aug 2, 2023
Merged
Support Bloom filters #1303
nvdbaranec
merged 50 commits into
NVIDIA:branch-23.08
from
nvdbaranec:bloom_filter_merge_change
Aug 2, 2023
Conversation
This file contains 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
…mur hash instead of the cudf version. Brought over cpp and java tests.
Signed-off-by: db <[email protected]>
Signed-off-by: db <[email protected]>
…ow index) from remaining constructor.
Signed-off-by: db <[email protected]>
…nents instead of an instance. Change BloomFilterInterfaces to take a BaseDeviceMemoryBuffer instead of a DeviceMemoryBuffer. Handle some exception cases. Reordered some function parameter lists for consistency/cleanliness.
…oomFilter class to be more restrictive about bloom filter bit sizes: must always be a multiple of 64 bits.
… Handles nulls in the c++ code : build will ignore null input values and probe will return null for any input value.
…ffer as an opaque cudf Scalar.
…loom filters have matching num_hashes and num_longs parameters.
…nterface for probing directly from a buffer. Improve error checking in unpacking code.
jlowe
previously approved these changes
Jul 31, 2023
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.
Tested with NVIDIA/spark-rapids#8775 as well as in-progress BloomFilterAggregate code. Minor nit on better comments for CudfAccessor usage.
…workaround for certain Scalar accessors.
jlowe
approved these changes
Jul 31, 2023
build |
This was
linked to
issues
Aug 2, 2023
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.
Adds support for Spark-style bloom filters via the BloomFilter class. The gpu implementation is in spark-rapids-jni itself and not cudf.
This version of the PR uses a different style of interface the encapsulates the entire Spark serialized blob of bloom filter data. It will probably render #1269 obsolete.
Added benchmark for bloom_filter_put. On an A5000, we're getting 140 GB/s write-throughput for bloom filter sizes of 512k, 1MB, 2MB, 4MB and 8MB. 12.5 milliseconds for 150 million rows. So it's not lightning fast, but it's serviceable.
Also fixed several assorted benchmark build errors. The cudf push for always providing null counts and specifying stream/mr broke a few of them.