[FEA] Hash function refactoring
- Dominant language
- C++
- Stars
- 9.8k
- Forks
- 1.1k
- Avg merge
- 3d 6m
- Merged PRs (30d)
- 278
Description
Following up from #13681 and #13612, there are some tasks I think can be done to clean up hashing code. I am opening this issue to be a tracker for the work we've deferred from other PRs.
- Functions like `getblock32` can be reused by multiple hash functions. https://github.com/rapidsai/cudf/pull/13612/files#r1265587501
Also consider optimizing this to use `memcpy` or `if constexpr` on key type perhaps.
- Functions like `rotate_bits_left` should not use CUDA intrinsics (it doesn't affect the PTX/SASS compared to a naive shift-based implementation), thereby making them `constexpr`-friendly and possible to put into a shared `hpp` header. https://github.com/rapidsai/cudf/pull/13681#discussion_r1264527017
- The `@brief` of hashing APIs should mention the algorithm name. https://github.com/rapidsai/cudf/pull/13612/files#r1267270076
Contributor guide
Assessment
This issue has not been assessed yet.