Attention
The vector search and clustering algorithms in RAFT are being migrated to a new library dedicated to vector search called cuVS. We will continue to support the vector search algorithms in RAFT during this move, but will no longer update them after the RAPIDS 24.06 (June) release. We plan to complete the migration by RAPIDS 24.08 (August) release.
RAPIDS RAFT: Reusable Accelerated Functions and Tools for Vector Search and More#
Useful Resources#
Example Notebooks: Example Jupyter notebooks
RAPIDS Community: Get help, contribute, and collaborate.
GitHub repository: Download the RAFT source code.
Issue tracker: Report issues or request features.
What is RAFT?#
RAFT contains fundamental widely-used algorithms and primitives for machine learning and information retrieval. The algorithms are CUDA-accelerated and form building blocks for more easily writing high performance applications.
By taking a primitives-based approach to algorithm development, RAFT
accelerates algorithm construction time
reduces the maintenance burden by maximizing reuse across projects, and
centralizes core reusable computations, allowing future optimizations to benefit all algorithms that use them.
While not exhaustive, the following general categories help summarize the accelerated building blocks that RAFT contains:
Category |
Examples |
---|---|
Nearest Neighbors |
pairwise distances, vector search, epsilon neighborhoods, neighborhood graph construction |
Data Formats |
sparse & dense, conversions, data generation |
Dense Operations |
linear algebra, matrix and vector operations, slicing, norms, factorization, least squares, svd & eigenvalue problems |
Sparse Operations |
linear algebra, eigenvalue problems, slicing, norms, reductions, factorization, symmetrization, components & labeling |
Basic Clustering |
spectral clustering, hierarchical clustering, k-means |
Solvers |
combinatorial optimization, iterative solvers |
Statistics |
sampling, moments and summary statistics, metrics |
Tools & Utilities |
common utilities for developing CUDA applications, multi-node multi-gpu infrastructure |