Skip to content
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

[ENHANCEMENT]: Improve make_window_extent in the case of linear probing #581

Open
PointKernel opened this issue Aug 19, 2024 · 0 comments
Open
Labels
helps: rapids Helps or needed by RAPIDS type: improvement Improvement / enhancement to an existing function

Comments

@PointKernel
Copy link
Member

Is your feature request related to a problem? Please describe.

The current make_window_extent function always calculates prime capacity, regardless of the probing scheme used. This approach is suboptimal for linear probing, where the capacity does not need to be a prime number.

Describe the solution you'd like

If it's linear probing, return the window extent based on CG size and window size without the prime table lookup.

template <typename T>
struct is_double_hashing : cuda::std::false_type {};

template <int32_t CGSize, typename Hash1, typename Hash2>
struct is_double_hashing<cuco::double_hashing<CGSize, Hash1, Hash2>> : cuda::std::true_type {};

A trait similar to the above idea is needed to dispatch between linear probing and double hashing

Describe alternatives you've considered

No response

Additional context

No response

@PointKernel PointKernel added helps: rapids Helps or needed by RAPIDS type: improvement Improvement / enhancement to an existing function labels Aug 19, 2024
PointKernel added a commit that referenced this issue Aug 21, 2024
This PR fixes a small bug that the current `probing_scheme.cuh` header
is not self-contained due to a missing inclusion. It also adds a trait
to help #581 and #582.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
helps: rapids Helps or needed by RAPIDS type: improvement Improvement / enhancement to an existing function
Projects
None yet
Development

No branches or pull requests

1 participant