Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Test updates of CCCL (thrust, cub, libcudacxx) to 2.1.0. #1096

Closed
wants to merge 11 commits into from

Conversation

bdice
Copy link
Contributor

@bdice bdice commented Apr 26, 2023

This PR tests a rapids-cmake branch with CCCL (thrust, cub, libcudacxx) updated to 2.1.0. Do not merge this PR. The changes will be merged upstream in rapids-cmake after all libraries pass CI.

@isVoid isVoid added the 5 - DO NOT MERGE Hold off on merging; see PR for details label Apr 26, 2023
@bdice bdice changed the base branch from branch-23.06 to branch-23.10 July 27, 2023 15:43
@bdice
Copy link
Contributor Author

bdice commented Jul 28, 2023

This PR is blocked until cudf is updated. rapidsai/cudf#13222

I think that since conda CI is passing, the wheel CI failures just indicate issues with compiling cudf itself.

@bdice bdice force-pushed the cccl-update-2.1.0 branch from b75ee7c to 8c96d38 Compare August 31, 2023 17:52
@github-actions github-actions bot added the conda Related to conda and conda configuration label Aug 31, 2023
@github-actions github-actions bot added the libcuspatial Relates to the cuSpatial C++ library label Sep 12, 2023
@bdice
Copy link
Contributor Author

bdice commented Sep 12, 2023

This PR is ready to pass off to a cuSpatial C++ dev for completion. We are planning to ship CCCL 2.1.0 support (possibly CCCL 2.2.0) in RAPIDS 23.12. The corresponding rapids-cmake changes will be merged early in the development cycle for 23.12. We are aiming for the PRs to every RAPIDS library to be ready to merge changes needed for CCCL 2 support when 23.10 burndown begins and the 23.12 branch is created. The general readiness of RAPIDS libraries for this CCCL major version bump is being tracked here: rapidsai/rapids-cmake#399 (comment)

The major changes that are needed are to wrap device lambdas where the return type is needed on the host with cuda::proclaim_return_type<ReturnType>([...] __device__ (...){ ... });. This is most often needed for thrust::transform calls, or when constructing transform iterators, though other Thrust/CUB algorithms also have this requirement. Algorithms like thrust::for_each, however, do not require the return type to be known by the host, and therefore do not need it to be proclaimed. (Most of the time, I believe the difference has to do with whether the working memory or shared memory sizes of that algorithm depend on the return type.) I made a sample change that shows how to use cuda::proclaim_return_type<ReturnType> (note you must #include <cuda/functional> to use this feature). Please refer to rapidsai/cudf#13222 for more examples.

@harrism harrism self-assigned this Sep 12, 2023
@github-actions github-actions bot added the cmake Related to CMake code or build configuration label Sep 26, 2023
@review-notebook-app
Copy link

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 Related to Python code ci labels Sep 26, 2023
@harrism harrism changed the base branch from branch-23.10 to branch-23.12 September 26, 2023 05:08
@bdice bdice mentioned this pull request Dec 8, 2023
26 tasks
@bdice bdice changed the base branch from branch-23.12 to branch-23.10 December 11, 2023 23:24
@bdice
Copy link
Contributor Author

bdice commented Dec 12, 2023

Closing in favor of #1314.

@bdice bdice closed this Dec 12, 2023
rapids-bot bot pushed a commit that referenced this pull request Dec 15, 2023
This PR makes cuspatial compatible with Thrust 2 by adding `cuda::proclaim_return_type`, but does not upgrade the version of Thrust/CCCL just yet. Currently we use libcudacxx 2.1.0, which makes `cuda::proclaim_return_type` available, but we still use Thrust 1.17.2 which doesn't require device lambdas to have proclaimed return types. This diff is separated out from #1096. I will create a separate PR which contains only packaging changes / version updates for the CCCL 2 migration. This PR is **nonbreaking**, while the second PR will be **breaking**.

Authors:
  - Bradley Dice (https://github.com/bdice)

Approvers:
  - Mark Harris (https://github.com/harrism)
  - Michael Wang (https://github.com/isVoid)

URL: #1314
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
5 - DO NOT MERGE Hold off on merging; see PR for details ci cmake Related to CMake code or build configuration conda Related to conda and conda configuration libcuspatial Relates to the cuSpatial C++ library Python Related to Python code
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

4 participants