NVIDIA / NVIDIA/cudf

[FEA] Evaluate the performance impact of cub::DeviceFind::FindIf for cudf search

Open
#22,703 3 comments 1 reaction 0 assignees View on GitHub
feature request libcudf Performance
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.