Parallel Hardware Accelerator kNN Search Clustering
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Traditional nearest neighbor search algorithms on CPUs are time-consuming and inefficient due to sequential execution, especially when dealing with large datasets and high-dimensional data, leading to sub-optimal results in real-time applications.
Innovation Solution
The method employs a hardware accelerator, such as a GPU, to parallelize the k-Nearest Neighbors (kNN) search by partitioning data into clusters, using centroid comparisons to select relevant clusters, and generating distance tables in shared memory, allowing multiple threads to compute distances in parallel and reduce memory access bottlenecks.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If traditional CPU-based nearest neighbor search algorithms are used, then implementation simplicity is maintained, but computational time and processing efficiency deteriorate due to sequential execution
Solution Approach 1:
The patent segments the nearest neighbor search problem into multiple independent clusters, where each cluster is processed by separate threads in parallel. The data set is divided into clusters based on centroid comparisons, allowing the computational workload to be distributed across multiple processing units simultaneously, thereby improving productivity while managing complexity through structured division
Solution Approach 2:
The patent transitions from sequential CPU execution to parallel GPU execution, adding a dimension of concurrency to the processing architecture. By utilizing the parallel processing capabilities of GPU hardware accelerators, the system achieves significant speedup in computational tasks without fundamentally changing the algorithmic logic
2Measurement precision
If all clusters are processed to ensure accurate kNN results, then measurement precision is improved, but computational time and resource usage increase
Solution Approach 1:
The patent applies partial action by processing only the most relevant clusters identified through centroid comparisons rather than all clusters. By selecting a subset of clusters that are most likely to contain the nearest neighbors, the system achieves approximate kNN results with reduced computational time while maintaining acceptable accuracy for real-time applications
Solution Approach 2:
The patent performs preliminary clustering and centroid comparison before the actual kNN search. By pre-organizing data into clusters and identifying relevant ones based on query centroid distances, the system reduces the search space for the subsequent nearest neighbor computation, thereby reducing computational time while preserving search accuracy
3Reliability
If distance computations are performed for all data points, then search completeness is improved, but memory usage and access bottlenecks worsen
Solution Approach 1:
The patent segments the data set into multiple clusters stored in shared memory, allowing distance computations to be performed only on data points within relevant clusters. This segmentation reduces the quantity of data that needs to be loaded into memory and processed, thereby reducing memory usage while maintaining search completeness within the clustered data structure
Data Source
AI summary
In one embodiment, a processor of a computing device receives a query. The computing device may compare a centroid of each of a plurality of clusters to the query such that a subset of the plurality of clusters is selected, each of the plurality of clusters having a set of data points. An assignment of the subset of the plurality of clusters may be communicated to a hardware accelerator of the computing device. A plurality of threads of the hardware accelerator of the computing device may generate one or more distance tables that store results of intermediate computations corresponding to the query and the subset of the plurality of clusters. The distance tables may be stored in shared memory of the hardware accelerator. A plurality of threads of the hardware accelerator may determine a plurality of data points using the distance tables. The processor may provide query results pertaining to at least a portion of the plurality of data points.


