Skip to content

Refactor distinct join to use primitive row operators when proper - #17726

Merged
rapids-bot[bot] merged 22 commits into
NVIDIA:branch-25.06from
PointKernel:primitive-row-op
May 13, 2025
Merged

Refactor distinct join to use primitive row operators when proper#17726
rapids-bot[bot] merged 22 commits into
NVIDIA:branch-25.06from
PointKernel:primitive-row-op

Conversation

@PointKernel

@PointKernel PointKernel commented Jan 13, 2025

Copy link
Copy Markdown
Member

Description

This PR introduces primitive row hashers and equality comparators and apply them into distinct hash joins to reduce register pressure and enhance runtime performance. It's an alternative to the 3-way dispatching row operators proposed in #15700, avoiding the build time issues associated with the original proposal. Testing shows that the new primitive row operators improve runtime performance in most scenarios, with architecture-dependent gains of up to 30%.

Checklist

  • I am familiar with the Contributing Guidelines.
  • New or existing tests cover these changes.
  • The documentation is up to date with these changes.

@PointKernel PointKernel added 2 - In Progress Currently a work in progress libcudf Affects libcudf (C++/CUDA) code. Performance Performance related issue improvement Improvement / enhancement to an existing function non-breaking Non-breaking change labels Jan 13, 2025
@PointKernel PointKernel self-assigned this Jan 13, 2025
@copy-pr-bot

copy-pr-bot Bot commented Jan 13, 2025

Copy link
Copy Markdown

Auto-sync is disabled for draft pull requests in this repository. Workflows must be run manually.

Contributors can view more details about this message here.

@copy-pr-bot

copy-pr-bot Bot commented May 7, 2025

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.

@review-notebook-app

Copy link
Copy Markdown

Check out this pull request on  ReviewNB

See visual diffs & provide feedback on Jupyter Notebooks.


Powered by ReviewNB

@github-actions github-actions Bot added Python Affects Python cuDF API. CMake CMake build issue Java Affects Java cuDF API. cudf.pandas Issues specific to cudf.pandas cudf-polars Issues specific to cudf-polars pylibcudf Issues specific to the pylibcudf package labels May 7, 2025
@GPUtester GPUtester moved this to In Progress in cuDF Python May 7, 2025
@PointKernel
PointKernel changed the base branch from branch-25.02 to branch-25.06 May 7, 2025 21:02
@PointKernel PointKernel removed Python Affects Python cuDF API. CMake CMake build issue Java Affects Java cuDF API. labels May 7, 2025
@PointKernel PointKernel changed the title Refactor distinct join to use primitive row operators Refactor distinct join to use primitive row operators when proper May 8, 2025
@PointKernel PointKernel added 3 - Ready for Review Ready for review by team and removed 2 - In Progress Currently a work in progress labels May 8, 2025
@PointKernel
PointKernel marked this pull request as ready for review May 8, 2025 20:59
@PointKernel
PointKernel requested a review from a team as a code owner May 8, 2025 20:59
@PointKernel
PointKernel requested review from bdice and mhaseeb123 May 8, 2025 20:59
@PointKernel

Copy link
Copy Markdown
Member Author

/ok to test 03adc0b

Comment thread cpp/include/cudf/detail/join/distinct_hash_join.cuh Outdated
Comment thread cpp/include/cudf/table/experimental/row_operators.cuh
Comment thread cpp/src/join/distinct_hash_join.cu Outdated
@GregoryKimball GregoryKimball moved this to Burndown in libcudf May 13, 2025
@PointKernel

Copy link
Copy Markdown
Member Author

/merge

@PointKernel

Copy link
Copy Markdown
Member Author

/ok to test 3d37b69

@PointKernel

Copy link
Copy Markdown
Member Author

/ok to test da73099

@rapids-bot
rapids-bot Bot merged commit 1ad35ea into NVIDIA:branch-25.06 May 13, 2025
@github-project-automation github-project-automation Bot moved this from In Progress to Done in cuDF Python May 13, 2025
@PointKernel
PointKernel deleted the primitive-row-op branch May 14, 2025 00:47
@vuule vuule moved this from Burndown to Landed in libcudf May 14, 2025
@GregoryKimball GregoryKimball removed this from libcudf Jul 11, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

3 - Ready for Review Ready for review by team improvement Improvement / enhancement to an existing function libcudf Affects libcudf (C++/CUDA) code. non-breaking Non-breaking change Performance Performance related issue

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants