about
Billion-scale similarity search with GPUs (FB AI research, 2017) (arxiv.org)
1 point by andyxor on Feb 23, 2021 | hide | past | pdf | discuss on HN

In plain words: A redesigned step for picking the k closest matches runs in parallel on graphics chips and uses memory well, speeding up nearest-neighbor search. It runs 8.5 times faster than the best earlier graphics-chip version, linking a billion vectors in under 12 hours on four cards.

Abstract · Billion-scale similarity search with GPUs

Similarity search finds application in specialized database systems handling complex data such as images or videos, which are typically represented by high-dimensional features and require specific indexing structures. This paper tackles the problem of better utilizing GPUs for this task. While GPUs excel at data-parallel tasks, prior approaches are bottlenecked by algorithms that expose less parallelism, such as k-min selection, or make poor use of the memory hierarchy. We propose a design for k-selection that operates at up to 55% of theoretical peak performance, enabling a nearest neighbor implementation that is 8.5x faster than prior GPU state of the art. We apply it in different similarity search scenarios, by proposing optimized design for brute-force, approximate and compressed-domain search based on product quantization. In all these setups, we outperform the state of the art by large margins. Our implementation enables the construction of a high accuracy k-NN graph on 95 million images from the Yfcc100M dataset in 35 minutes, and of a graph connecting 1 billion vectors in less than 12 hours on 4 Maxwell Titan X GPUs. We have open-sourced our approach for the sake of comparison and reproducibility.

Jeff Johnson, Matthijs Douze, Hervé Jégou
arXiv:1702.08734 · cs.CV, cs.DB, cs.DS, cs.IR · submitted Feb 28, 2017
abstract · pdf · html

add comment on HN
Also discussed: May 2023 (1 point, 0 comments) · Mar 2017 (2 points, 0 comments) · Mar 2017 (3 points, 0 comments)