Skip to content

Add Bloom filter persisting L2 access#826

Merged
sleeepyjack merged 6 commits into
NVIDIA:devfrom
sleeepyjack:bloom-filter-perf-study
Jul 8, 2026
Merged

Add Bloom filter persisting L2 access#826
sleeepyjack merged 6 commits into
NVIDIA:devfrom
sleeepyjack:bloom-filter-perf-study

Conversation

@sleeepyjack

@sleeepyjack sleeepyjack commented Jul 3, 2026

Copy link
Copy Markdown
Collaborator

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

@sleeepyjack

Copy link
Copy Markdown
Collaborator Author

/ok to test 54e5616

@sleeepyjack sleeepyjack force-pushed the bloom-filter-perf-study branch from 54e5616 to b6ba6be Compare July 3, 2026 21:26
@sleeepyjack sleeepyjack changed the title Refactor Bloom filter policy and add L2 persistence Add Bloom filter persisting L2 access Jul 3, 2026
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.
Add optional persisting-L2 filter accesses using associate_access_property, with tests for global-memory equivalence and shared-memory safety.

Add a documented CUDA runtime example showing L2 set-aside and reset usage.
Comment on lines +46 to +53
* NVIDIA RTX PRO 6000 Blackwell Max-Q Workstation Edition, 128 MiB L2, 200M input items:
*
* filter size | add, default | add, persisting L2 | contains, default | contains, persisting L2
* ----------- | ------------ | ------------------ | ----------------- | ------------------------
* 64 MiB | 4.880 ms | 3.405 ms | 2.444 ms | 2.427 ms
* 80 MiB | 8.276 ms | 3.380 ms | 4.706 ms | 2.443 ms
* 96 MiB | 11.004 ms | 3.476 ms | 4.874 ms | 2.575 ms
* 128 MiB | 22.602 ms | 9.097 ms | 5.545 ms | 5.371 ms

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.

Benchmark results

@sleeepyjack sleeepyjack self-assigned this Jul 3, 2026
@sleeepyjack sleeepyjack added topic: performance Performance related issue P2: Nice to have Desired, but not necessary topic: bloom_filter Issues related to bloom_filter labels Jul 3, 2026
@sleeepyjack

Copy link
Copy Markdown
Collaborator Author

/ok to test 90517ea

@sleeepyjack sleeepyjack marked this pull request as ready for review July 3, 2026 21:48
@sleeepyjack sleeepyjack requested a review from PointKernel as a code owner July 3, 2026 21:48

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

Looks good. Just some small non-blocking questions

Comment thread examples/bloom_filter/persisting_l2_example.cu Outdated
Comment thread include/cuco/bloom_filter_policy.cuh
@sleeepyjack sleeepyjack merged commit 9961377 into NVIDIA:dev Jul 8, 2026
23 checks passed
@sleeepyjack sleeepyjack deleted the bloom-filter-perf-study branch July 8, 2026 00:07
@astroC86

astroC86 commented Jul 8, 2026

Copy link
Copy Markdown

this is amazing!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

P2: Nice to have Desired, but not necessary topic: bloom_filter Issues related to bloom_filter topic: performance Performance related issue

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants