-
Notifications
You must be signed in to change notification settings - Fork 915
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
Port thrust's pinned_allocator to cudf, since Thrust 1.17 removes the type #12004
Port thrust's pinned_allocator to cudf, since Thrust 1.17 removes the type #12004
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I saw the Slack conversation about this -- all looks good to me.
Moving this to do not merge as I missed another places that libcudf uses the experimental pinned allocator. |
I did not see the Slack conversation. Why are the the .cpp files renamed? Are there any device code launches in the new header? |
Due to the usage of I am not sure this is the approach we should take compared to implementing our own pinned allocator that doesn't require compilation via CUDA. |
Is it an option to fix this in thrust and then include the fix into our code? I fear how this will spread. |
Thrust 1.17 removes the experimental/pinned_allocator. While Thrust offers a replacement in `thrust::system::cuda::universal_host_pinned_memory_resource`. In doing so we also need to move the consumers to being CUDA sources which would negatively impact our compile time. Instead we move Thrust's removed pinned_allocator into cudf and continue to use it
276a9dd
to
dc3f7de
Compare
The entire |
I have completly redesigned the way we fix this issue. Instead of using Once NVIDIA/libcudacxx#309 has been merged we can explore using that instead of our custom pinned_allocator. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM in general, the code style in the allocator seems a bit off to me, but that's just a small nit.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Approving - just some minor style hiccups to fix.
@gpucibot merge |
Codecov ReportBase: 87.40% // Head: 88.12% // Increases project coverage by
Additional details and impacted files@@ Coverage Diff @@
## branch-22.12 #12004 +/- ##
================================================
+ Coverage 87.40% 88.12% +0.71%
================================================
Files 133 133
Lines 21833 22003 +170
================================================
+ Hits 19084 19390 +306
+ Misses 2749 2613 -136
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here. ☔ View full report at Codecov. |
@gpucibot merge |
1 similar comment
@gpucibot merge |
Looks like you need ops approval before merging this. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
Description
Thrust 1.17 removes the experimental/pinned_allocator. While Thrust offers a replacement in
thrust::system::cuda::universal_host_pinned_memory_resource
. In doing so we also need to move the consumers to being CUDA sources which would negatively impact our compile time.Instead we move Thrust's removed pinned_allocator into cudf as it allows usage from C++ sources and doesn't
require larger changes to handle the fact the value_type from the container becomes
thrust::pointer<T>
.Note: We haven't seen a compile failure up to this point due to the fact that all CUDA 11.X toolkits provide a version
of thrust that has the experimental header. So when it wasn't found in our 1.17.2 location the compiler would fallback
to the one in the CTK. We can't rely on this behavior moving forward.
Checklist