Skip to content

Refactor Bloom filter policy API - #827

Merged
sleeepyjack merged 2 commits into
NVIDIA:devfrom
sleeepyjack:bloom-filter-policy-design
Jul 7, 2026
Merged

sleeepyjack merged 2 commits into
NVIDIA:devfrom
sleeepyjack:bloom-filter-policy-design

Conversation

@sleeepyjack

@sleeepyjack sleeepyjack commented Jul 3, 2026

Copy link
Copy Markdown
Collaborator
  • Rename parametric_filter_policy to bloom_filter_policy and rename the public/detail headers
  • Replace default_filter_policy with direct use of cuco::bloom_filter_policy<Key>
  • Make the public policy key-based with an explicit concrete hash parameter
  • Add defaults for the word/block shape, add/contains layouts, and tuning booleans

@sleeepyjack

Copy link
Copy Markdown
Collaborator Author

/ok to test 93f5607

Comment thread include/cuco/detail/bloom_filter/bloom_filter_policy.cuh Outdated
Rename the Bloom filter policy/header, make the policy key-based with an explicit hash parameter, and use it directly as the default policy.

Default the policy word/block shape, vectorization layouts, and tuning booleans.
@sleeepyjack
sleeepyjack force-pushed the bloom-filter-policy-design branch from 93f5607 to 9aa0018 Compare July 3, 2026 21:39
@sleeepyjack sleeepyjack self-assigned this Jul 3, 2026
@sleeepyjack

Copy link
Copy Markdown
Collaborator Author

/ok to test 9aa0018

@sleeepyjack sleeepyjack added the topic: bloom_filter Issues related to bloom_filter label Jul 3, 2026
@sleeepyjack
sleeepyjack marked this pull request as ready for review July 3, 2026 21:41
@sleeepyjack
sleeepyjack requested a review from PointKernel as a code owner July 3, 2026 21:41

@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.

Could add an parametric_filter_policy alias for smooth cudf transition otherwise looks good to me.

@sleeepyjack

Copy link
Copy Markdown
Collaborator Author

Could add an parametric_filter_policy alias for smooth cudf transition otherwise looks good to me.

You mean as a shim until cudf adopts the new policy name? Ideally this is a one line change/rename (parametric_filter_policy -> bloom_filter_policy) in cudf whenever we decide to bump the cuco version in rapids-cmake again.

@PointKernel

Copy link
Copy Markdown
Member

You mean as a shim until cudf adopts the new policy name?

Yes

Ideally this is a one line change/rename

A one-line breaking change is still a breaking change. It's not a big deal, though.

Comment on lines +81 to +82
false,
false>;

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.

Oh, I forgot to mention: this could use strong types to improve readability and help avoid misuse. It's not a change request in this PR and we can revisit it later if we think it's worthwhile.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Yes, plain bools in public interface are bad. This policy is going to be the environment/tuning in the cudax port. Ideally we chose a design that is similar to these.

@sleeepyjack
sleeepyjack merged commit c2c7c43 into NVIDIA:dev Jul 7, 2026
23 checks passed
@sleeepyjack
sleeepyjack deleted the bloom-filter-policy-design branch July 7, 2026 23:18
sleeepyjack added a commit that referenced this pull request Jul 8, 2026
Depends on #827.

- Add optional persisting-L2 Bloom filter accesses using
`cuda::associate_access_property`
- Add benchmarks toggles for persisting-L2 access in `add` and
`contains`
- Add a documented CUDA runtime example that sets aside L2, runs
`add`/`contains`, then resets the set-aside
- Add tests pinned vs. unpinned equivalency
rapids-bot Bot pushed a commit to NVIDIA/cuvs that referenced this pull request Aug 26, 2026
`rapids-cmake` just bumped the commit used for `cuCollections` in builds, leading to `cuvs` build failures.

Here we fix usage of `cuco::default_filter_policy` that were changed in NVIDIA/cuCollections#827.

Also fixes some fallout from rapidsai/rmm#2527, merging in #2503 (as well as a few small fixups).

Closes #2503.

Authors:
  - Jim Crist-Harif (https://github.com/jcrist)
  - Tim Head (https://github.com/betatim)

Approvers:
  - Divye Gala (https://github.com/divyegala)

URL: #2504
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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants