GPU Graph Processing via Nested Loop Join Streaming
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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.
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
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.
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.
Data Source
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.


