Skip to content

Replace cuco hashers with cuda::hash - #877

Draft
PointKernel wants to merge 4 commits into
NVIDIA:devfrom
PointKernel:migrate-cuda-hash
Draft

PointKernel wants to merge 4 commits into
NVIDIA:devfrom
PointKernel:migrate-cuda-hash

Conversation

@PointKernel

Copy link
Copy Markdown
Member

This PR replaces cuco's own xxHash and MurmurHash3 implementations with cuda::hash from CCCL and removes the remaining cuco hashers, identity_hash and the MurmurHash3 finalizers. It requires CCCL 3.6.0, which includes the fix for the unaligned load issue in cuda::hash (NVIDIA/cccl#11870) that previously blocked this migration.

Containers, benchmarks, and tests now use the matching cuda::hash algorithms, and default_hash_function keeps the same algorithm and seed. Callers that used cuco::identity_hash can pass cuda::std::identity; for that, the Bloom filter policy's 64-bit hash check now also accepts hash functors that return a reference.

Remove the cuco xxHash and MurmurHash3 implementations and named aliases,
and use the matching CUDA algorithms in containers, tests, and benchmarks.
Retain identity and fmix, preserve the existing default algorithms and
seeds, and require CCCL 3.6.0.
Drop cuco::identity_hash and the fmix hashers along with their test and
benchmark entries. Callers can pass cuda::std::identity, so accept
by-reference results in the bloom filter policy's hash check.
@copy-pr-bot

copy-pr-bot Bot commented Nov 13, 2026

Copy link
Copy Markdown

This pull request requires additional validation before any workflows can run on NVIDIA's runners.

Pull request vetters can view their responsibilities here.

Contributors can view more details about this message here.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant