diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml
index a2f69e8..e7b7d90 100644
--- a/.github/workflows/build.yaml
+++ b/.github/workflows/build.yaml
@@ -42,7 +42,7 @@ jobs:
matrix:
cuda_version:
- '12.9.1'
- - '13.0.0'
+ - '13.0.2'
with:
build_type: ${{ inputs.build_type || 'branch' }}
branch: ${{ inputs.branch }}
diff --git a/.github/workflows/pr.yaml b/.github/workflows/pr.yaml
index e8c1503..7d7ac7d 100644
--- a/.github/workflows/pr.yaml
+++ b/.github/workflows/pr.yaml
@@ -68,7 +68,7 @@ jobs:
matrix:
cuda_version:
- '12.9.1'
- - '13.0.0'
+ - '13.0.2'
with:
build_type: pull-request
node_type: "gpu-l4-latest-1"
diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml
index 65b3a4a..c6019f2 100644
--- a/.github/workflows/test.yaml
+++ b/.github/workflows/test.yaml
@@ -31,7 +31,7 @@ jobs:
matrix:
cuda_version:
- '12.9.1'
- - '13.0.0'
+ - '13.0.2'
with:
build_type: ${{ inputs.build_type }}
branch: ${{ inputs.branch }}
diff --git a/.gitignore b/.gitignore
index 32d6a5b..f5287f1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,3 +4,4 @@
*.jar
target
**/.DS_Store
+cuvs-workdir
diff --git a/RAPIDS_BRANCH b/RAPIDS_BRANCH
new file mode 100644
index 0000000..ba2906d
--- /dev/null
+++ b/RAPIDS_BRANCH
@@ -0,0 +1 @@
+main
diff --git a/build.sh b/build.sh
index a6fea7a..e9b68eb 100755
--- a/build.sh
+++ b/build.sh
@@ -15,6 +15,24 @@ function hasArg {
(( NUMARGS != 0 )) && (echo " ${ARGS} " | grep -q " $1 ")
}
+if hasArg --build-cuvs-java; then
+ CUVS_WORKDIR="cuvs-workdir"
+ CUVS_GIT_REPO="https://github.com/rapidsai/cuvs.git"
+ if [[ -d "$CUVS_WORKDIR" && -n "$(ls -A "$CUVS_WORKDIR")" ]]; then
+ echo "Directory '$CUVS_WORKDIR' exists and is not empty."
+ pushd $CUVS_WORKDIR
+ git pull
+ else
+ BRANCH=$(cat "RAPIDS_BRANCH")
+ echo "Directory '$CUVS_WORKDIR' does not exist or is empty. Cloning the cuvs's '$BRANCH' branch."
+ # Correct branch selection is crucial to avoid version mismatch issues when testing.
+ git clone --branch "$BRANCH" $CUVS_GIT_REPO $CUVS_WORKDIR
+ pushd $CUVS_WORKDIR
+ fi
+ ./build.sh java
+ popd
+fi
+
MAVEN_VERIFY_ARGS=()
if ! hasArg --run-java-tests; then
MAVEN_VERIFY_ARGS=("-DskipTests")
diff --git a/ci/build_java.sh b/ci/build_java.sh
index 2f61f4b..b586ec9 100755
--- a/ci/build_java.sh
+++ b/ci/build_java.sh
@@ -13,6 +13,9 @@ if [[ "${1:-}" == "--run-java-tests" ]]; then
EXTRA_BUILD_ARGS+=("--run-java-tests")
fi
+# Always build cuvs-java when running the pipeline
+EXTRA_BUILD_ARGS+=("--build-cuvs-java")
+
# shellcheck disable=SC1091
. /opt/conda/etc/profile.d/conda.sh
diff --git a/ci/release/update-version.sh b/ci/release/update-version.sh
index 61848ed..afe73f6 100755
--- a/ci/release/update-version.sh
+++ b/ci/release/update-version.sh
@@ -86,8 +86,10 @@ PATCH_PEP440=$(python -c "from packaging.version import Version; print(Version('
# Log update context
if [[ "${RUN_CONTEXT}" == "main" ]]; then
+ RAPIDS_BRANCH_NAME="main"
echo "Preparing development branch update $CURRENT_TAG => $NEXT_FULL_TAG (targeting main branch)"
elif [[ "${RUN_CONTEXT}" == "release" ]]; then
+ RAPIDS_BRANCH_NAME="release/${NEXT_SHORT_TAG}"
echo "Preparing release branch update $CURRENT_TAG => $NEXT_FULL_TAG (targeting release/${NEXT_SHORT_TAG} branch)"
fi
@@ -98,6 +100,7 @@ function sed_runner() {
# Centralized version file update
echo "${NEXT_FULL_TAG}" > VERSION
+echo "${RAPIDS_BRANCH_NAME}" > RAPIDS_BRANCH
# Update Java version
NEXT_FULL_JAVA_TAG="${NEXT_SHORT_TAG}.${PATCH_PEP440}"
@@ -111,5 +114,6 @@ for FILE in dependencies.yaml conda/environments/*.yaml; do
done
for FILE in .github/workflows/*.yaml; do
+ sed_runner "/shared-workflows/ s|@.*|@${RAPIDS_BRANCH_NAME}|g" "${FILE}"
sed_runner "s/:[0-9]*\\.[0-9]*-/:${NEXT_SHORT_TAG}-/g" "${FILE}"
done
diff --git a/conda/environments/all_cuda-129_arch-aarch64.yaml b/conda/environments/all_cuda-129_arch-aarch64.yaml
index 2f45506..9f1778f 100644
--- a/conda/environments/all_cuda-129_arch-aarch64.yaml
+++ b/conda/environments/all_cuda-129_arch-aarch64.yaml
@@ -4,6 +4,7 @@ channels:
- conda-forge
- rapidsai-nightly
dependencies:
+- cmake>=3.30.4
- cuda-cudart-dev
- cuda-nvtx-dev
- cuda-profiler-api
@@ -14,5 +15,6 @@ dependencies:
- libcusparse-dev
- libcuvs==26.02.*
- maven
+- ninja
- openjdk=22.*
name: all_cuda-129_arch-aarch64
diff --git a/conda/environments/all_cuda-129_arch-x86_64.yaml b/conda/environments/all_cuda-129_arch-x86_64.yaml
index 72c66a2..64cacee 100644
--- a/conda/environments/all_cuda-129_arch-x86_64.yaml
+++ b/conda/environments/all_cuda-129_arch-x86_64.yaml
@@ -4,6 +4,7 @@ channels:
- conda-forge
- rapidsai-nightly
dependencies:
+- cmake>=3.30.4
- cuda-cudart-dev
- cuda-nvtx-dev
- cuda-profiler-api
@@ -14,5 +15,6 @@ dependencies:
- libcusparse-dev
- libcuvs==26.02.*
- maven
+- ninja
- openjdk=22.*
name: all_cuda-129_arch-x86_64
diff --git a/conda/environments/all_cuda-130_arch-aarch64.yaml b/conda/environments/all_cuda-130_arch-aarch64.yaml
index a87f9f2..0edaf41 100644
--- a/conda/environments/all_cuda-130_arch-aarch64.yaml
+++ b/conda/environments/all_cuda-130_arch-aarch64.yaml
@@ -4,6 +4,7 @@ channels:
- conda-forge
- rapidsai-nightly
dependencies:
+- cmake>=3.30.4
- cuda-cudart-dev
- cuda-nvtx-dev
- cuda-profiler-api
@@ -14,5 +15,6 @@ dependencies:
- libcusparse-dev
- libcuvs==26.02.*
- maven
+- ninja
- openjdk=22.*
name: all_cuda-130_arch-aarch64
diff --git a/conda/environments/all_cuda-130_arch-x86_64.yaml b/conda/environments/all_cuda-130_arch-x86_64.yaml
index 6727f79..7bc25ec 100644
--- a/conda/environments/all_cuda-130_arch-x86_64.yaml
+++ b/conda/environments/all_cuda-130_arch-x86_64.yaml
@@ -4,6 +4,7 @@ channels:
- conda-forge
- rapidsai-nightly
dependencies:
+- cmake>=3.30.4
- cuda-cudart-dev
- cuda-nvtx-dev
- cuda-profiler-api
@@ -14,5 +15,6 @@ dependencies:
- libcusparse-dev
- libcuvs==26.02.*
- maven
+- ninja
- openjdk=22.*
name: all_cuda-130_arch-x86_64
diff --git a/dependencies.yaml b/dependencies.yaml
index b846b6d..3443a2f 100644
--- a/dependencies.yaml
+++ b/dependencies.yaml
@@ -75,5 +75,7 @@ dependencies:
common:
- output_types: conda
packages:
+ - cmake>=3.30.4
- maven
+ - ninja
- openjdk=22.*
diff --git a/pom.xml b/pom.xml
index 75445b9..1602868 100644
--- a/pom.xml
+++ b/pom.xml
@@ -41,8 +41,6 @@
21
-
-
org.apache.lucene
diff --git a/src/main/java/com/nvidia/cuvs/lucene/FilterCuVSProvider.java b/src/main/java/com/nvidia/cuvs/lucene/FilterCuVSProvider.java
index 01752d1..aaf7221 100644
--- a/src/main/java/com/nvidia/cuvs/lucene/FilterCuVSProvider.java
+++ b/src/main/java/com/nvidia/cuvs/lucene/FilterCuVSProvider.java
@@ -6,14 +6,19 @@
import com.nvidia.cuvs.BruteForceIndex;
import com.nvidia.cuvs.CagraIndex;
+import com.nvidia.cuvs.CagraIndexParams;
+import com.nvidia.cuvs.CagraIndexParams.CuvsDistanceType;
+import com.nvidia.cuvs.CagraIndexParams.HnswHeuristicType;
import com.nvidia.cuvs.CuVSMatrix;
import com.nvidia.cuvs.CuVSMatrix.Builder;
import com.nvidia.cuvs.CuVSMatrix.DataType;
import com.nvidia.cuvs.CuVSResources;
import com.nvidia.cuvs.HnswIndex;
+import com.nvidia.cuvs.HnswIndexParams;
import com.nvidia.cuvs.spi.CuVSProvider;
import java.lang.invoke.MethodHandle;
import java.nio.file.Path;
+import java.util.logging.Level;
/*package-private*/ class FilterCuVSProvider implements CuVSProvider {
@@ -114,4 +119,28 @@ public com.nvidia.cuvs.TieredIndex.Builder newTieredIndexBuilder(CuVSResources c
throws UnsupportedOperationException {
return delegate.newTieredIndexBuilder(cuVSResources);
}
+
+ @Override
+ public CagraIndexParams cagraIndexParamsFromHnswParams(
+ long arg0, long arg1, int arg2, int arg3, HnswHeuristicType arg4, CuvsDistanceType arg5) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public Level getLogLevel() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public void setLogLevel(Level arg0) {
+ // TODO Auto-generated method stub
+ }
+
+ @Override
+ public HnswIndex hnswIndexFromCagra(HnswIndexParams arg0, CagraIndex arg1) throws Throwable {
+ // TODO Auto-generated method stub
+ return null;
+ }
}