Parallel Pruning and Batch Sorting for Similarity Search
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current similarity search architectures face challenges in reducing latency and computational resources while maintaining accuracy, particularly when dealing with large datasets of high-dimensional candidate vectors and query vectors in applications like content-based image retrieval and drug discovery.
Innovation Solution
The proposed architecture employs parallel similarity processing engines with early pruning and a shared heap hardware to efficiently sort results, utilizing near-memory computing and a heap memory structure to reduce bandwidth and latency by discarding similarity computations early in the process based on threshold distances.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If parallel similarity processing engines compute similarity measurements for all candidate vectors, then measurement precision is improved, but loss of time increases due to processing all candidates including those that will be discarded
Solution Approach 1:
The system performs preliminary actions by computing only partial similarity measurements (e.g., using only a portion of vector dimensions) before making discard decisions. This preliminary computation provides enough information to prune candidates early without requiring full similarity calculations, thus reducing processing time while maintaining measurement precision for candidates that proceed to full evaluation.
2Productivity
If early pruning is implemented to reduce computational resources, then productivity is improved, but measurement precision may deteriorate due to discarding candidates before complete evaluation
Solution Approach 1:
The system applies local quality by using different evaluation strategies for different candidates based on their characteristics. Promising candidates receive full similarity measurement for precise evaluation, while unpromising candidates undergo only partial measurement followed by discard. This differentiated approach maintains measurement precision for relevant candidates while improving overall productivity through selective pruning.
3Device complexity
If a shared heap hardware is used for sorting results from multiple processing engines, then device complexity is reduced, but productivity may worsen due to potential bottlenecks in the shared sorting resource
Solution Approach 1:
The system merges the sorting functionality of multiple processing engines into a single shared heap hardware structure. This consolidation reduces device complexity by eliminating redundant sorting units while maintaining productivity through the heap's efficient O(log n) insertion and retrieval operations, which can handle results from multiple engines simultaneously without creating significant bottlenecks.
Data Source
AI summary
Systems, apparatuses and methods include technology that determines, with a first processing engine of a plurality of processing engines, a first partial similarity measurement based on a first portion of a query vector and a first portion of a first candidate vector. The technology determines, with a second processing engine of the plurality of processing engines, a total similarity measurement based on the query vector and a second candidate vector. The technology determines, with the first processing engine, whether to compare a second portion of the query vector to a second portion of the first candidate vector based on the first partial similarity measurement and the total similarity measurement.


