Parallel Variable-Length Data Decompression Using Overlapping Decode

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Decompression of large data sets is typically done sequentially, which is time-consuming due to processor speed and resource constraints, limiting the speed at which data can be decoded.

Innovation Solution

Decompressing variable-length coded data in parallel by transferring compressed files from a CPU to a GPU for decompression, utilizing parallel processors and specialized hardware like GPUs, FPGAs, or ASICs to perform operations such as Huffman decoding and LZ77 decompression efficiently.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If sequential decompression is used on CPU, then resource constraints are manageable, but decompression time increases significantly

Engineering Contradiction:
Improvedecompression timeVSAvoiddecompression speed
Core Design Contradiction:
Loss of timeVSProductivity

Solution Approach 1:

The patent divides the decompression task into multiple independent segments that can be processed simultaneously. The compressed data is split into chunks, and multiple GPU threads work on different segments in parallel, eliminating the sequential bottleneck while maintaining manageable resource usage through distributed processing.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a hybrid CPU-GPU system where the CPU prepares and manages data segments while the GPU performs the actual decompression operations. This intermediary architecture allows the CPU to handle resource management efficiently while the GPU provides high-speed parallel processing, resolving the contradiction between resource constraints and decompression speed.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If parallel processing with GPU is used, then decompression speed increases, but device complexity increases

Engineering Contradiction:
Improvedecompression speedVSAvoidprocessing system complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent designs a universal decompression system that can handle multiple compression formats (Huffman, LZ77, etc.) through a single GPU-based parallel processing architecture. This multi-functional approach increases decompression speed while managing device complexity by using a unified processing framework rather than separate specialized hardware for each format.

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

Solution Approach 2:

The GPU-based parallel processing system is designed to be self-sufficient for the decompression task, with the CPU only handling data preparation and result collection. The GPU automatically manages its own parallel thread execution and resource allocation, reducing the overall system complexity despite the increased processing power.

Inventive Principle:
Principle #25Self-service

3Productivity

If specialized hardware like GPU is used, then processing throughput increases, but hardware resource requirements increase

Engineering Contradiction:
Improveprocessing throughputVSAvoidhardware resources
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The patent implements partial parallel processing where only the computationally intensive decompression portions are offloaded to the GPU, while less demanding tasks remain on the CPU. This selective approach increases throughput for the critical path operations while avoiding the need to provision excessive GPU resources for all processing tasks.

Inventive Principle:
Principle #16Partial or excessive action

Solution Approach 2:

The CPU performs preliminary data preparation and segmentation before transferring data to the GPU for parallel processing. This preliminary action optimizes the data structure for GPU processing, enabling higher throughput while minimizing the hardware resources needed by the GPU, as the data is already organized for efficient parallel access.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS20230229630A1Processing variable-length data
Publication Date: 2023.07.20 NVIDIA CORP
  • US20230229630A1 patent drawing
  • US20230229630A1 patent drawing
  • US20230229630A1 patent drawing

AI summary

Apparatuses, systems, and techniques to decompress data in parallel. In at least one embodiment, decompressing a variable-length-coded data stream speculatively decodes overlapping portions of said data stream to determine locations to begin correctly decoding said data stream.