Skip to content

Migrate RMM usage to CCCL MR design#98

Draft
bdice wants to merge 2 commits intoNVIDIA:mainfrom
bdice:rmm-cccl-migration
Draft

Migrate RMM usage to CCCL MR design#98
bdice wants to merge 2 commits intoNVIDIA:mainfrom
bdice:rmm-cccl-migration

Conversation

@bdice
Copy link
Copy Markdown

@bdice bdice commented Apr 2, 2026

Summary

  • Migrate all cuCascade memory resource classes from rmm::mr::device_memory_resource virtual inheritance to the CCCL-native resource concept (allocate/deallocate with cuda::stream_ref, allocate_sync/deallocate_sync, operator==, get_property).
  • Replace unique_ptr<device_memory_resource> owning storage with cuda::mr::any_resource<cuda::mr::device_accessible>.
  • Update memory_space::get_default_allocator() to return device_async_resource_ref from the any_resource.
  • Update pool_memory_resource usage (no longer a template in RMM 26.06; upstream passed as device_async_resource_ref).
  • Move memory_reservation.hpp template bodies out-of-line to avoid incomplete-type errors.
  • Update test utilities for the new resource concept.

Affected classes

  • null_device_memory_resource
  • numa_region_pinned_host_allocator
  • fixed_size_host_memory_resource
  • reservation_aware_resource_adaptor
  • small_pinned_host_memory_resource
  • memory_space

Notes

  • Companion to the rapidsmpf migration PR.
  • cuda::stream_ref{} deprecation warnings remain in allocate_sync/deallocate_sync implementations (non-blocking, cuCascade doesn't use -Werror).

… 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.
@copy-pr-bot
Copy link
Copy Markdown

copy-pr-bot bot commented Apr 2, 2026

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.

@mbrobbel
Copy link
Copy Markdown
Member

mbrobbel commented Apr 7, 2026

/ok to test a852c20

# Conflicts:
#	src/data/representation_converter.cpp
#	src/memory/memory_space.cpp
#	test/utils/cudf_test_utils.cpp
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants