-
Notifications
You must be signed in to change notification settings - Fork 233
CCCL 3.2 resource ref compatibility #2176
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
Conversation
|
Auto-sync is disabled for draft pull requests in this repository. Workflows must be run manually. Contributors can view more details about this message here. |
967c800 to
b20c573
Compare
|
/ok to test |
updates RMM's `cccl_adaptors.hpp` to work with these changes. The following changes are intended to be *temporary* until RAPIDS is fully migrated to the new CCCL memory resource design. See rapidsai#2011 for details. - Switch from inheritance to composition for both `cccl_resource_ref` and `cccl_async_resource_ref`, to support construction from `device_memory_resource*` - Add `device_memory_resource_view` member (a copyable resource) to preserve DMR pointers through copy/move operations. This class is a copyable view wrapping a `device_memory_resource` pointer. - Add `is_specialization_of_v` trait to exclude `resource_ref` types from resource-accepting constructors (prevents recursive constraint satisfaction) Version guards ensure CCCL 3.1/3.2 compatibility until the 3.2 transition is complete. This allows RMM to work with both CCCL 3.1 and 3.2.
338bc86 to
9eeb5ca
Compare
vyasr
left a comment
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 did a live review with Bradley. I am comfortable with the implementation choices here and to the extent that some of them could be a bit cleaner I don't think it's worth too much effort since a lot of it is transitional code. I would like to see the tests cleaned up before merging if at all possible.
|
I have tested this adequately to ensure that existing RAPIDS builds should not be broken by this PR. (Macro guards ensure there should be no change in behavior for CCCL 3.1.) I'll merge it now, which will make it easier to do the final rounds of CCCL 3.2 testing. |
|
/merge |
Description
This PR implements a "bridge" for CCCL 3.2 compatibility while retaining support for resources stored as
device_memory_resource*. This is a different approach than #2162/#2166 and hopefully will be a better solution.Before merging, we need to run C++ and Python tests for all of RAPIDS with both CCCL 3.1 and 3.2.
Part of #2143.
Checklist