SIMD Set-Membership Tests Using Bit-Vector Masking
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Determining which values in a large set are members of a second set is computationally expensive, especially as data quantities increase, and existing SIMD processors struggle to efficiently perform parallel set-membership tests due to limitations in branching mechanisms.
Innovation Solution
Implementing set-membership processes using SIMD architecture that load dictionary-encoded values into registers, perform bit-vector operations, and generate output bit-vectors to indicate which values satisfy conditions, optimizing performance through techniques like bunpk, shuffle, shift, and mask operations.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If traditional sequential processing is used to determine set membership, then the processing logic is simple, but the processing time increases significantly with large datasets
Solution Approach 1:
The patent divides the set-membership test into multiple parallel processing lanes, where each lane processes a subset of values simultaneously using SIMD instructions. This segmentation allows the processor to evaluate multiple candidate values in parallel rather than sequentially, dramatically improving throughput for large datasets.
Solution Approach 2:
The patent transitions from scalar processing to vector processing by utilizing SIMD architecture. Multiple values are loaded into vector registers and processed simultaneously through bit-vector operations, adding a parallelism dimension that transforms the computational approach from sequential to concurrent evaluation.
2Productivity
If SIMD processors are used to perform parallel set-membership tests, then processing throughput increases, but the complexity of handling branching operations decreases
Solution Approach 1:
Instead of using traditional conditional branching to handle set-membership results, the patent inverts the approach by using bitwise operations to generate mask vectors. These mask vectors directly represent membership results without requiring complex branching logic, simplifying the control flow while maintaining parallel processing capability.
Solution Approach 2:
The patent introduces bit-vector intermediaries that serve as a bridge between the parallel SIMD operations and the final set-membership results. These bit-vectors encode membership information in a compact form that can be efficiently processed through bitwise operations, reducing the complexity of coordinating multiple parallel operations.
3Loss of time
If more processing power is used to evaluate set membership, then query response time decreases, but the cost of hardware increases
Solution Approach 1:
The patent processes values in parallel using SIMD instructions, which may evaluate more candidate values simultaneously than strictly necessary for a single query. This excessive parallel action reduces query response time by pre-evaluating multiple possibilities, with the understanding that not all parallel operations will be needed for each individual query result.
Data Source
AI summary
Methods and apparatuses for determining set-membership using Single Instruction Multiple Data (“SIMD”) architecture are presented herein. Specifically, methods and apparatuses are discussed for determining, in parallel, whether multiple values in a first set of values are members of a second set of values. Many of the methods and systems discussed herein are applied to determining whether one or more rows in a dictionary-encoded column of a database table satisfy one or more conditions based on the dictionary-encoded column. However, the methods and systems discussed herein may apply to many applications executed on a SIMD processor using set-membership tests.


