Multi-GPU Hash Table Result Materialization via Global Offsets
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Single GPUs often lack sufficient memory capacity and processing speed to efficiently perform hash table joins due to the speed and memory constraints, leading to performance bottlenecks in operations like OnLine Analytical Processing (OLAP).
Innovation Solution
Utilize multiple GPUs to build, probe, and materialize hash tables in a distributed manner, leveraging global location identifiers to parallelize memory accesses and coordinate parallel processing across GPUs, allowing for increased memory capacity and reduced runtime.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Device complexity
If a single GPU is used to perform hash table joins, then the system is simple to implement, but the memory capacity and processing speed are insufficient
Solution Approach 1:
The patent divides the hash table into multiple partitions distributed across multiple GPUs. Each GPU is responsible for specific partitions, allowing the system to scale memory capacity by adding more GPUs while maintaining manageable complexity through partitioned data structures and localized processing.
2Device complexity
If a single GPU is used to perform hash table joins, then the implementation is straightforward, but the processing speed is insufficient for large relations
Solution Approach 1:
The hash table build and probe operations are segmented across multiple GPUs working in parallel. The build phase distributes hash table partitions to different GPUs, and the probe phase allows multiple GPUs to simultaneously probe different partitions, achieving linear scaling of processing speed with the number of GPUs.
Solution Approach 2:
The patent transitions from single-GPU sequential processing to multi-GPU parallel processing by adding the dimension of spatial distribution across multiple devices. This enables simultaneous execution of hash table operations across different GPUs, dramatically increasing throughput for large relation joins.
3Productivity
If multiple GPUs are used to build and probe hash tables, then memory capacity and processing speed are improved, but the system complexity increases
Solution Approach 1:
The system uses partitioned hash tables where each GPU manages specific partitions, reducing memory management complexity on individual devices. Data is distributed across GPUs based on hash values, and each GPU processes only its assigned partitions, maintaining simplicity at the device level while achieving high performance through parallelism.
Solution Approach 2:
The patent introduces global location identifiers as intermediaries that map probe keys to specific GPU partitions. This mediation layer simplifies the complexity of distributed hash table access by providing a unified interface for probing while handling the underlying distribution logic across multiple GPUs.
4Adaptability or versatility
If random memory accesses are performed to build and probe hash tables, then the hash table operations are flexible, but the performance bottleneck increases
Solution Approach 1:
The patent segments the hash table across multiple GPUs such that each GPU maintains a localized portion in its memory. This segmentation transforms random global memory accesses into localized accesses within each GPU's memory space, reducing memory bandwidth bottlenecks while preserving hash table operational flexibility through partitioned data structures.
Data Source
AI summary
Described approaches provide for effectively and scalably using multiple GPUs to build and probe hash tables and materialize results of probes. Random memory accesses by the GPUs to build and/or probe a hash table may be distributed across GPUs and executed concurrently using global location identifiers. A global location identifier may be computed from data of an entry and identify a global location for an insertion and/or probe using the entry. The global location identifier may be used by a GPU to determine whether to perform an insertion or probe using an entry and/or where the insertion or probe is to be performed. To coordinate GPUs in materializing results of probing a hash table a global offset to the global output buffer may be maintained in memory accessible to each of the GPUs or the GPUs may compute global offsets using an exclusive sum of the local output buffer sizes.


