2021 · 11 citations · 18 references
ComputingComputer EngineeringComputer ScienceComputer VisionMachine LearningParallel ComputingData ParallelismGraphics Processing Unit ArchitectureGraphics Processing Unit ComputingGraphics Processing UnitsHardware AccelerationParallel ArchitecturesGpgpu ComputingGpu AcceleratorsGpu ArchitectureGpu Parallel AlgorithmsGraph ProcessingNeural Information RetrievalUpdate Mechanisms
NN-Descent is a classic k-NN graph construction approach. It is still widely employed in machine learning, computer vision, and information retrieval tasks due to its efficiency and genericness. However, the current design only works well on CPU. In this paper, NN-Descent has been redesigned to adapt to the GPU architecture. A new graph update strategy called selective update is proposed. It reduces the data exchange between GPU cores and GPU global memory significantly, which is the processing bottleneck under GPU computation architecture. This redesign leads to full exploitation of the parallelism of the GPU hardware. In the meantime, the genericness, as well as the simplicity of NN-Descent, are well-preserved. Moreover, a procedure that allows to k-NN graph to be merged efficiently on GPU is proposed. It makes the construction of high-quality k-NN graphs for out-of-GPU-memory datasets tractable. Our approach is 100-250× faster than the single-thread NN-Descent and is 2.5-5× faster than the existing GPU-based approaches as we tested on million as well as billion scale datasets.
18
Proceedings of IEEE Conference on Computer Vision and Pattern Recognition
1993 · 14.3K citations
Sorting networks and their applications
Kenneth E. Batcher · 1968 · 2.4K citations