-
Notifications
You must be signed in to change notification settings - Fork 182
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
Switch to cuda::std::tuple
/<cuda/std/tuple>
#742
Comments
I'm hoping to try this out. Is there a branch anywhere implementing any of this? As a warm-up for In thrust/pair.h:
In thrust/tuple.h:
However, I keep getting stuck on specializations related to
I'm not a C++ expert and am not sure what the right way to specialize things from |
So this should be doable now that libcu++ can be used from Thrust. I knew the tuple of references thing was going to be a challenge. I'll defer to @allisonvacanti and @griwes to sort out what we should do here. |
It's exciting to hear this should now be doable. I hope I can be of assistance making it happen. Since I posted a few hours ago, I tried moving the specialization themselves into
That seemed to get past that initial error. I guess we would have to define the specialization in whatever namespace the
It's not clear to me why that conversion would fail. |
I've been holding off on this because there are some issues with libcu++'s I'm not familiar with |
Accidentally closed -- reopening. If you'd like to start working on this while the I'd suggest trying out the current version of |
Since this issue is closed, what would be the appropriate venue to discuss EDIT: just refreshed and saw you re-opened it. |
I very sincerely appreciate the transparency on your openness to merging this. No rush to merge anything. I just want to be able to test it myself, and have it ready for when those other issues are resolved. In terms
Alas, I still have negligible understanding of r-value references, perfect forwarding, etc. I guess it's time to learn! Finally, I'll also try out |
No problem -- you've contributed quite a bit to Thrust, I want to make sure you're looped into our plans when they overlap :) That sounds familiar. I ran into a similar issue with tuples of reference proxies in the placeholder code. Maybe a similar solution will work here? What I did was:
Not sure if this exactly fits the Let me know if you get stuck, this is definitely a feature we'd like to have implemented quickly as soon as the prereqs are met. Dealing with reference proxies is a headache that I've had a lot of experience with, so I'll be happy to share what I can. |
I've made a few attempts over the last few months, but I'm out of my depth on this one. |
No worries, thanks for giving it a shot. |
Tentatively putting this in for 2.0. I'm expecting that this will take a significant amount of effort and may end up getting delayed again, but once we have the libcu++ dependency in place we should investigate this. Updated description with some subtasks. |
closed by #262 |
Original Comment
Note that this requires us to sort out fetching the libcu++ headers in Thrust/CUB internal builds.
2022-04-26: @allisonvacanti Update
The libcu++ dependency will be merged soon for 2.0 (PR: NVIDIA/thrust#1605). Afterwards, we'll be able to start looking into this:
cuda::std::tuple
and the currentthrust::tuple
.template <typename ...T> using tuple = cuda::std::tuple<T...>
. Take note of what breaks and estimate how much effort it will be to fix. See the discussion oftuple_of_iterator_references
below for a known trouble spot.This information will let us make a better informed prioritization.
The text was updated successfully, but these errors were encountered: