GPU Graph Processing via Nested Loop Join Streaming

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current graph processing systems using GPUs face performance degradation when handling larger-scale graph data beyond the capacity of GPU device memory, and scalability issues arise with increasing numbers of GPUs, leading to inefficient data processing and duplication.

Innovation Solution

A large-scale graph processing system and method utilizing a streaming method, where graph data is transferred between main memory and GPU device memory using a nested loop join scheme, with a streaming controller copying attribute data in chunks and topology data in a streaming manner, enabling efficient processing of data beyond the device memory capacity and improving scalability.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If graph data is divided between GPU memory and main memory to handle larger-scale graphs, then the processing capacity increases, but processing performance degrades due to CPU involvement

Engineering Contradiction:
Improvegraph data scaleVSAvoidprocessing performance
Core Design Contradiction:
Quantity of substanceVSProductivity

Solution Approach 1:

The patent segments graph data into two categories: topology data (stored in main memory) and attribute data (stored in GPU device memory). This segmentation allows the GPU to process attribute data independently without requiring frequent access to topology data in main memory, thereby maintaining high processing performance while handling larger-scale graphs.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a streaming controller as an intermediary component that manages data transfer between main memory and GPU device memory. The streaming controller uses a nested loop join scheme to efficiently transfer attribute data to the GPU and topology data to main memory, enabling seamless coordination between CPU and GPU without degrading performance.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Quantity of substance

If the number of GPUs is increased to process larger graphs, then processing capacity increases, but data duplication increases and scalability degrades

Engineering Contradiction:
Improvegraph processing capacityVSAvoiddata duplication
Core Design Contradiction:
Quantity of substanceVSLoss of substance

Solution Approach 1:

The patent segments graph data storage and processing across multiple GPUs, with each GPU handling a portion of the attribute data while sharing access to topology data in main memory. This segmentation reduces data duplication because each GPU processes its assigned attribute data independently without requiring copies of the entire graph dataset.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent creates a universal architecture where the main memory serves as a shared resource for storing topology data that can be accessed by multiple GPUs simultaneously. This multi-functional design allows multiple GPUs to process different portions of attribute data while sharing common topology information, improving scalability without increasing data duplication.

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

3Quantity of substance

If graph data is transferred between main memory and GPU device memory, then larger-scale graphs can be processed, but data transfer overhead increases

Engineering Contradiction:
Improvegraph data scaleVSAvoiddata transfer time
Core Design Contradiction:
Quantity of substanceVSLoss of time

Solution Approach 1:

The patent performs preliminary actions by pre-transferring attribute data to GPU device memory before processing begins, and pre-loading topology data into main memory. The nested loop join scheme is configured in advance to optimize data transfer patterns, reducing the time required for data transfer during actual processing.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent maintains continuity of useful action by implementing a streaming transfer mechanism where attribute data is continuously transferred from main memory to GPU device memory during processing operations. The nested loop join scheme enables overlapping of data transfer and processing operations, ensuring that the GPU remains continuously utilized without idle time waiting for data transfers.

Inventive Principle:
Principle #20Continuity of useful action

Data Source

PatentUS10089705B2System and method for processing large-scale graphs using GPUs
Publication Date: 2018.10.02 DAEGU GYEONGBUK INSTITUTE OF SCIENCE AND TECHNOLOGY
  • US10089705B2 patent drawing
  • US10089705B2 patent drawing
  • US10089705B2 patent drawing

AI summary

The present invention relates to a system and method for processing a large scale graph using GPUs, and more particularly, to a system and method capable of processing larger-scale graph data beyond the capacity of device memory of GPUs using a streaming method. A large-scale graph processing system using GPUs according to an aspect of the present invention includes a main memory, device memories of a plurality of GPUs that process graph data transferred from the main memory; a loop controller that processes graph data transfer in a nested loop join scheme in the graph data transfer between the main memory and the device memory of the GPU, and a streaming controller that copies the graph data to the device memory of the GPU in a chunk or streaming manner using a GPU stream according to the nested loop join scheme.