NVIDIA cuVS: A Library for Unstructured Data Processing on the GPU

View as Markdown

NVIDIA cuVS is a GPU-accelerated library for nearest neighbors, vector compression, and clustering. It provides both core building blocks for constructing new algorithms and end-to-end algorithms that can be used directly or through a growing list of integrations.

Useful Resources

What is NVIDIA cuVS?

NVIDIA cuVS contains state-of-the-art implementations of several algorithms for running approximate and exact nearest neighbors, vector compression, and clustering on the GPU. It can be used directly or through the various databases and other libraries that have integrated it. The primary goal of NVIDIA cuVS is to simplify the use of GPUs for vector similarity search, preprocessing, and clustering. For a broader introduction, start with the introductory materials in Getting Started.

Vector search is an information retrieval method for finding semantically similar items in embedding spaces, especially when working with multimedia embeddings created from unstructured data. It is also used in data mining and machine learning tasks and comprises an important step in many clustering and visualization algorithms like UMAP, t-SNE, K-means, and HDBSCAN.

Finally, faster vector search enables interactions between dense vectors and graphs. Converting a pile of dense vectors into nearest neighbors graphs unlocks the entire world of graph analysis algorithms, such as those found in GraphBLAS and cuGraph.

Where is NVIDIA cuVS used?

These are common places where vector search appears. For more examples, see Use-cases and Integrations.

  • Generative AI: RAG & Agentic AI
  • Recommender systems
  • Computer vision
  • Image search
  • Text search
  • Audio search
  • Molecular search
  • Model Training: LLMs & Transformers

Data mining

  • Clustering algorithms
  • Visualization algorithms
  • Sampling algorithms
  • Class balancing
  • Ensemble methods
  • k-NN graph construction

Why NVIDIA cuVS?

There are several benefits to using NVIDIA cuVS and GPUs for vector search, including

  1. Fast index build
  2. Latency critical and high throughput search
  3. Parameter tuning
  4. Cost savings
  5. Interoperability (build on GPU, deploy on CPU)
  6. Multiple language support
  7. Building blocks for composing new or accelerating existing algorithms

In addition to the items above, NVIDIA cuVS shoulders the responsibility of keeping non-trivial accelerated code up to date as new NVIDIA architectures and CUDA versions are released. This provides a delightful development experience, guaranteeing that any libraries, databases, or applications built on top of it will always be receiving the best performance and scale.

NVIDIA cuVS Technology Stack

NVIDIA cuVS is built on top of the RAPIDS RAFT library of high performance machine learning primitives and provides all the necessary routines for vector search and clustering on the GPU.

NVIDIA cuVS is built on top of low-level CUDA libraries and provides many important routines that enable vector search and clustering on the GPU