-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Open
Labels
Description
Description
- NVIDIA's cuVS library (https://github.com/rapidsai/cuvs) is a state-of-the-art vector search library. It supports fast indexing and search using GPUs.
- cuVS will provide a java api in 25.02 : https://github.com/rapidsai/cuvs/
- Support use-case such as:
- index and search both on GPU
- index on GPU, search on CPU
- flat brute force and graph based
In-progress PR
Architecture
Tasks:
- TestCuVS works via IDE, but not via gradle
(some native access security issues). - Make this branch work with released version of cuvs-java (25.02), once it is released.
- remove mavenLocal and replace artifact metadata, etc.
- Extend base format test, which covers many many format api and behavioural tests
- Examine and determine location of extracted native library
- Examine and determine location of all temporary file
- Examine heap usage
- Move float32 vectors off-heap
- Lucene supports various different similarity functions,
EUCLIDEAN,DOT_PRODUCT,COSINE,MAXIMUM_INNER_PRODUCT. Evaluate mapping these to cuVS index params and/or which to support. - Lucene scores are are between 1 and 0, with the former being the most relevant. Ensure that scores are consistent across all supported similarities.
- How to expose advanced query params, like
iTopK,searchWidth,thread, etc, if at all. One way is through a Do we customCuVSKnnFloatVectorQuery. Maybe there are other (better) ways, if needed at all. - Publish benchmarks.
Contributors: @narangvivek10, @punAhuja, @chatman, @ChrisHegarty, along with help from @cjnolet.
zacksiri and uschindler
