faiss/benchs/bench_all_ivf
Matthijs Douze b109d086a2 Search and return codes (#3143)
Summary:
This PR adds a functionality where an IVF index can be searched and the corresponding codes be returned. It also adds a few functions to compress int arrays into a bit-compact representation.

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

Test Plan:
```
buck test //faiss/tests/:test_index_composite -- TestSearchAndReconstruct

buck test //faiss/tests/:test_standalone_codec -- test_arrays
```

Reviewed By: algoriddle

Differential Revision: D51544613

Pulled By: mdouze

fbshipit-source-id: 875f72d0f9140096851592422570efa0f65431fc
2023-11-25 13:57:25 -08:00
..
README.md docs: Improve readability (#2378) 2022-07-08 09:19:07 -07:00
bench_all_ivf.py Search and return codes (#3143) 2023-11-25 13:57:25 -08:00
bench_kmeans.py
cmp_with_scann.py Refactor prepare cache code in cmp_with_scann benchmark (#2573) 2023-01-04 02:35:18 -08:00
datasets_oss.py Building blocks for big batch IVF search 2022-12-08 09:34:16 -08:00
make_groundtruth.py
parse_bench_all_ivf.py Support for additive quantizer search (#1961) 2021-08-20 01:00:10 -07:00
run_on_cluster_generic.bash

README.md

Benchmark of IVF variants

This is a benchmark of IVF index variants, looking at compression vs. speed vs. accuracy. The results are in this wiki chapter

The code is organized as:

  • datasets.py: code to access the datafiles, compute the ground-truth and report accuracies

  • bench_all_ivf.py: evaluate one type of inverted file

  • run_on_cluster_generic.bash: call bench_all_ivf.py for all tested types of indices. Since the number of experiments is quite large the script is structured so that the benchmark can be run on a cluster.

  • parse_bench_all_ivf.py: make nice tradeoff plots from all the results.

The code depends on Faiss and can use 1 to 8 GPUs to do the k-means clustering for large vocabularies.

It was run in October 2018 for the results in the wiki.