Getting Started#
New to vector search?#
If you are unfamiliar with the basics of vector search or how vector search differs from vector databases, then this primer on vector search guide should provide some good insight. Another good resource for the uninitiated is our vector databases vs vector search guide. As outlined in the primer, vector search as used in vector databases is often closer to machine learning than to traditional databases. This means that while traditional databases can often be slow without any performance tuning, they will usually still yield the correct results. Unfortunately, vector search indexes, like other machine learning models, can yield garbage results of not tuned correctly.
Fortunately, this opens up the whole world of hyperparamer optimization to improve vector search performance and quality. Please see our index tuning guide for more information.
When comparing the performance of vector search indexes, it is important that considerations are made with respect to three main dimensions:
Build time
Search quality
Search performance
Please see the primer on comparing vector search index performance for more information on methodologies and how to make a fair apples-to-apples comparison during your evaluations.
Supported indexes#
cuVS supports many of the standard index types with the list continuing to grow and stay current with the state-of-the-art. Please refer to our vector search index guide for to learn more about each individual index type, when they can be useful on the GPU, the tuning knobs they offer to trade off performance and quality.
The primary goal of cuVS is to enable speed, scale, and flexibility (in that order)- and one of the important value propositions is to enhance existing software deployments with extensible GPU capabilities to improve pain points while not interrupting parts of the system that work well today with CPU.
Using cuVS APIs#
cuVS is a C++ library at its core, which is wrapped with a C library and exposed further through various different languages. cuVS currently provides APIs and documentation for C, C++, Python, and Rust with more languages in the works. our API basics provides some background and context about the important paradigms and vocabulary types you’ll encounter when working with cuVS types.
Please refer to the guide on API interoperability for more information on how cuVS can work seamlessly with other libraries like numpy, cupy, tensorflow, and pytorch, even without having to copy device memory.
Where to next?#
cuVS is free and open source software, licesed under Apache 2.0 Once you are familiar with and/or have used cuVS, you can access the developer community most easily through Github. Please open Github issues for any bugs, questions or feature requests.
Blogs#
We frequently publish blogs on GPU-enabled vector search, which can provide great deep dives into various important topics and breakthroughs:
Research#
For the interested reader, many of the accelerated implementations in cuVS are also based on research papers which can provide a lot more background. We also ask you to please cite the corresponding algorithms by referencing them in your own research.
Get involved#
We always welcome patches for new features and bug fixes. Please read our contributing guide for more information on contributing patches to cuVS.
Social media#
You can access the RAPIDS community through Slack , Stack Overflow and X