GPU Query Sub-Graph Transformation for CPU Memory Bottleneck

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

VSEngineering 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

Engineering Contradiction:
Improveprocessing speedVSAvoiddata transfer time
Core Design Contradiction:
ProductivityVSLoss of time

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #2Taking out (Extraction)

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

Engineering Contradiction:
Improvedata transfer timeVSAvoidtransformation complexity
Core Design Contradiction:
Loss of timeVSDevice complexity

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.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS9298769B1Method and apparatus to facilitate discrete-device accelertaion of queries on structured data
Publication Date: 2016.03.29 FUTUREWEI TECHNOLOGIES INC
  • US9298769B1 patent drawing
  • US9298769B1 patent drawing
  • US9298769B1 patent drawing

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.