-
Notifications
You must be signed in to change notification settings - Fork 217
Cuvs lucene move #2353
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
imotov
wants to merge
139
commits into
NVIDIA:main
Choose a base branch
from
imotov:cuvs-lucene-move
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Cuvs lucene move #2353
Changes from all commits
Commits
Show all changes
139 commits
Select commit
Hold shift + click to select a range
8e3c3f0
Create LICENSE
cjnolet 8ec0201
Initial commit
cjnolet 39de07f
Create .pre-commit-config.yaml
cjnolet 6020469
Updates
cjnolet 98d5f03
update copyright
benfred 42e5d02
standardize license text
benfred 2b2ae08
Create CONTRIBUTING.md
cjnolet cdfeca0
Update README.md
cjnolet c5cf67b
Adding codeowners
cjnolet d3ff041
feat: add ops-bot config
gforsyth ad8813f
Add the Spotless Maven plugin (and other initial changes) (NVIDIA/cuv…
narangvivek10 9ed4a68
Update package names (NVIDIA/cuvs-lucene#9)
narangvivek10 054fafb
Updates to adapt with cuVS-Java API changes (NVIDIA/cuvs-lucene#10)
narangvivek10 2bbd0e3
Merge pull request NVIDIA/cuvs-lucene#12 from dantegd/fea-add-ci
dantegd 906cca6
Enable CI (NVIDIA/cuvs-lucene#15)
dantegd 9e23cba
simplify build scripts (NVIDIA/cuvs-lucene#19)
jameslamb 1509652
Build and test with CUDA 13.0 (NVIDIA/cuvs-lucene#20)
jameslamb d8af7fe
Use branch-25.10 again (NVIDIA/cuvs-lucene#21)
jameslamb 68f04dc
Configure repo for automatic release notes generation (NVIDIA/cuvs-lu…
AyodeAwe 22c71b2
Fix Tests/CI, refactor merge to call CAGRA's merge(), implement CAGRA…
chatman 19aadc1
CAGRA to HNSW serialization and search on CPU (NVIDIA/cuvs-lucene#16)
narangvivek10 1bed6b2
Remove hnswlib index (NVIDIA/cuvs-lucene#24)
narangvivek10 d52d250
Update pom.xml - Add meta information, configure Maven Surefire Plugi…
narangvivek10 29f8dfd
Removing 10.2 codecs to avoid backward compatibility issues during Lu…
narangvivek10 d642fec
Avoid copying vectors to heap before creating dataset matrix (NVIDIA/…
chatman f4bd682
Upgrade to cuvs-java maven central artifacts, single-vector bugfix (N…
chatman e3c53e3
Use main branch (NVIDIA/cuvs-lucene#32)
rockhowse d0649a7
Use main shared-workflows branch (NVIDIA/cuvs-lucene#33)
rockhowse 2e28888
Add Javadocs and configure the Apache Maven Javadoc Plugin (NVIDIA/cu…
narangvivek10 f15d934
Fix cuvs-lucene Github artifact publication (NVIDIA/cuvs-lucene#34)
mythrocks 2e5dc2b
Add support to build the sources jar. (NVIDIA/cuvs-lucene#44)
mythrocks b00e7d0
Use SPDX for all copyright headers (NVIDIA/cuvs-lucene#47)
narangvivek10 2f8977c
updated update-version.sh to handle release branch version changes (N…
rockhowse 9a88a3b
Merge pull request NVIDIA/cuvs-lucene#51 from rapidsai/version-update…
AyodeAwe 339f564
Update for release branch release/25.12
AyodeAwe ac8f525
Modify CI pipeline to use latest cuvs-java instead of the one release…
narangvivek10 c1837ba
Use strict priority in CI conda tests (NVIDIA/cuvs-lucene#53)
bdice 0025e3d
Setup Java Code Coverage and add more tests (NVIDIA/cuvs-lucene#42)
narangvivek10 65a8b65
Lucene version agnostic vector format implementation (NVIDIA/cuvs-luc…
narangvivek10 fceaf1a
Modify CI pipeline to use latest cuvs-java instead of the one release…
narangvivek10 de0b8e4
Use strict priority in CI conda tests (NVIDIA/cuvs-lucene#53)
bdice ba1ed61
Setup Java Code Coverage and add more tests (NVIDIA/cuvs-lucene#42)
narangvivek10 4446492
Lucene version agnostic vector format implementation (NVIDIA/cuvs-luc…
narangvivek10 38d4355
Make RAPIDS_BRANCH have release/25.12
narangvivek10 ef5c64c
Use strict priority in CI conda tests (NVIDIA/cuvs-lucene#60)
bdice 3cb76cf
Merge pull request NVIDIA/cuvs-lucene#56 from SearchScale/vivek/bring…
gforsyth 54f89cd
Updates to the logging setup and adapt with latest cuvs-java changes …
narangvivek10 fae2db0
Merge release/25.12 into main
narangvivek10 1453189
Enable merge barriers (NVIDIA/cuvs-lucene#68)
KyleFromNVIDIA ca71f92
Merge branch 'main' into main-merge-release/25.12
narangvivek10 d4a3a83
Merge pull request NVIDIA/cuvs-lucene#66 from SearchScale/main-merge-…
rapids-bot[bot] 43b4986
Fix for issue - pipeline marked successful even when the build failed…
narangvivek10 432400f
Update spotless config - remove license header enforcement (NVIDIA/cu…
narangvivek10 46ce1d5
Fix groupId in build.sh and remove warnings (NVIDIA/cuvs-lucene#69)
narangvivek10 2e191ff
Setup examples (NVIDIA/cuvs-lucene#72)
narangvivek10 43225c7
Refactor GPUPerLeafCuVSKnnCollector, plug in iTopK and search width v…
narangvivek10 2413df0
Setup JMH (NVIDIA/cuvs-lucene#71)
narangvivek10 9a6567b
Cleanup FilterCuVSProvider (NVIDIA/cuvs-lucene#77)
narangvivek10 fb17889
Fix spotless plugin configuration for examples (NVIDIA/cuvs-lucene#88)
narangvivek10 8bb8171
build and test against CUDA 13.1.0 (NVIDIA/cuvs-lucene#89)
jameslamb 4b3adc8
Fix for result returned was not in topk (NVIDIA/cuvs-lucene#94)
narangvivek10 238f925
Setup ThreadLocal based CuVSResources usage (NVIDIA/cuvs-lucene#87)
narangvivek10 2546fc2
Use main shared-workflows branch (NVIDIA/cuvs-lucene#96)
jameslamb 9b87665
Revert "Prepare release/26.02"
AyodeAwe 7a0f494
Prepare release/26.02
AyodeAwe 2131359
Update to 26.04 (NVIDIA/cuvs-lucene#98)
AyodeAwe db06f9d
Add quantization vector formats, writers, and codecs (NVIDIA/cuvs-luc…
punAhuja af0c6ff
Merge pull request NVIDIA/cuvs-lucene#100 from rapidsai/release/26.02
GPUtester 4222db2
fix(build): build package on merge to `release/*` branch (NVIDIA/cuvs…
gforsyth 17eebcb
Merge pull request NVIDIA/cuvs-lucene#102 from rapidsai/release/26.02
GPUtester 3d3043b
Make CAGRA graph build algo configurable (NVIDIA/cuvs-lucene#73)
narangvivek10 bef3a47
Merge pull request NVIDIA/cuvs-lucene#107 from rapidsai/release/26.02
GPUtester 5f97c26
Revise README with build and test details (NVIDIA/cuvs-lucene#108)
cjnolet 3bb8782
Update readme (NVIDIA/cuvs-lucene#111)
narangvivek10 9388dfd
Merge pull request NVIDIA/cuvs-lucene#112 from rapidsai/release/26.02
GPUtester cb4fe5a
Add a multi-threaded test for searching on the GPU (NVIDIA/cuvs-lucen…
narangvivek10 04cef69
Merge pull request NVIDIA/cuvs-lucene#113 from rapidsai/release/26.02
GPUtester 7a2bd19
use CUDA 13.1.1, update pre-commit hooks (NVIDIA/cuvs-lucene#116)
jameslamb 3d65177
Setup parameter validation and encapsulate parameters (NVIDIA/cuvs-lu…
narangvivek10 a1753c1
check-nightly-ci: update to new version (NVIDIA/cuvs-lucene#119)
jameslamb 53fb7e9
Make CAGRA build algo configurable for the AcceleratedHNSW (NVIDIA/cu…
narangvivek10 79c041c
Revert "Prepare release/26.04"
AyodeAwe 86d8e84
Prepare release/26.04
AyodeAwe d3700d8
Update to 26.06 (NVIDIA/cuvs-lucene#123)
AyodeAwe cf6d755
Code improvements - Index and search on the GPU API (NVIDIA/cuvs-luce…
narangvivek10 a3ad02e
Code improvements - AcceleratedHNSW API (NVIDIA/cuvs-lucene#115)
narangvivek10 77cdc53
Merge release/26.04 into main
AyodeAwe b3784f5
Resolve forward-merge release/26.04 into main (NVIDIA/cuvs-lucene#130)
AyodeAwe d18d9c7
Introduce a heuristic approach to CAGRA build algorithm selection and…
narangvivek10 8426eda
Build and test with CUDA 13.2.0 (NVIDIA/cuvs-lucene#144)
bdice 982f445
fix(ci): resolve all zizmor findings and add zizmor pre-commit checks…
gforsyth 5971bfe
Prepare release/26.06
jolorunyomi 05e9a4c
Revert "Prepare release/26.06"
jolorunyomi dd3f051
Update to 26.08.00
jolorunyomi 342e62e
Merge pull request NVIDIA/cuvs-lucene#148 from rapidsai/version-updat…
jolorunyomi 39910bf
Add SECURITY.md (NVIDIA/cuvs-lucene#154)
jameslamb 3b5a084
use GCS mirror for Maven, fix benchmarks version, other small changes…
jameslamb 8ffc410
Build and test with CUDA 13.3.0 (NVIDIA/cuvs-lucene#164)
bdice ff0878c
Update CODEOWNERS team names for rapidsai->NVIDIA migration
josephine-wolf-oberholtzer 535aaf8
Add verify-codeowners pre-commit check
josephine-wolf-oberholtzer dca9597
Disable verify-codeowners check
josephine-wolf-oberholtzer 534a962
Merge pull request NVIDIA/cuvs-lucene#169 from josephine-wolf-oberhol…
josephine-wolf-oberholtzer 2b95f5a
cuvs-lucene-137: increase max-number of HNSW layers in CAGRA_HNSW's c…
nvzm123 b7048c4
Revert "Prepare release/26.08"
jolorunyomi 69bb9da
Prepare release/26.08
jolorunyomi abc5517
Update to 26.10.00
jolorunyomi a0108af
Merge pull request NVIDIA/cuvs-lucene#176 from NVIDIA/version-update-…
jolorunyomi 93ccb67
Upgrade cuda 12.9.1 -> 12.9.2 (NVIDIA/cuvs-lucene#179)
imotov d80835c
Update README.md (NVIDIA/cuvs-lucene#136)
aamijar fb5113a
Merge pull request NVIDIA/cuvs-lucene#180 from NVIDIA/release/26.08
GPUtester ec367ed
Backport NVIDIA/cuvs-lucene#179 Upgrade cuda 12.9.1 -> 12.9.2 to 26.0…
imotov 6093019
Merge pull request NVIDIA/cuvs-lucene#183 from NVIDIA/release/26.08
GPUtester 8790636
Use a proper libcuvs library when RAPIDS_VERSION points to a PR branc…
imotov e273e8d
Merge pull request NVIDIA/cuvs-lucene#184 from NVIDIA/release/26.08
GPUtester 20f945b
Implement dataset-based CAGRA params in FilterCuVSProvider (NVIDIA/cu…
jamxia155 e5120ae
Merge pull request NVIDIA/cuvs-lucene#188 from NVIDIA/release/26.08
GPUtester 7cfbd74
enforce 'yamllint' checks, expand changed-files exclusions (NVIDIA/cu…
jameslamb 80b003e
remove hard-coded CI matrices (NVIDIA/cuvs-lucene#189)
jameslamb 859c1a9
Multi segment cagra search (NVIDIA/cuvs-lucene#133)
jamxia155 2f2e29e
Merge pull request NVIDIA/cuvs-lucene#190 from NVIDIA/release/26.08
GPUtester 3751a1b
Fix cuvs-lucene to work with NVIDIA/cuvs#1846
imotov 153137d
Switch RAPIDS_BRANCH to release/26.08
imotov 6a17e86
Merge pull request NVIDIA/cuvs-lucene#192 from imotov/fix-cuvs-lucene…
cjnolet be6b4f3
Merge pull request NVIDIA/cuvs-lucene#193 from NVIDIA/release/26.08
GPUtester a847edd
Merge main branch of 'cuvs-lucene' into cuvs
imotov fa46aed
Move: Delete redundant cuvs-lucene project files
imotov 317318a
Move: Update build script
imotov 9737c2e
Move: Update CI scripts
imotov b58979f
Move: fix update-version.sh
imotov 3d68cd1
Move: Update READMEs
imotov 39d1633
Move: sccache is not needed in this java build
imotov 2760d2a
Move: Bring spotless application in line with cuvs-lucene
imotov c20e685
Move: add ignored words to codespell config
imotov b57e9c9
Redo: pre-commit run
imotov f251a6a
Move: avoid maven repo - it rate limits
imotov de5e9f1
Reuse build matrix in .github/workflows/build.yaml
imotov 0686a3f
Reuse build matrix in pr and test workflows
imotov e4c8612
Don't trigger cpp tests by java, lucene and other language changes
imotov d3d8475
Merge branch 'main' into cuvs-lucene-move
imotov File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
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
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
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
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
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,98 @@ | ||
| #!/bin/bash | ||
| # SPDX-FileCopyrightText: Copyright (c) 2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. | ||
| # SPDX-License-Identifier: Apache-2.0 | ||
|
|
||
| set -euo pipefail | ||
|
|
||
| # Takes the name of the cuvs-java artifact uploaded by the Java job, plus an optional | ||
| # --run-java-tests flag. | ||
| # TODO: Remove the flag handling when build and test workflows are separated, | ||
| # and test_lucene.sh no longer calls build_lucene.sh | ||
| # ref: https://github.com/rapidsai/cuvs/issues/868 | ||
| EXTRA_BUILD_ARGS=() | ||
| CUVS_JAVA_ARTIFACT="" | ||
| for arg in "$@"; do | ||
| case "${arg}" in | ||
| --run-java-tests) EXTRA_BUILD_ARGS+=("${arg}") ;; | ||
| *) CUVS_JAVA_ARTIFACT="${arg}" ;; | ||
| esac | ||
| done | ||
|
|
||
| if [ -z "${CUVS_JAVA_ARTIFACT}" ]; then | ||
| echo "Error: name of the cuvs-java artifact is missing" >&2 | ||
| exit 1 | ||
| fi | ||
|
|
||
| if [ -e "/opt/conda/etc/profile.d/conda.sh" ]; then | ||
| . /opt/conda/etc/profile.d/conda.sh | ||
| fi | ||
|
|
||
| rapids-logger "Configuring conda strict channel priority" | ||
| conda config --set channel_priority strict | ||
|
|
||
| rapids-logger "Downloading artifacts from previous jobs" | ||
| CPP_CHANNEL=$(rapids-download-from-github "$(rapids-artifact-name conda_cpp libcuvs cuvs --cuda "$RAPIDS_CUDA_VERSION")") | ||
| CUVS_JAVA_DIR=$(rapids-download-from-github "${CUVS_JAVA_ARTIFACT}") | ||
|
|
||
| rapids-logger "Generate Java testing dependencies" | ||
|
|
||
| ENV_YAML_DIR="$(mktemp -d)" | ||
|
|
||
| rapids-dependency-file-generator \ | ||
| --output conda \ | ||
| --file-key java \ | ||
| --prepend-channel "${CPP_CHANNEL}" \ | ||
| --matrix "cuda=${RAPIDS_CUDA_VERSION%.*};arch=$(arch)" | tee "${ENV_YAML_DIR}/env.yaml" | ||
|
|
||
| rapids-mamba-retry env create --yes -f "${ENV_YAML_DIR}/env.yaml" -n java | ||
|
|
||
| # Temporarily allow unbound variables for conda activation. | ||
| set +u | ||
| conda activate java | ||
| set -u | ||
|
|
||
| rapids-print-env | ||
|
|
||
| # libcuvs comes from the conda environment here. cuvs-lucene depends on the plain cuvs-java jar, | ||
| # which bundles no native libraries, so the JVM resolves libcuvs_c.so through the dynamic loader | ||
| # and the environment's lib directory has to be on LD_LIBRARY_PATH. | ||
| export LD_LIBRARY_PATH="${CONDA_PREFIX}/lib${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}" | ||
|
|
||
| rapids-logger "Install the cuvs-java artifact into the local Maven repository" | ||
|
|
||
| # cuvs-lucene resolves cuvs-java from the local Maven repository. Rather than rebuilding the Java | ||
| # bindings here, install the jar built by the Java job. Its pom.xml travels with the artifact and | ||
| # supplies the coordinates, so no version needs to be hardcoded. | ||
| CUVS_JAVA_POM="${CUVS_JAVA_DIR}/pom.xml" | ||
| if [ ! -f "${CUVS_JAVA_POM}" ]; then | ||
| echo "Could not find pom.xml in the cuvs-java artifact at ${CUVS_JAVA_DIR}" >&2 | ||
| exit 1 | ||
| fi | ||
|
|
||
| # The artifact also carries the per-architecture native jar and the sources/javadoc/test jars; | ||
| # cuvs-lucene depends on the plain one. | ||
| mapfile -t CUVS_JAVA_JARS < <(find "${CUVS_JAVA_DIR}" -maxdepth 1 -name 'cuvs-java-*.jar' \ | ||
| ! -name '*-sources.jar' ! -name '*-javadoc.jar' ! -name '*-tests.jar' ! -name '*-cuda*.jar') | ||
| if [ "${#CUVS_JAVA_JARS[@]}" -ne 1 ]; then | ||
| echo "Expected exactly one cuvs-java jar in ${CUVS_JAVA_DIR}, found: ${CUVS_JAVA_JARS[*]:-none}" >&2 | ||
| exit 1 | ||
| fi | ||
|
|
||
| # Install cuvs jar into .m2, cd is needed to pick up pom.xml in order to avoid rate limit of main maven repo | ||
| pushd java/cuvs-lucene | ||
| mvn --batch-mode install:install-file -Dfile="${CUVS_JAVA_JARS[0]}" -DpomFile="${CUVS_JAVA_POM}" | ||
| popd | ||
|
|
||
| EXITCODE=0 | ||
| trap "EXITCODE=1" ERR | ||
| set +e | ||
|
|
||
| rapids-logger "Run cuvs-lucene build" | ||
|
|
||
| RAPIDS_CUDA_MAJOR="${RAPIDS_CUDA_VERSION%%.*}" | ||
| export RAPIDS_CUDA_MAJOR | ||
|
|
||
| bash ./build.sh lucene "${EXTRA_BUILD_ARGS[@]}" | ||
|
|
||
| rapids-logger "Test script exiting with value: $EXITCODE" | ||
| exit ${EXITCODE} |
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
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
Oops, something went wrong.
Oops, something went wrong.
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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you do another pass over these lists please?
Most of them should include both
ci/build_lucene.shandci/test_lucene.sh, I think.For example, this line I'm commenting on is in a group called
test_cppwhich controls whether cuVS's C++ tests need to run in CI. A PR that only changesci/build_lucene.shshouldn't at all affect the output of those tests.I know these lists can be a little tedious to maintain, but it's really worth it... cuVS's C++ test jobs can take 3+ hours to run 😫
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That makes sense, but if I understand the logic correctly
test_cppshould also include exclusions forci/build_go.sh,ci/build_java.sh,!ci/build_python.sh,!ci/build_rust.sh, shouldn't it?