Multi-GPU Query Execution for GPU Memory Capacity Limits
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Database query acceleration using GPUs is limited by the smaller memory capacity of GPUs compared to main memory in modern servers, leading to decreased performance for larger datasets.
Innovation Solution
Utilizing multiple interconnected GPUs with high-bandwidth links to distribute and process data across them, employing primitives for data movement and parallel processing to optimize data distribution and execution.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If data is loaded into GPU memory for parallel processing, then query processing speed is improved, but memory capacity limitation reduces effectiveness for larger datasets
Solution Approach 1:
The patent divides the dataset into multiple partitions that can be distributed across multiple GPUs. Each GPU processes a portion of the data independently in parallel, allowing the system to handle larger datasets than a single GPU could manage alone while maintaining high processing speeds through concurrent operations.
Solution Approach 2:
The patent transitions from single-GPU processing to multi-GPU processing by adding spatial dimensionality to the system architecture. Multiple GPUs are interconnected and work in parallel, effectively expanding the computational resources beyond the memory limitations of a single GPU while maintaining high processing throughput.
2Quantity of substance
If computations are split with CPU to handle larger datasets, then memory capacity constraint is addressed, but processing speed decreases
Solution Approach 1:
The system segments the computational workload across multiple GPUs rather than splitting between CPU and GPU. This allows the computationally intensive operations to remain on the GPU where they can execute in parallel at high speed, while still handling large datasets through the distributed architecture.
Solution Approach 2:
The patent replaces the traditional CPU-GPU computation split with a multi-GPU parallel processing system. By substituting additional GPU resources instead of relying on CPU-GPU coordination, the system maintains high processing speeds while gaining the capacity to handle larger datasets through distributed memory and parallel computation.
3Productivity
If multiple GPUs are used for parallel processing, then processing capacity is improved, but data movement overhead between GPUs increases
Solution Approach 1:
The system performs preliminary data partitioning and distribution across GPUs before the actual query processing begins. By pre-organizing the data in an optimal distribution pattern, the system minimizes the need for extensive data movement during processing, reducing overhead while maintaining high parallel processing capacity.
Solution Approach 2:
The patent introduces an intermediary data movement mechanism that optimizes transfers between GPUs. This intermediary layer manages the data exchange efficiently, reducing the time overhead associated with moving data between GPUs while enabling the system to leverage multiple GPUs for increased processing capacity.
Data Source
AI summary
Described are examples for using multiple graphics processing units (GPUs) to accelerate a database query. Data for a database query can be loaded from the database into memories of multiple GPUs for parallel processing by the multiple GPUs. At least a portion of the data loaded into a memory for one of the multiple GPUs can be moved to a memory for a different one of the multiple GPUs. A compute process can be executed, via parallel processing on the multiple GPUs, for the query to perform data processing related to the database query.


