mirror of
https://github.com/facebookresearch/faiss.git
synced 2026-10-12 02:13:36 +00:00
Summary: Pull Request resolved: https://github.com/facebookresearch/faiss/issues/4450 This pull request introduces support for [Intel ScalableVectorSearch](https://github.com/intel/ScalableVectorSearch), integrating Intel's proprietary LVQ and LeanVec technologies in binary form. The following index types are now supported: `IndexSVSVamana`, `IndexSVSVamanaLVQ`, `IndexSVSVamanaLeanVec`, and `IndexSVSFlat`. `IndexSVSVamana` and `IndexSVSFlat` utilizes SVS open-source float32/float16/int8 implementation. Key features and enhancements include: - Implemented `search`, `add`, and `remove_ids` - Implemented filter search and `range_search` - Enabled SVS open-source fp16 and scalar quantization implementation - Enabled factory methods - Enabled save/load - Enabled Python bindings - Enable fallback mechanism that fallbacks to 8-bit scalar quantization if LVQ/LeanVec is used on non-intel hardware CPUs - Added examples in both Python and C++ under the `tutorial/` directory - Added `FAISS_ENABLE_SVS` flag to allows users to optionally enable SVS TODOs: - Support more indices such as `IndexSVSIVF` and `IndexSVSFlat` with LVQ and LeanVec - Documentation Pull Request resolved: https://github.com/facebookresearch/faiss/pull/4548 Reviewed By: subhadeepkaran Differential Revision: D84713772 Pulled By: mnorris11 fbshipit-source-id: 290365eb3337f685dd46696935b621c57dad3174
43 lines
1.7 KiB
CMake
43 lines
1.7 KiB
CMake
# Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
#
|
|
# This source code is licensed under the MIT license found in the
|
|
# LICENSE file in the root directory of this source tree.
|
|
|
|
add_executable(1-Flat EXCLUDE_FROM_ALL 1-Flat.cpp)
|
|
target_link_libraries(1-Flat PRIVATE faiss)
|
|
|
|
add_executable(2-IVFFlat EXCLUDE_FROM_ALL 2-IVFFlat.cpp)
|
|
target_link_libraries(2-IVFFlat PRIVATE faiss)
|
|
|
|
add_executable(3-IVFPQ EXCLUDE_FROM_ALL 3-IVFPQ.cpp)
|
|
target_link_libraries(3-IVFPQ PRIVATE faiss)
|
|
|
|
add_executable(4-GPU EXCLUDE_FROM_ALL 4-GPU.cpp)
|
|
target_link_libraries(4-GPU PRIVATE faiss)
|
|
|
|
add_executable(5-Multiple-GPUs EXCLUDE_FROM_ALL 5-Multiple-GPUs.cpp)
|
|
target_link_libraries(5-Multiple-GPUs PRIVATE faiss)
|
|
|
|
add_executable(6-HNSW EXCLUDE_FROM_ALL 6-HNSW.cpp)
|
|
target_link_libraries(6-HNSW PRIVATE faiss)
|
|
|
|
add_executable(7-PQFastScan EXCLUDE_FROM_ALL 7-PQFastScan.cpp)
|
|
target_link_libraries(7-PQFastScan PRIVATE faiss)
|
|
|
|
add_executable(8-PQFastScanRefine EXCLUDE_FROM_ALL 8-PQFastScanRefine.cpp)
|
|
target_link_libraries(8-PQFastScanRefine PRIVATE faiss)
|
|
|
|
add_executable(9-RefineComparison EXCLUDE_FROM_ALL 9-RefineComparison.cpp)
|
|
target_link_libraries(9-RefineComparison PRIVATE faiss)
|
|
|
|
if(FAISS_ENABLE_SVS)
|
|
|
|
add_executable(10-SVS-Vamana-LVQ EXCLUDE_FROM_ALL 10-SVS-Vamana-LVQ.cpp)
|
|
target_link_libraries(10-SVS-Vamana-LVQ PRIVATE faiss)
|
|
target_compile_definitions(10-SVS-Vamana-LVQ PRIVATE FAISS_ENABLE_SVS FAISS_SVS_RUNTIME_VERSION=${FAISS_SVS_RUNTIME_VERSION})
|
|
|
|
add_executable(11-SVS-Vamana-LeanVec EXCLUDE_FROM_ALL 11-SVS-Vamana-LeanVec.cpp)
|
|
target_link_libraries(11-SVS-Vamana-LeanVec PRIVATE faiss)
|
|
target_compile_definitions(11-SVS-Vamana-LeanVec PRIVATE FAISS_ENABLE_SVS FAISS_SVS_RUNTIME_VERSION=${FAISS_SVS_RUNTIME_VERSION})
|
|
endif()
|