🤖 AI Summary
To address the dual challenges of GPU memory constraints and CPU computational bottlenecks in large-scale, high-dimensional Approximate Nearest Neighbor Search (ANNS), this paper proposes a CPU-GPU collaborative hybrid architecture. Our method decomposes graph traversal into three stages, introduces a fast dynamic entry-point selection strategy to optimize initialization, and—novelly—enables seamless coordination between SVD-compressed vector traversal on GPU and full-precision vector refinement on CPU, augmented by memory-aware subgraph scheduling. Evaluated on billion-scale datasets, our approach achieves 3.9–5.4× higher throughput over baselines and supports ANNS on datasets 12× larger than GPU memory capacity. All code is publicly available.
📝 Abstract
Approximate Nearest Neighbor Search (ANNS) has become fundamental to modern deep learning applications, having gained particular prominence through its integration into recent generative models that work with increasingly complex datasets and higher vector dimensions. Existing CPU-only solutions, even the most efficient graph-based ones, struggle to meet these growing computational demands, while GPU-only solutions face memory constraints. As a solution, we propose PilotANN, a hybrid CPU-GPU system for graph-based ANNS that utilizes both CPU's abundant RAM and GPU's parallel processing capabilities. Our approach decomposes the graph traversal process of top-$k$ search into three stages: GPU-accelerated subgraph traversal using SVD-reduced vectors, CPU refinement and precise search using complete vectors. Furthermore, we introduce fast entry selection to improve search starting points while maximizing GPU utilization. Experimental results demonstrate that PilotANN achieves $3.9 - 5.4 imes$ speedup in throughput on 100-million scale datasets, and is able to handle datasets up to $12 imes$ larger than the GPU memory. We offer a complete open-source implementation at https://github.com/ytgui/PilotANN.