Skip to content

Use cuda::proclaim_return_type on device lambdas. - #14577

Merged
rapids-bot[bot] merged 4 commits into
NVIDIA:branch-24.02from
bdice:proclaim_return_type
Dec 8, 2023
Merged

Use cuda::proclaim_return_type on device lambdas.#14577
rapids-bot[bot] merged 4 commits into
NVIDIA:branch-24.02from
bdice:proclaim_return_type

Conversation

@bdice

@bdice bdice commented Dec 5, 2023

Copy link
Copy Markdown
Contributor

Description

This PR makes cudf 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 #14576 and reduces the diff we must carry in #14576 -- which should contain only packaging changes / version updates for the CCCL 2 migration. This PR is nonbreaking, while #14576 will be breaking.

Checklist

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

@github-actions github-actions Bot added libcudf Affects libcudf (C++/CUDA) code. Java Affects Java cuDF API. labels Dec 5, 2023
@bdice bdice added improvement Improvement / enhancement to an existing function non-breaking Non-breaking change labels Dec 5, 2023
@bdice
bdice marked this pull request as ready for review December 5, 2023 22:25
@bdice
bdice requested review from a team as code owners December 5, 2023 22:25
@bdice
bdice requested review from robertmaynard and vuule December 5, 2023 22:25
Comment thread cpp/include/cudf/detail/utilities/device_operators.cuh Outdated
Comment thread cpp/src/copying/copy.cu Outdated
Comment thread cpp/src/io/json/nested_json_gpu.cu Outdated
Comment thread cpp/src/quantiles/tdigest/tdigest_aggregation.cu Outdated
@bdice bdice mentioned this pull request Dec 8, 2023
3 tasks
@bdice
bdice requested a review from davidwendt December 8, 2023 18:20
@bdice bdice self-assigned this Dec 8, 2023
@bdice

bdice commented Dec 8, 2023

Copy link
Copy Markdown
Contributor Author

/merge

@vuule vuule left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

never finished the review :(
Wanted to asked about this comment anyway.

Comment on lines +482 to +483
// Needed so that the first instance of the implicit destructor for any TU isn't 'constructed'
// from a host+device function marking the implicit version also as host+device

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

wat :D

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

That's a comment we acquired with help from @robertmaynard. I was suffering from inexplicable compilation problems and this fixed it.

~mutable_column_view(){
// Needed so that the first instance of the implicit destructor for any TU isn't 'constructed'
// from a host+device function marking the implicit version also as host+device
};

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

This will trigger IDE warning.

Suggested change
};
}

@rapids-bot
rapids-bot Bot merged commit 7b551ef into NVIDIA:branch-24.02 Dec 8, 2023
@bdice bdice mentioned this pull request Dec 8, 2023
26 tasks
karthikeyann pushed a commit to karthikeyann/cudf that referenced this pull request Dec 12, 2023
This PR makes cudf 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 NVIDIA#14576 and reduces the diff we must carry in NVIDIA#14576 -- which should contain only packaging changes / version updates for the CCCL 2 migration. This PR is **nonbreaking**, while NVIDIA#14576 will be **breaking**.

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

Approvers:
  - Nghia Truong (https://github.com/ttnghia)
  - David Wendt (https://github.com/davidwendt)

URL: NVIDIA#14577
raydouglass pushed a commit that referenced this pull request Dec 19, 2023
This PR updates cuDF to CCCL 2.2.0. Do not merge until all of RAPIDS is ready to update.

Depends on #14577.

Replaces #13222.

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

Approvers:
   - Ray Douglass (https://github.com/raydouglass)
   - Vyas Ramasubramani (https://github.com/vyasr)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

improvement Improvement / enhancement to an existing function Java Affects Java cuDF API. libcudf Affects libcudf (C++/CUDA) code. non-breaking Non-breaking change

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants