faiss/c_api
Tarang Jain 134922061c Migrate from RAFT to CUVS (#3549)
Summary:
Remove the dependency on `raft::compiled` and modify GPU implementations to use cuVS backend in place of RAFT.

A deeper insight into the dependency:
FAISS gets the ANN algorithm implementations such as IVF-Flat and IVF-PQ from cuVS. RAFT is meant to be a lightweight C++ header-only template library that cuVS relies on for the more fundamental / low-level utilities. Some examples of these are RAFT's device mdarray and mdspan objects; the RAFT resource object (`raft::resource`) that takes care of the stream ordering of device functions; linear algebra functions such as mapping, reduction, BLAS routines etc. A lot of the cuVS functions take the RAFT mdspan objects as arguments (for example `raft::device_matrix_view`). Therefore FAISS relies on both cuVS and RAFT. FAISS gets RAFT headers through cuVS and uses them to create the function arguments that can be consumed by cuVS. Note that we are not explicitly linking FAISS against `raft::raft` or `raft::compiled`. Only the required headers are included and compiled rather than compiling the whole RAFT shared library. This is the reason we still see mentions of `raft` in FAISS.

Pull Request resolved: https://github.com/facebookresearch/faiss/pull/3549

Reviewed By: ramilbakhshyiev

Differential Revision: D62041013

Pulled By: asadoughi

fbshipit-source-id: 7230dcc06cf47baf95873adc1dec2adca4a8f82a
2024-11-14 11:30:16 -08:00
..
gpu Migrate from RAFT to CUVS (#3549) 2024-11-14 11:30:16 -08:00
impl Enable linting: lint config changes plus arc lint command (#3966) 2024-10-22 09:46:48 -07:00
utils Enable linting: lint config changes plus arc lint command (#3966) 2024-10-22 09:46:48 -07:00
AutoTune_c.cpp Enable linting: lint config changes plus arc lint command (#3966) 2024-10-22 09:46:48 -07:00
AutoTune_c.h Enable linting: lint config changes plus arc lint command (#3966) 2024-10-22 09:46:48 -07:00
CMakeLists.txt Enable linting: lint config changes plus arc lint command (#3966) 2024-10-22 09:46:48 -07:00
Clustering_c.cpp Enable linting: lint config changes plus arc lint command (#3966) 2024-10-22 09:46:48 -07:00
Clustering_c.h Enable linting: lint config changes plus arc lint command (#3966) 2024-10-22 09:46:48 -07:00
INSTALL.md
IndexBinary_c.cpp Enable linting: lint config changes plus arc lint command (#3966) 2024-10-22 09:46:48 -07:00
IndexBinary_c.h Enable linting: lint config changes plus arc lint command (#3966) 2024-10-22 09:46:48 -07:00
IndexFlat_c.cpp Enable linting: lint config changes plus arc lint command (#3966) 2024-10-22 09:46:48 -07:00
IndexFlat_c.h Enable linting: lint config changes plus arc lint command (#3966) 2024-10-22 09:46:48 -07:00
IndexIVFFlat_c.cpp Enable linting: lint config changes plus arc lint command (#3966) 2024-10-22 09:46:48 -07:00
IndexIVFFlat_c.h Enable linting: lint config changes plus arc lint command (#3966) 2024-10-22 09:46:48 -07:00
IndexIVF_c.cpp Enable linting: lint config changes plus arc lint command (#3966) 2024-10-22 09:46:48 -07:00
IndexIVF_c.h Enable linting: lint config changes plus arc lint command (#3966) 2024-10-22 09:46:48 -07:00
IndexLSH_c.cpp Enable linting: lint config changes plus arc lint command (#3966) 2024-10-22 09:46:48 -07:00
IndexLSH_c.h Enable linting: lint config changes plus arc lint command (#3966) 2024-10-22 09:46:48 -07:00
IndexPreTransform_c.cpp Enable linting: lint config changes plus arc lint command (#3966) 2024-10-22 09:46:48 -07:00
IndexPreTransform_c.h Enable linting: lint config changes plus arc lint command (#3966) 2024-10-22 09:46:48 -07:00
IndexReplicas_c.cpp Enable linting: lint config changes plus arc lint command (#3966) 2024-10-22 09:46:48 -07:00
IndexReplicas_c.h Enable linting: lint config changes plus arc lint command (#3966) 2024-10-22 09:46:48 -07:00
IndexScalarQuantizer_c.cpp Enable linting: lint config changes plus arc lint command (#3966) 2024-10-22 09:46:48 -07:00
IndexScalarQuantizer_c.h Enable linting: lint config changes plus arc lint command (#3966) 2024-10-22 09:46:48 -07:00
IndexShards_c.cpp Enable linting: lint config changes plus arc lint command (#3966) 2024-10-22 09:46:48 -07:00
IndexShards_c.h Enable linting: lint config changes plus arc lint command (#3966) 2024-10-22 09:46:48 -07:00
Index_c.cpp Enable linting: lint config changes plus arc lint command (#3966) 2024-10-22 09:46:48 -07:00
Index_c.h Enable linting: lint config changes plus arc lint command (#3966) 2024-10-22 09:46:48 -07:00
MetaIndexes_c.cpp Enable linting: lint config changes plus arc lint command (#3966) 2024-10-22 09:46:48 -07:00
MetaIndexes_c.h Enable linting: lint config changes plus arc lint command (#3966) 2024-10-22 09:46:48 -07:00
VectorTransform_c.cpp Enable linting: lint config changes plus arc lint command (#3966) 2024-10-22 09:46:48 -07:00
VectorTransform_c.h Enable linting: lint config changes plus arc lint command (#3966) 2024-10-22 09:46:48 -07:00
clone_index_c.cpp Enable linting: lint config changes plus arc lint command (#3966) 2024-10-22 09:46:48 -07:00
clone_index_c.h Enable linting: lint config changes plus arc lint command (#3966) 2024-10-22 09:46:48 -07:00
error_c.h Enable linting: lint config changes plus arc lint command (#3966) 2024-10-22 09:46:48 -07:00
error_impl.cpp Enable linting: lint config changes plus arc lint command (#3966) 2024-10-22 09:46:48 -07:00
error_impl.h Enable linting: lint config changes plus arc lint command (#3966) 2024-10-22 09:46:48 -07:00
example_c.c Enable linting: lint config changes plus arc lint command (#3966) 2024-10-22 09:46:48 -07:00
faiss_c.h Enable linting: lint config changes plus arc lint command (#3966) 2024-10-22 09:46:48 -07:00
index_factory_c.cpp Enable linting: lint config changes plus arc lint command (#3966) 2024-10-22 09:46:48 -07:00
index_factory_c.h Enable linting: lint config changes plus arc lint command (#3966) 2024-10-22 09:46:48 -07:00
index_io_c.cpp Add VectorTransform read from filename to the C API (#3970) 2024-10-30 12:01:15 -07:00
index_io_c.h Add VectorTransform read from filename to the C API (#3970) 2024-10-30 12:01:15 -07:00
macros_impl.h Enable linting: lint config changes plus arc lint command (#3966) 2024-10-22 09:46:48 -07:00