Removing cudax components#856
Merged
rapids-bot[bot] merged 3 commits intorapidsai:mainfrom Feb 12, 2026
Merged
Conversation
pentschev
approved these changes
Feb 12, 2026
Member
pentschev
left a comment
There was a problem hiding this comment.
Generally looks good to me. I left a question, but it doesn't need to be addressed in this PR.
Comment on lines
+20
to
+33
| cuda::memory_pool_properties get_memory_pool_properties() { | ||
| return cuda::memory_pool_properties{ | ||
| // It was observed that priming async pools have little effect for performance. | ||
| // See <https://github.com/rapidsai/rmm/issues/1931>. | ||
| .initial_pool_size = 0, | ||
| // Before <https://github.com/NVIDIA/cccl/pull/6718>, the default | ||
| // `release_threshold` was 0, which defeats the purpose of having a pool. We | ||
| // now set it so the pool never releases unused pinned memory. | ||
| .release_threshold = std::numeric_limits<size_t>::max(), | ||
| // This defines how the allocations can be exported (IPC). See the docs of | ||
| // `cudaMemPoolCreate` in <https://docs.nvidia.com/cuda/cuda-runtime-api>. | ||
| .allocation_handle_type = ::cudaMemAllocationHandleType::cudaMemHandleTypeNone | ||
| }; | ||
| } |
Member
There was a problem hiding this comment.
Do we want to allow the user to configure those?
Contributor
Author
|
/merge |
wence-
reviewed
Feb 13, 2026
Comment on lines
+172
to
+178
| // We cannot assign cuda::pinned_memory_pool directly to device_async_resource_ref / | ||
| // host_async_resource_ref: the ref only stores a pointer, but its constructor | ||
| // requires the referenced type to be copyable and movable (CCCL __basic_any_ref | ||
| // constraint). pinned_memory_pool is neither, so we wrap it in PinnedMemoryResource, | ||
| // which holds the pool in a shared_ptr and is copyable and movable. Copies share | ||
| // the same pool (is_equal compares pool_ pointers). | ||
| std::shared_ptr<cuda::pinned_memory_pool> pool_; |
Contributor
There was a problem hiding this comment.
Aha, the magic you were looking for was storing a
cuda::mr::any_resource<cuda::mr::device_accessible, cuda::mr::host_accessible>
And then you should make the pool with:
cuda::mr::make_shared_resource<cuda::pinned_memory_pool>(...);
Contributor
Author
There was a problem hiding this comment.
It seems any_resource requires the Resource to be copyable 😞
https://nvidia.slack.com/archives/CCP05T27R/p1771366256232879
Contributor
Author
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.
This PR removes the
cudaxcomponents from the build because from CCCL 3.2+ the memory pools have been moved to libcudaxx. Also removes the pimpl idiom from PinnedMemoryResouce.cmake/thirdparty/get_cccl_cudax.cmakeis still kept for future use.