GPU Query Sub-Graph Transformation for CPU Memory Bottleneck
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In structured data processing, parallel processing using discrete GPUs introduces a bottleneck at the I/O interface due to excessive data transfer between the host CPU and GPU memories, particularly when handling large amounts of result data from database queries.
Innovation Solution
A computer system and method that transform operators in the execution plan into sub-graphs, allowing for parallel execution on discrete devices with reduced memory requirements, where intermediate variables are fully contained within the sub-graph and do not need to be transferred back to the host CPU, thereby reducing data exchange and eliminating the bottleneck.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If parallel processing using discrete GPUs is used to execute physical operators, then processing speed and parallelism are improved, but data transfer bottleneck at I/O interface occurs due to excessive result data transfer back to host CPU
Solution Approach 1:
The execution plan is divided into sub-graphs that can be independently selected and transformed. By segmenting the query into manageable sub-graphs, the system can selectively offload only the necessary portions to GPUs, controlling the amount of data that needs to be transferred back to the host CPU while maintaining parallel processing benefits.
Solution Approach 2:
The patent extracts intermediate variables that are fully contained within sub-graphs and removes them from the data transfer path back to the host CPU. By taking out these intermediate results that don't need to be returned, the system eliminates unnecessary data transfer overhead while preserving the computational benefits of GPU parallel processing.
2Loss of time
If operators are transformed into sub-graphs with intermediate variables fully contained within the sub-graph, then data transfer to host CPU is reduced, but device complexity increases due to transformation requirements
Solution Approach 1:
The transformation framework is designed to work with standard SQL query languages and existing database execution plans. By making the transformation process universal and compatible with conventional query processing, the system avoids introducing excessive complexity while still achieving the goal of reduced data transfer through sub-graph transformation.
Data Source
AI summary
A method for parallel processing of data, including accessing a sub-graph of an execution plan for a query used for accessing a database by a host processor, wherein the execution plan includes operators organized into sub-graphs. The method includes generating a transformed sub-graph by transforming operators from the sub-graph for parallel execution on discrete computing devices. The method includes adding at least one first operator to the transformed sub-graph configured for allocating memory on the discrete computing devices and copying ingress variables to the allocated memory. The method includes adding at least one second operator to the transformed sub-graph for copying egress variables, wherein the transformed sub-graph comprises a plurality of intermediate variables generated during execution of the sub-graph that are fully contained within the transformed sub-graph. The method includes off-loading the transformed sub-graph to the discrete devices for execution.


