Skip to content

[Java] Bindings, tests and benchmarks for RMM pooled memory#1453

Merged
rapids-bot[bot] merged 9 commits intorapidsai:release/25.12from
ldematte:java/rmm-memory-pool-functions
Dec 1, 2025
Merged

[Java] Bindings, tests and benchmarks for RMM pooled memory#1453
rapids-bot[bot] merged 9 commits intorapidsai:release/25.12from
ldematte:java/rmm-memory-pool-functions

Conversation

@ldematte
Copy link
Copy Markdown
Contributor

Exposes cuvsRMMPoolMemoryResourceEnable/cuvsRMMMemoryResourceReset via the Java API, with tests and benchmarks

@copy-pr-bot
Copy link
Copy Markdown

copy-pr-bot Bot commented Oct 23, 2025

This pull request requires additional validation before any workflows can run on NVIDIA's runners.

Pull request vetters can view their responsibilities here.

Contributors can view more details about this message here.

}

@Override
public String toString() {
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

this is from #1510

@Before
public void setup() {
assumeTrue("not supported on " + System.getProperty("os.name"), isLinuxAmd64());
CuVSProvider.provider().enableRMMPooledMemory(10, 60);
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Temporary to work around #1454

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.

Given that #1454 has been merged, we could consider removing this at a later date.

assumeTrue(isLinuxAmd64());
initializeRandom();
log.trace("Random context initialized for test.");
CuVSProvider.provider().enableRMMPooledMemory(10, 60);
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Temporary to work around #1454

public void setup() {
assumeTrue("not supported on " + System.getProperty("os.name"), isLinuxAmd64());
initializeRandom();
CuVSProvider.provider().enableRMMPooledMemory(10, 60);
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Temporary to work around #1454

@ldematte ldematte changed the title [WIP][Java] Bindings, tests and benchmarks for RMM pooled memory [REVIEW][Java] Bindings, tests and benchmarks for RMM pooled memory Nov 10, 2025
@ldematte ldematte marked this pull request as ready for review November 10, 2025 14:54
@ldematte ldematte requested a review from a team as a code owner November 10, 2025 14:54
@mythrocks
Copy link
Copy Markdown
Contributor

I've merged #1510, which seems to have introduced conflicts in the CagraBuildAndSearchIT.java file.

@ldematte
Copy link
Copy Markdown
Contributor Author

Thanks @mythrocks, I'll rebase

# Conflicts:
#	java/cuvs-java/src/main/java/com/nvidia/cuvs/spi/CuVSProvider.java
#	java/cuvs-java/src/main/java/com/nvidia/cuvs/spi/UnsupportedProvider.java
#	java/cuvs-java/src/main/java22/com/nvidia/cuvs/spi/JDKProvider.java
#	java/cuvs-java/src/test/java/com/nvidia/cuvs/CagraBuildAndSearchIT.java
#	java/cuvs-java/src/test/java/com/nvidia/cuvs/CuVSMatrixIT.java
@ldematte ldematte force-pushed the java/rmm-memory-pool-functions branch from d6a6f38 to 8cec4dc Compare November 18, 2025 08:22
@ldematte ldematte requested review from a team as code owners November 18, 2025 08:22
@ldematte ldematte requested a review from gforsyth November 18, 2025 08:22
@ldematte ldematte changed the base branch from main to release/25.12 November 18, 2025 08:23
@ldematte
Copy link
Copy Markdown
Contributor Author

@mythrocks I have rebased this onto 25.12 too

@mythrocks mythrocks added feature request New feature or request non-breaking Introduces a non-breaking change labels Nov 20, 2025
Copy link
Copy Markdown
Contributor

@mythrocks mythrocks left a comment

Choose a reason for hiding this comment

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

Yep, this looks good to me. Just need to include the copyright header in Utils.java.

@mythrocks mythrocks changed the title [REVIEW][Java] Bindings, tests and benchmarks for RMM pooled memory [Java] Bindings, tests and benchmarks for RMM pooled memory Nov 20, 2025
@mythrocks mythrocks removed request for a team November 20, 2025 23:07
@mythrocks mythrocks removed the request for review from gforsyth November 20, 2025 23:08
@mythrocks
Copy link
Copy Markdown
Contributor

I've taken @rapidsai/cuvs-python-codeowners, @rapidsai/ci-codeowners, etc. off of this review. The changes are all in Java, and straightforward.

@mythrocks
Copy link
Copy Markdown
Contributor

/ok to test d74f38e

@@ -0,0 +1,53 @@
package com.nvidia.cuvs;
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.

Need to include the copyright header here.

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.

Let me see if that change helps.

@mythrocks mythrocks self-requested a review November 20, 2025 23:40
@mythrocks
Copy link
Copy Markdown
Contributor

/ok to test bd8670a

@mythrocks
Copy link
Copy Markdown
Contributor

mythrocks commented Nov 21, 2025

Hmm. Odd C++ compile error:

/home/coder/cuvs/cpp/build/pip/cuda-13.0/release/_deps/raft-src/cpp/include/raft/cluster/kmeans.cuh(97): error: SamplingOp is not a template
                        SamplingOp<DataT, IndexT>& select_op,

Included from kmeans_common.cuh, and it's certainly a class-template.

@mythrocks
Copy link
Copy Markdown
Contributor

/ok to test bd8670a

1 similar comment
@mythrocks
Copy link
Copy Markdown
Contributor

/ok to test bd8670a

@mythrocks
Copy link
Copy Markdown
Contributor

/ok to test fc7b55c

@mythrocks
Copy link
Copy Markdown
Contributor

/ok to test ed92aa9

@mythrocks
Copy link
Copy Markdown
Contributor

/ok to test 6900dfe


@Test
public void testPooledByteDeviceDatasetRowGetAccess() throws Throwable {
withPooledMemory(this::testByteDeviceDatasetRowGetAccess);
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.

This is an elegant way to express this test.

@mythrocks
Copy link
Copy Markdown
Contributor

/merge

@rapids-bot rapids-bot Bot merged commit cf5309a into rapidsai:release/25.12 Dec 1, 2025
172 of 174 checks passed
copy-pr-bot Bot pushed a commit that referenced this pull request Dec 2, 2025
Exposes `cuvsRMMPoolMemoryResourceEnable`/`cuvsRMMMemoryResourceReset` via the Java API, with tests and benchmarks

Authors:
  - Lorenzo Dematté (https://github.com/ldematte)
  - MithunR (https://github.com/mythrocks)

Approvers:
  - MithunR (https://github.com/mythrocks)

URL: #1453
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feature request New feature or request non-breaking Introduces a non-breaking change

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

2 participants