Skip to content

Conversation

@PointKernel
Copy link
Member

This PR updates cuco implementations to use cuda::std utilities in place of std in device code and to replace thrust utilities wherever possible, as they are being deprecated in CCCL.

@PointKernel PointKernel added the type: improvement Improvement / enhancement to an existing function label May 1, 2025
@PointKernel PointKernel requested a review from sleeepyjack as a code owner May 1, 2025 19:12
Copy link
Contributor

@bdice bdice left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Generally LGTM -- ideally we would use cuda::std::tuple in the places where thrust::tuple is being used.

#include <cuco/detail/bitwise_compare.cuh>
#include <cuco/detail/pair/traits.hpp>

#include <thrust/tuple.h>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think cuda::std::tuple should be preferred here? Please try it. It's also okay to defer this to another PR.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Right, the issue is from the outdated CCCL version, where zip_iterator is incompatible with cuda::std::tuple: https://godbolt.org/z/jnKafGPf4. Currently, cuco is still pulling in rapids-cmake branch-25.02, which brings in CCCL 2.7. Once we update to a newer version of rapids-cmake, CCCL will be upgraded accordingly, and we’ll be able to fully replace thrust::tuple with cuda::std::tuple in cuco.

@PointKernel PointKernel merged commit 3e04706 into NVIDIA:dev May 5, 2025
18 checks passed
@PointKernel PointKernel deleted the cccl-utilities branch May 5, 2025 17:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

type: improvement Improvement / enhancement to an existing function

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants