{"title":"Billion-Scale Similarity Search with GPUs","authors":"Jeff Johnson;Matthijs Douze;Hervé Jégou","doi":"10.1109/TBDATA.2019.2921572","DOIUrl":null,"url":null,"abstract":"Similarity search finds application in 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 such as distance computation, prior approaches in this domain are bottlenecked by algorithms that expose less parallelism, such as \n<i>k</i>\n-min selection, or make poor use of the memory hierarchy. We propose a novel design for \n<i>k</i>\n-selection. We apply it in different similarity search scenarios, by optimizing 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 operates at up to 55 percent of theoretical peak performance, enabling a nearest neighbor implementation that is 8.5 × faster than prior GPU state of the art. It enables the construction of a high accuracy \n<i>k</i>\n-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.","PeriodicalId":13106,"journal":{"name":"IEEE Transactions on Big Data","volume":"7 3","pages":"535-547"},"PeriodicalIF":5.7000,"publicationDate":"2019-06-10","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://sci-hub-pdf.com/10.1109/TBDATA.2019.2921572","citationCount":"2461","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"IEEE Transactions on Big Data","FirstCategoryId":"94","ListUrlMain":"https://ieeexplore.ieee.org/document/8733051/","RegionNum":3,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"Q1","JCRName":"COMPUTER SCIENCE, INFORMATION SYSTEMS","Score":null,"Total":0}
引用次数: 2461
Abstract
Similarity search finds application in 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 such as distance computation, prior approaches in this domain are bottlenecked by algorithms that expose less parallelism, such as
k
-min selection, or make poor use of the memory hierarchy. We propose a novel design for
k
-selection. We apply it in different similarity search scenarios, by optimizing 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 operates at up to 55 percent of theoretical peak performance, enabling a nearest neighbor implementation that is 8.5 × faster than prior GPU state of the art. It 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.
相似度搜索在处理复杂数据(如图像或视频)的数据库系统中得到了应用,这些数据通常由高维特征表示,需要特定的索引结构。本文解决了更好地利用gpu来完成这一任务的问题。虽然gpu擅长于数据并行任务,如距离计算,但该领域的先前方法受到暴露较少并行性的算法的瓶颈,例如$k$k-min选择,或者对内存层次结构的使用很差。我们提出了一种新的$k$k选择设计。将其应用于不同的相似度搜索场景,优化了基于产品量化的暴力搜索、近似搜索和压缩域搜索。在所有这些设置中,我们的表现都远远超过了最先进的技术。我们的实现以高达55%的理论峰值性能运行,使最近邻实现比以前的GPU技术状态快8.5倍。它可以在35分钟内在Yfcc100M数据集中的9500万张图像上构建高精度的$k$k- nn图,并在4个Maxwell Titan X gpu上在不到12小时内构建连接10亿个向量的图。为了便于比较和再现,我们已经将我们的方法开源了。
期刊介绍:
The IEEE Transactions on Big Data publishes peer-reviewed articles focusing on big data. These articles present innovative research ideas and application results across disciplines, including novel theories, algorithms, and applications. Research areas cover a wide range, such as big data analytics, visualization, curation, management, semantics, infrastructure, standards, performance analysis, intelligence extraction, scientific discovery, security, privacy, and legal issues specific to big data. The journal also prioritizes applications of big data in fields generating massive datasets.