GPU-Driven Data Loading With Parallel Chunk Decoding

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

VSEngineering 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

Engineering Contradiction:
Improveprocessing speedVSAvoidpower consumption
Core Design Contradiction:
ProductivityVSUse of energy by moving object

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.

Inventive Principle:
Principle #2Taking out (Extraction)

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If CPU handles data loading and decoding, then data processing can proceed, but CPU becomes a bottleneck slowing down GPU processing

Engineering Contradiction:
Improveprocessing throughputVSAvoidprocessing delay
Core Design Contradiction:
ProductivityVSLoss of time

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #10Preliminary action

3Adaptability or versatility

If standard decoding algorithms are used, then data can be decoded, but flexibility for customizing decompression algorithms is limited

Engineering Contradiction:
Improvealgorithm customization flexibilityVSAvoidsystem complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

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.

Inventive Principle:
Principle #15Dynamics

4Productivity

If data is loaded and decoded in sequential manner by CPU, then memory bandwidth usage is high, but parallel processing capability is underutilized

Engineering Contradiction:
Improveparallel processing utilizationVSAvoidbandwidth consumption
Core Design Contradiction:
ProductivityVSLoss of energy

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS12561752B2Apparatus and method for a framework for GPU-driven data loading
Publication Date: 2026.02.24 TENCENT AMERICA LLC
  • US12561752B2 patent drawing
  • US12561752B2 patent drawing
  • US12561752B2 patent drawing

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.