SIMD Set-Membership Tests Using Bit-Vector Masking

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improveset-membership test throughputVSAvoidtime to determine set membership
Core Design Contradiction:
ProductivityVSLoss of time

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Productivity

If SIMD processors are used to perform parallel set-membership tests, then processing throughput increases, but the complexity of handling branching operations decreases

Engineering Contradiction:
Improveparallel processing throughputVSAvoidSIMD architecture complexity
Core Design Contradiction:
ProductivityVSDevice complexity

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.

Inventive Principle:
Principle #13The other way round (Inversion)

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Loss of time

If more processing power is used to evaluate set membership, then query response time decreases, but the cost of hardware increases

Engineering Contradiction:
Improvequery response timeVSAvoidprocessing unit specifications
Core Design Contradiction:
Loss of timeVSDevice complexity

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.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS10922294B2Methods and systems for fast set-membership tests using one or more processors that support single instruction multiple data instructions
Publication Date: 2021.02.16 ORACLE INT CORP
  • US10922294B2 patent drawing
  • US10922294B2 patent drawing
  • US10922294B2 patent drawing

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.