Summary: For search request with few queries or single query, this PR adds the ability to run threads over both queries and different cluster of the IVF. For application where latency is important this can **dramatically reduce latency for single query requests**. A new implementation (https://github.com/facebookresearch/faiss/issues/14) is added. The new implementation could be merged to the implementation 12 but for simplicity in this PR, I created a separate function. Tests are added to cover the new implementation and new tests are added to specifically cover the case when a single query is used. In my benchmarks a very good reduction of latency is observed for single query requests. Pull Request resolved: https://github.com/facebookresearch/faiss/pull/2380 Test Plan: ``` buck test //faiss/tests/:test_fast_scan_ivf -- implem14 buck test //faiss/tests/:test_fast_scan_ivf -- implem15 ``` Reviewed By: alexanderguzhva Differential Revision: D38074577 Pulled By: mdouze fbshipit-source-id: e7a20b6ea2f9216e0a045764b5d7b7f550ea89fe |
||
---|---|---|
.. | ||
CMakeLists.txt | ||
common_faiss_tests.py | ||
test_autotune.py | ||
test_binary_factory.py | ||
test_binary_flat.cpp | ||
test_binary_hashindex.py | ||
test_binary_io.py | ||
test_build_blocks.py | ||
test_clustering.py | ||
test_contrib.py | ||
test_contrib_with_scipy.py | ||
test_cppcontrib_sa_decode.cpp | ||
test_dealloc_invlists.cpp | ||
test_documentation.py | ||
test_doxygen_documentation.py | ||
test_extra_distances.py | ||
test_factory.py | ||
test_fast_scan.py | ||
test_fast_scan_ivf.py | ||
test_index.py | ||
test_index_accuracy.py | ||
test_index_binary.py | ||
test_index_binary_from_float.py | ||
test_index_composite.py | ||
test_io.py | ||
test_ivflib.py | ||
test_ivfpq_codec.cpp | ||
test_ivfpq_indexing.cpp | ||
test_local_search_quantizer.py | ||
test_lowlevel_ivf.cpp | ||
test_mem_leak.cpp | ||
test_merge.cpp | ||
test_meta_index.py | ||
test_omp_threads.cpp | ||
test_omp_threads_py.py | ||
test_ondisk_ivf.cpp | ||
test_oom_exception.py | ||
test_pairs_decoding.cpp | ||
test_params_override.cpp | ||
test_partition.py | ||
test_pq_encoding.cpp | ||
test_product_quantizer.py | ||
test_referenced_objects.py | ||
test_refine.py | ||
test_residual_quantizer.py | ||
test_sliding_ivf.cpp | ||
test_standalone_codec.py | ||
test_threaded_index.cpp | ||
test_transfer_invlists.cpp | ||
torch_test_contrib.py |