Skip to content

Replace Bloom filter Word with WordBytes - #833

Open
sleeepyjack wants to merge 1 commit into
NVIDIA:devfrom
sleeepyjack:bf-word-bytes
Open

Replace Bloom filter Word with WordBytes#833
sleeepyjack wants to merge 1 commit into
NVIDIA:devfrom
sleeepyjack:bf-word-bytes

Conversation

@sleeepyjack

@sleeepyjack sleeepyjack commented Aug 13, 2026

Copy link
Copy Markdown
Collaborator

This PR replaces the user-specified Word type in bloom_filter_policy with a WordBytes parameter supporting 4- and 8-byte words. The policy selects the corresponding native atomicOr type internally, preventing users from supplying incompatible word types and removing the associated validation and conversion machinery. By removing the stale cuda::atomic_ref::fetch_or inspection, this also fixes the cuCollections compatibility issue exposed by NVIDIA/cccl#10727 and supersedes #832.

For compatibility with the current cuDF integration, the deprecated parametric_filter_policy alias remains temporarily. It translates the legacy Word parameter into the new design through sizeof(Word), so the user-specified type does not reach Bloom filter storage or atomic operations. Removing the shim will be handled separately after the cuco version update in rapids-cmake.

@sleeepyjack sleeepyjack self-assigned this Aug 13, 2026
@sleeepyjack sleeepyjack added type: improvement Improvement / enhancement to an existing function topic: bloom_filter Issues related to bloom_filter labels Aug 13, 2026
@sleeepyjack sleeepyjack changed the title Replace Bloom filter Word with WordBytes and remove policy shim Replace Bloom filter Word with WordBytes and remove cudf policy shim Aug 13, 2026
@NVIDIA NVIDIA deleted a comment from copy-pr-bot Bot Aug 13, 2026
bool ConditionalAdd,
bool EarlyExitContains,
bool PersistingL2Access = false>
using parametric_filter_policy = detail::bloom_filter_policy<Hash,

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let’s do it separately. I just realized that the new filter policy hasn’t landed in rapids-cmake yet, and we’ve already started removing the parametric one.

@PointKernel PointKernel left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

cuDF is still using the parametric policy because the current rapids-cmake fetches a Git tag from one commit before the new filter policy was introduced. Could we keep the existing parametric policy as-is while also exposing the new policy with WordBytes?

cuDF CI has been quite fragile recently, so introducing a breaking change could cause additional issues and potentially block the cuco version bump in rapids-cmake.

Select native atomicOr word types internally while retaining the deprecated parametric_filter_policy compatibility shim.
@sleeepyjack sleeepyjack changed the title Replace Bloom filter Word with WordBytes and remove cudf policy shim Replace Bloom filter Word with WordBytes Aug 14, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

topic: bloom_filter Issues related to bloom_filter type: improvement Improvement / enhancement to an existing function

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants