Delete cccl_adaptors.hpp and use raw CCCL resource_ref types#2325
Merged
bdice merged 1 commit intorapidsai:stagingfrom Apr 1, 2026
Merged
Delete cccl_adaptors.hpp and use raw CCCL resource_ref types#2325bdice merged 1 commit intorapidsai:stagingfrom
bdice merged 1 commit intorapidsai:stagingfrom
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. |
This was referenced Mar 20, 2026
rapids-bot bot
pushed a commit
that referenced
this pull request
Mar 23, 2026
…#2328) Replace the hand-rolled friend `get_property` templates in `cccl_resource_ref` and `cccl_async_resource_ref` with inheritance from `cuda::forward_property`. This delegates property forwarding to CCCL's own machinery, which correctly handles `dynamic_accessibility_property` ([NVIDIA/cccl#7727](NVIDIA/cccl#7727)) and any future properties without ambiguity. Each wrapper now exposes `upstream_resource()` returning the inner `ResourceType`, as required by `forward_property` for stateful properties. Tests add minimal `forward_property` adaptors using RMM resource refs as upstream, exercising the exact scenario that causes the ambiguity. Note: this is a temporary solution for the `main` branch -- resolving #2323 / #2325 will remove this code on the `staging` branch while I continue working on CCCL MR migrations. Closes #2322. Authors: - Bradley Dice (https://github.com/bdice) Approvers: - Rong Ou (https://github.com/rongou) URL: #2328
8a3dfa6 to
0f59bf7
Compare
0f59bf7 to
423eeac
Compare
Collaborator
Author
|
I'm going to break this up into smaller PRs. I'm not 100% convinced all the changes are still necessary. |
3 tasks
4029c61 to
e81b85a
Compare
bdice
commented
Apr 1, 2026
Collaborator
Author
bdice
left a comment
There was a problem hiding this comment.
Self-reviewed. This is the final stage I need to start work on RAPIDS refactoring. It's mostly deletion and a couple small refactorings.
Replace RMM's wrapper types (cccl_resource_ref, cccl_async_resource_ref)
with direct aliases to CCCL's resource_ref and synchronous_resource_ref.
This eliminates the 480-line adaptor layer that was originally needed to
work around the CCCL #8037 recursive constraint satisfaction issue, which
has since been fixed upstream in CCCL PR #8121.
Additional changes:
- per_device_resource: static_cast<any_device_resource>(ref) replaced
with any_device_resource{ref} (wrapper had operator any_resource)
- Add missing cuda_stream_view.hpp include to three impl headers that
previously got it transitively through cccl_adaptors.hpp
e81b85a to
a5b4668
Compare
wence-
approved these changes
Apr 1, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Delete
cccl_adaptors.hppand replace RMM's wrapper types (cccl_resource_ref,cccl_async_resource_ref) with direct aliases to CCCL'sresource_refandsynchronous_resource_ref. This eliminates the 480-line adaptor layer that was originally needed to work around the CCCL #8037 recursive constraint satisfaction issue, which has since been fixed upstream in CCCL #8121.Additional changes:
per_device_resource:static_cast<any_device_resource>(ref)replaced withany_device_resource{ref}(wrapper hadoperator any_resource)cuda_stream_view.hppinclude to three impl headers that previously got it transitively throughcccl_adaptors.hppChecklist