GPU Hash Join Algorithm Using Dynamic Parallelism

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing join algorithms for graphics processing units (GPUs) are not optimized for modern GPU architectures, leading to suboptimal performance and inability to fully utilize the computing resources of newer devices.

Innovation Solution

The development of new hash join and sort-merge join algorithms that leverage advanced GPU features such as dynamic parallelism, native atomic operations, and CUDA Streams to improve data management and processing efficiency, including the use of shared memory, register files, and concurrent thread operations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If existing join algorithms are used for modern GPUs, then code compatibility is maintained, but performance is suboptimal and computing resources are not fully utilized

Engineering Contradiction:
Improvejoin operation performanceVSAvoidalgorithm optimization for new GPU architecture
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent changes the algorithmic parameters and execution model to match modern GPU architecture capabilities. It introduces dynamic parallelism where child kernels are launched based on data skew detection, uses native atomic operations for thread-safe histogram updates, and implements CUDA Streams for asynchronous memory operations. These parameter changes enable the system to fully utilize modern GPU computing resources while maintaining join operation functionality.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The patent implements dynamic adaptation during execution through several mechanisms: dynamic parallelism allows the system to launch additional child kernels based on detected data skew conditions, atomic operations provide dynamic thread-safe access to shared histogram data, and CUDA Streams enable dynamic memory operation scheduling. This dynamic behavior allows the algorithm to self-optimize based on actual data characteristics and hardware capabilities.

Inventive Principle:
Principle #15Dynamics

2Power

If GPU computing resources are increased, then processing capacity grows, but maximum performance cannot be achieved without optimization

Engineering Contradiction:
Improvecomputing capacityVSAvoidjoin operation efficiency
Core Design Contradiction:
PowerVSProductivity

Solution Approach 1:

The patent incorporates feedback mechanisms through data skew detection that monitors the distribution of hash values during the join process. When skew is detected, the system launches additional child kernels to process skewed partitions, creating a feedback loop that adapts the computation to actual data characteristics. This feedback-driven approach ensures that computing capacity is directed toward the most demanding data regions, maximizing overall efficiency.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The patent segments the join operation into independent tasks handled by different thread blocks and child kernels. Each thread block processes a partition of the data independently, and skewed partitions can be handled by separately launched child kernels. This segmentation allows the system to scale computing capacity by adding more segments rather than increasing resources uniformly, optimizing the ratio of computational power to actual work required.

Inventive Principle:
Principle #1Segmentation

3Productivity

If new GPU features are utilized, then performance is maximized, but algorithm complexity increases

Engineering Contradiction:
Improvejoin operation speedupVSAvoidalgorithm structure
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent implements self-service through automatic data skew detection and adaptive kernel launching. The system monitors its own execution characteristics and automatically adjusts the computation by launching additional child kernels when skew is detected, eliminating the need for manual configuration of complex parallelization strategies. This self-service approach manages algorithm complexity automatically based on data characteristics.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent uses intermediate data structures and mechanisms to simplify the interaction between GPU components. Shared memory is used as an intermediary for thread communication and histogram updates, CUDA Streams serve as intermediaries for memory operation scheduling, and child kernels act as intermediaries for processing skewed partitions. These intermediaries abstract the complexity of coordinating multiple GPU features into manageable components.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS11526960B2GPU-based data join
Publication Date: 2022.12.13 UNIV OF SOUTH FLORIDA
  • US11526960B2 patent drawing
  • US11526960B2 patent drawing
  • US11526960B2 patent drawing

AI summary

Disclosed are various embodiments for performing a join operation using a graphics processing unit (GPU). The GPU can receive input data including sequences or tuples. The GPU can initialize a histogram in a memory location shared by threads. The GPU can build the histogram of hash values for the sequences. The GPU can reorder the sequences based on the histogram. The GPU can probe partitions and store the results in a buffer pool. The GPU can output the results of the join.