Skip to content

Conversation

@pciolkosz
Copy link
Contributor

This PR moves device_transform from cudax to libcu++. I had to adjust some things it used from cudax. One of them was cuda::experimental::__variant, which I replaced with cuda::std::optional. I believe it was just a simpler type we can later go back to.

With device_transform moved to libcu++ there was no longer a need to keep the experimental version of copy_bytes and fill_bytes, I removed them and added device transform to the non-experimental version.

I had to still leave experimental tests of the algorithm header, because of uninitialized_buffer used in them. We can move them when we move that type.

@pciolkosz pciolkosz requested review from a team as code owners November 4, 2025 00:58
@pciolkosz pciolkosz requested a review from alliepiper November 4, 2025 00:58
@github-project-automation github-project-automation bot moved this to Todo in CCCL Nov 4, 2025
@pciolkosz pciolkosz requested a review from griwes November 4, 2025 00:58
@cccl-authenticator-app cccl-authenticator-app bot moved this from Todo to In Review in CCCL Nov 4, 2025
@github-actions

This comment has been minimized.

@github-actions

This comment has been minimized.

@github-actions

This comment has been minimized.

@github-actions

This comment has been minimized.

Comment on lines 109 to 114
template <typename _Tp>
struct __optional_with_a_destructor : ::cuda::std::optional<_Tp>
{
using ::cuda::std::optional<_Tp>::optional;
~__optional_with_a_destructor() {}
};
Copy link
Contributor

Choose a reason for hiding this comment

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

I do not understand why this needed, the destructor will still run at the same time, its just that there is nothing to destroy there


namespace __tfx
{
// Device transform:
Copy link
Contributor

Choose a reason for hiding this comment

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

Design question: is device transform a good name for this object? Whenever I see the name, I am immediately thinking about some cub algorithm

Copy link
Contributor

Choose a reason for hiding this comment

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

Same here.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

It started as launch_transform because it was used for cuda::launch API. Later we added it for copy_bytes and I believe some things Eric is working on. In general the idea was anytime execution is transferred to the device, arguments passed are going to this transformation. This is how device_transform name came up. Would device_argument_transform help with this concern? I can't think of a fundamentally different name for this

@github-actions
Copy link
Contributor

github-actions bot commented Nov 6, 2025

🥳 CI Workflow Results

🟩 Finished in 2h 46m: Pass: 100%/122 | Total: 1d 18h | Max: 2h 01m | Hits: 82%/236714

See results here.

@alliepiper alliepiper removed their request for review November 7, 2025 18:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: In Review

Development

Successfully merging this pull request may close these issues.

4 participants