faiss/tests
Matthijs Douze adcde10e50 Allow to replace graph structure for NSG graphs (#3975)
Summary:
Pull Request resolved: https://github.com/facebookresearch/faiss/pull/3975

Graph-based indices are often quite bulky in terms of storage becausee the out-degree of the edges is high (32 or more) and edges are just encoded as 32-bit ints.

This diff makes it possible to replace the graph structure of NSG with a compressed version, but only for search (the full graph needs to be present at addition time).

It is easier to do it for NSG than for HNSW for several reasons:
- NSG's graph is not hierarichal -- HNSW is and the edges for the different levels are interleaved
- the NSG graph object is already isolated well (thanks KingLittleQ!)
- NSG cannot be built incrementally so it is easier to convert the graph after all adds are done in one go.

The custom compressed graph is currently only implemented as a test, but could be integrated in the main Faiss as an option to NSG.

Reviewed By: algoriddle

Differential Revision: D64646137

fbshipit-source-id: c10c2a485b44561d32941ce1e7a0e3fe512cf0ac
2024-10-21 06:33:11 -07:00
..
CMakeLists.txt Back out "Add example of how to build, link, and test an external SWIG module" (#3954) 2024-10-15 19:01:46 -07:00
common_faiss_tests.py
test_NSG_compressed_graph.cpp Allow to replace graph structure for NSG graphs (#3975) 2024-10-21 06:33:11 -07:00
test_RCQ_cropping.cpp
test_approx_topk.cpp
test_autotune.py
test_binary_factory.py
test_binary_flat.cpp
test_binary_hashindex.py
test_binary_io.py
test_build_blocks.py
test_callback.cpp
test_callback_py.py
test_clone.py
test_clustering.py
test_code_distance.cpp
test_common_ivf_empty_index.cpp
test_contrib.py
test_contrib_with_scipy.py
test_cppcontrib_sa_decode.cpp
test_cppcontrib_uintreader.cpp
test_dealloc_invlists.cpp
test_disable_pq_sdc_tables.cpp
test_distances_simd.cpp
test_documentation.py
test_extra_distances.py
test_factory.py 3893 - Fix index factory order of idmap and refinement (#3928) 2024-10-08 17:18:13 -07:00
test_factory_tools.cpp
test_fast_scan.py
test_fast_scan_ivf.py
test_fastscan_perf.cpp
test_graph_based.py
test_heap.cpp
test_hnsw.cpp
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_ivf_index.cpp
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_merge_index.py
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_partitioning.cpp
test_pq_encoding.cpp
test_product_quantizer.py
test_referenced_objects.py
test_refine.py
test_residual_quantizer.py implement ST_norm_from_LUT for the ResidualQuantizer (#3917) 2024-10-10 22:24:43 -07:00
test_rowwise_minmax.py
test_search_params.py
test_simdlib.cpp
test_sliding_ivf.cpp
test_standalone_codec.py
test_swig_wrapper.py
test_threaded_index.cpp
test_transfer_invlists.cpp
test_util.h
test_utils.cpp
torch_test_contrib.py
torch_test_neural_net.py