[FEA] Evaluate the performance impact of cub::DeviceFind::FindIf for cudf search
- Dominant language
- C++
- Stars
- 9.8k
- Forks
- 1.1k
- Avg merge
- 3d 6m
- Merged PRs (30d)
- 278
Description
**Is your feature request related to a problem? Please describe.**
cuDF `search` operations currently use a hash-based implementation backed by cuco hash tables. This approach was previously chosen because sorting was expensive, and earlier find_if-based approaches were not performant enough.
With recent CCCL developments, `cub::DeviceFind::FindIf` has shown significant runtime performance improvements (see [blog](https://developer.nvidia.com/blog/nvidia-cuda-13-3-enhances-gpu-development-with-tile-programming-in-c-compiler-autotuning-and-python-updates/#search_cubdevicefindfindif)). This may change the tradeoff between the existing hash-based approach and a predicate-based search implementation.
**Describe the solution you'd like**
Evaluate the performance impact of using the latest `cub::DeviceFind::FindIf` for cuDF `search` operations, and compare it against the current cuco hash-based implementation.
The evaluation should include representative input sizes, data distributions, match rates, and data types to determine whether `FindIf` is now a viable or preferable implementation strategy for some or all `search` workloads.
Contributor guide
Assessment
This issue has not been assessed yet.