GPU-Driven Data Loading With Parallel Chunk Decoding
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing GPU data loading frameworks create CPU bottlenecks due to reliance on CPU for data loading and decoding, which slows down processing and increases power consumption, especially in mobile devices, and lack flexibility in customizing decompression algorithms for different data types.
Innovation Solution
A GPU-driven data loading framework that offloads CPU tasks to the GPU for data loading and decoding, allowing parallel processing of data chunks in encoded form, with customizable encoding/decoding algorithms, reducing bandwidth and power consumption without modifying existing OS or hardware.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If CPU is used for data loading and decoding, then data can be loaded and decoded, but processing speed is slow and power consumption is high
Solution Approach 1:
The patent extracts the data loading and decoding functions from the CPU and relocates them to the GPU. The GPU driver identifies data to be loaded and initiates GPU-based decoding operations, separating these tasks from CPU execution. This extraction allows the CPU to focus on other tasks while the GPU handles data loading and decoding in parallel, improving processing speed and reducing CPU power consumption.
Solution Approach 2:
The patent introduces a GPU driver as an intermediary component that coordinates between the CPU and GPU for data loading operations. The driver manages the transfer of encoded data from storage to GPU memory and orchestrates the parallel decoding process using multiple GPU thread groups. This intermediary enables efficient collaboration between CPU and GPU, maximizing processing throughput while minimizing overall system power consumption.
2Productivity
If CPU handles data loading and decoding, then data processing can proceed, but CPU becomes a bottleneck slowing down GPU processing
Solution Approach 1:
The patent segments the data into multiple independent data chunks that can be decoded in parallel by different GPU thread groups. Each thread group processes a specific chunk independently, allowing simultaneous execution of multiple decoding operations. This segmentation eliminates the sequential bottleneck of CPU-based processing and maximizes GPU parallelism, significantly improving throughput and reducing processing delay.
Solution Approach 2:
The patent performs preliminary organization of data into encoded chunks during the data loading phase, preparing the data structure for efficient parallel decoding. The GPU driver pre-configures multiple thread groups to handle different data chunks, so that when decoding begins, all groups can operate simultaneously without waiting for sequential CPU processing. This preliminary preparation eliminates idle time and keeps the GPU fully utilized.
3Adaptability or versatility
If standard decoding algorithms are used, then data can be decoded, but flexibility for customizing decompression algorithms is limited
Solution Approach 1:
The patent implements a dynamic and flexible decoding architecture where the GPU can execute different decoding algorithms based on the specific data type and requirements. The system allows customization of decompression algorithms through programmable GPU kernels that can be configured at runtime. This dynamic approach enables the same GPU hardware to adapt to various encoding formats (e.g., different texture compression formats, video codecs) without requiring separate dedicated hardware for each algorithm, thus providing high flexibility without proportionally increasing system complexity.
4Productivity
If data is loaded and decoded in sequential manner by CPU, then memory bandwidth usage is high, but parallel processing capability is underutilized
Solution Approach 1:
The patent segments the data loading and decoding process into multiple independent chunks that can be processed in parallel by different GPU thread groups. Each chunk is loaded and decoded independently, allowing simultaneous execution of multiple operations. This segmentation enables efficient utilization of GPU parallel processing capabilities while reducing the total data transfer volume through selective loading of only required chunks, thereby minimizing memory bandwidth consumption and energy loss.
Solution Approach 2:
The patent merges the data loading and decoding operations into a unified GPU-based process. Instead of separate CPU-based loading and decoding steps that both consume memory bandwidth, the system combines these operations so that data is loaded directly into GPU memory and decoded in place by GPU threads. This merging eliminates redundant data transfers between CPU and GPU memory, reducing bandwidth consumption and improving parallel processing utilization.
Data Source
AI summary
In a method of data loading at a computing device, data to load is identified at a graphics processing unit (GPU) based on execution of an application program. Data chunks of the identified data in encoded form are loaded via the GPU from a data storage device to a video memory associated with the GPU. The data chunks are decoded in parallel by using plural GPU thread groups in parallel to decode the data chunks. Each of the data chunks is decoded independently of other data chunks. Apparatus, device, and non-transitory computer-readable storage medium counterparts are also contemplated.


