Open
Conversation
… resource concept RMM 26.06 removes rmm::mr::device_memory_resource and adopts CCCL-native memory resource concepts. This migrates all cuCascade resource classes: - null_device_memory_resource: replaced virtual override with CCCL concept methods (allocate/deallocate with cuda::stream_ref, allocate_sync, deallocate_sync, operator==, get_property). - numa_region_pinned_host_allocator: same pattern. - fixed_size_host_memory_resource: same pattern. - reservation_aware_resource_adaptor: same pattern. - small_pinned_host_memory_resource: same pattern. - memory_space: unique_ptr<device_memory_resource> replaced with cuda::mr::any_resource<cuda::mr::device_accessible> for owning storage; get_default_allocator returns device_async_resource_ref from any_resource. - memory_reservation.hpp: moved template bodies out-of-line to avoid incomplete-type errors with memory_space forward declaration. - common.hpp/cpp: updated factory typedefs and pool_memory_resource usage (no longer a template in 26.06). - pool_memory_resource upstream passed as device_async_resource_ref. - Test utilities updated for new resource concept.
|
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 Apr 3, 2026
Member
|
/ok to test a852c20 |
# Conflicts: # src/data/representation_converter.cpp # src/memory/memory_space.cpp # test/utils/cudf_test_utils.cpp
Member
|
/ok to test 9df76bf |
The CCCL async_resource concept requires explicit alignment arguments
and explicit cudaStream_t construction for stream_ref, unlike the old
rmm::mr::device_memory_resource pointer API which had defaults.
- Pass rmm::CUDA_ALLOCATION_ALIGNMENT for device resource allocate/deallocate
- Pass alignof(std::max_align_t) for host resource allocate/deallocate
- Use cuda::stream_ref{cudaStream_t{nullptr}} for sync allocate/deallocate
- Use rmm::device_async_resource_ref in representation_converter signatures
- Construct null_device_memory_resource directly (no unique_ptr indirection)
Member
|
/ok to test fd00654 |
…compliance Test resource types (shared_device_resource, logging_device_resource) now implement the synchronous allocation interface required by the CCCL resource concept. Also migrates deprecated set_current_device_resource_ref calls to set_current_device_resource and fixes any_resource construction in test setup.
… split Move all state and private methods into a non-copyable impl class (detail::reservation_aware_resource_adaptor_impl). The public wrapper now inherits from cuda::mr::shared_resource<impl>, making it copyable and movable via reference counting. This satisfies the CCCL resource concept requirements for any_resource, enabling use with device_buffer and device_uvector in RMM 26.06. Follows the same pattern used by RMM's own pool_memory_resource and tracking_resource_adaptor.
…ctations Remove extra closing brace that broke SCENARIO block structure. Fix the 'exceeds reservation' test case which previously expected overflow with two chunk_size allocations that exactly filled the reservation — add a third allocation to actually trigger overflow, and correct the expected total_allocated_bytes to reservation_size + chunk_size.
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.
Summary
rmm::mr::device_memory_resourcevirtual inheritance to the CCCL-native resource concept (allocate/deallocatewithcuda::stream_ref,allocate_sync/deallocate_sync,operator==,get_property).unique_ptr<device_memory_resource>owning storage withcuda::mr::any_resource<cuda::mr::device_accessible>.memory_space::get_default_allocator()to returndevice_async_resource_reffrom theany_resource.pool_memory_resourceusage (no longer a template in RMM 26.06; upstream passed asdevice_async_resource_ref).memory_reservation.hpptemplate bodies (get_memory_resource_as<T>(),get_memory_resource_of<Tier>()) tomemory_space.hppto avoid incomplete-type errors.memory_spaceconstructors —any_resourceis a value type and cannot be null.representation_converter.cppto acceptrmm::device_async_resource_refinstead of rawrmm::mr::device_memory_resource*.shared_device_resource,logging_device_resource,make_mock_memory_space) for the new resource concept.Affected classes
null_device_memory_resourcenuma_region_pinned_host_allocatorfixed_size_host_memory_resourcereservation_aware_resource_adaptorsmall_pinned_host_memory_resourcememory_spaceNotes
cuda::stream_ref{cudaStream_t{nullptr}}inallocate_sync/deallocate_syncimplementations may produce deprecation warnings. These do not break the build because theWARNINGS_AS_ERRORSCMake guard on line 80 checks the wrong variable name (WARNINGS_AS_ERRORSvs the optionCUCASCADE_WARNINGS_AS_ERRORS), so-Werroris currently not enabled.cuda_utils.hpp,test_data_batch.cpp,test_data_representation.cpp,benchmark_representation_converter.cpp,data_batch.hpp). These are whitespace/include-order changes only.