Skip to content

Remove deprecated RMM Buffer support#656

Merged
rapids-bot[bot] merged 9 commits into
rapidsai:mainfrom
pentschev:remove-deprecated-rmm
May 21, 2026
Merged

Remove deprecated RMM Buffer support#656
rapids-bot[bot] merged 9 commits into
rapidsai:mainfrom
pentschev:remove-deprecated-rmm

Conversation

@pentschev
Copy link
Copy Markdown
Member

The Buffer support for RMM was deprecated in favor of CCCL. Remove that for UCXX v0.51/RAPIDS 26.08.

@pentschev pentschev self-assigned this May 19, 2026
@pentschev pentschev requested review from a team as code owners May 19, 2026 18:23
@pentschev pentschev added the breaking Introduces a breaking change label May 19, 2026
@pentschev pentschev requested a review from KyleFromNVIDIA May 19, 2026 18:23
@pentschev pentschev added improvement Improves an existing functionality libucxx ucxx labels May 19, 2026
Comment thread cpp/benchmarks/CMakeLists.txt Outdated

# RMM memory resources for CUDA benchmarks (requires UCXX_ENABLE_RMM and get_rmm.cmake)
# RMM memory resources for CUDA benchmarks.
if(UCXX_BENCHMARKS_ENABLE_CUDA AND UCXX_ENABLE_RMM)
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we need to remove more RMM references in this block?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We still support RMM benchmarks, they have nothing to do with the Buffer class. Maybe at some point we may want to remove that, but for now I think it's useful for us to have the option to compare between both, unless our plan is to completely remove RMM memory resources and have everyone rely on CCCL directly from 26.08.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No, we're not quite there yet, so let's leave these benchmarks. Most likely we'll never lose all the mrs in rmm, but I am hopeful that we'll eventually lose buffers.

Comment thread cpp/tests/CMakeLists.txt Outdated
Copy link
Copy Markdown
Contributor

@vyasr vyasr left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The README needs to be updated too, it refers to building the library with rmm support.

Comment thread cpp/benchmarks/CMakeLists.txt Outdated

# RMM memory resources for CUDA benchmarks (requires UCXX_ENABLE_RMM and get_rmm.cmake)
# RMM memory resources for CUDA benchmarks.
if(UCXX_BENCHMARKS_ENABLE_CUDA AND UCXX_ENABLE_RMM)
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No, we're not quite there yet, so let's leave these benchmarks. Most likely we'll never lose all the mrs in rmm, but I am hopeful that we'll eventually lose buffers.

Comment thread cpp/CMakeLists.txt
option(BUILD_SHARED_LIBS "Build UCXX shared libraries" ON)
option(UCXX_ENABLE_RMM "Enable support for CUDA multi-buffer transfer with RMM" OFF)
option(UCXX_ENABLE_RMM "Enable RMM-backed test and benchmark code paths" OFF)
# TODO: Flip UCXX_ENABLE_CCCL default to OFF once devcontainer builds pass -DUCXX_ENABLE_CCCL=ON
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We need to update the devcontainers to use CCCL here, then we can change this flag here. That way CCCL support stays optional.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for pointing that, opened rapidsai/devcontainers#705 to address that.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@pentschev Would it be too much to rename UCXX_ENABLE_RMM to UCXX_ENABLE_RMM_TESTING?
I had the same question as @bdice here

@pentschev
Copy link
Copy Markdown
Member Author

The README needs to be updated too, it refers to building the library with rmm support.

Fixed in 5082070

trxcllnt pushed a commit to rapidsai/devcontainers that referenced this pull request May 20, 2026
CCCL support for UCXX was added in
rapidsai/ucxx#641, and
rapidsai/ucxx#656 is removing RMM support.
Switching to CCCL here is necessary.
Copy link
Copy Markdown
Collaborator

@nirandaperera nirandaperera left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. It would be nice if we could rename UCXX_ENABLE_RMM to something more representative now (maybe UCXX_ENABLE_RMM_TESTING).
But I dont want to block the PR for that.

Comment thread cpp/CMakeLists.txt
option(BUILD_SHARED_LIBS "Build UCXX shared libraries" ON)
option(UCXX_ENABLE_RMM "Enable support for CUDA multi-buffer transfer with RMM" OFF)
option(UCXX_ENABLE_RMM "Enable RMM-backed test and benchmark code paths" OFF)
# TODO: Flip UCXX_ENABLE_CCCL default to OFF once devcontainer builds pass -DUCXX_ENABLE_CCCL=ON
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@pentschev Would it be too much to rename UCXX_ENABLE_RMM to UCXX_ENABLE_RMM_TESTING?
I had the same question as @bdice here

@trxcllnt
Copy link
Copy Markdown
Contributor

Adding this to cpp/tests/CMakeLists.txt should fix the UCXX_TEST linker errors:

  if(UCXX_ENABLE_CCCL)
    target_link_libraries(${CMAKE_TEST_NAME} PRIVATE CUDA::cudart_static)
  endif()

@pentschev
Copy link
Copy Markdown
Member Author

Adding this to cpp/tests/CMakeLists.txt should fix the UCXX_TEST linker errors:

  if(UCXX_ENABLE_CCCL)
    target_link_libraries(${CMAKE_TEST_NAME} PRIVATE CUDA::cudart_static)
  endif()

Thanks Paul, done in e8ff9b0.

LGTM. It would be nice if we could rename UCXX_ENABLE_RMM to something more representative now (maybe UCXX_ENABLE_RMM_TESTING). But I dont want to block the PR for that.

Thanks Niranda, done in 7e8ca76.

@trxcllnt
Copy link
Copy Markdown
Contributor

trxcllnt commented May 20, 2026

Looks like either a similar change needs to be made in python/ucxx, or ucxx needs to specify its CUDA::cudart_static dependency in the public interface when UCXX_ENABLE_CCCL=ON

@trxcllnt
Copy link
Copy Markdown
Contributor

trxcllnt commented May 20, 2026

diff --git a/python/ucxx/ucxx/_lib/CMakeLists.txt b/python/ucxx/ucxx/_lib/CMakeLists.txt
index 68922af..d3488bf 100644
--- a/python/ucxx/ucxx/_lib/CMakeLists.txt
+++ b/python/ucxx/ucxx/_lib/CMakeLists.txt
@@ -5,8 +5,10 @@
 # cmake-format: on
 # =================================================================================
 
+find_package(CUDAToolkit REQUIRED)
+
 set(cython_sources arr.pyx libucxx.pyx)
-set(linked_libraries ucxx::ucxx ucxx::python)
+set(linked_libraries ucxx::ucxx ucxx::python CUDA::cudart_static)
 
 rapids_cython_create_modules(
   CXX

@pentschev
Copy link
Copy Markdown
Member Author

/merge

@rapids-bot rapids-bot Bot merged commit 7ca8811 into rapidsai:main May 21, 2026
159 of 163 checks passed
@pentschev pentschev deleted the remove-deprecated-rmm branch May 22, 2026 10:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

breaking Introduces a breaking change improvement Improves an existing functionality libucxx ucxx

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants