Graphics Data Compression for Discrete GPU Transfer Bottlenecks

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional computing systems face a bandwidth bottleneck when transferring graphics data and commands across communication links to discrete graphics processing units, particularly due to the heterogeneous nature of discrete and integrated GPUs, which limits efficient co-processing and graphics performance.

Innovation Solution

The method involves compressing graphics data in system memory before transferring it to a discrete graphics processing unit, using algorithms like Lempel-Ziv-Oberhumer (LZO) to reduce data size, and decompressing it upon arrival, thereby optimizing data transfer over slower communication links such as a 1X PCIe bus, and implementing a shim layer to manage GPU interactions and direct memory access for efficient data handling.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If graphics data is transferred uncompressed across PCIe bus, then transfer speed is maintained, but bandwidth bottleneck occurs on slow communication links

Engineering Contradiction:
Improvedata transfer speedVSAvoiddata volume
Core Design Contradiction:
SpeedVSQuantity of substance

Solution Approach 1:

The patent applies compression algorithms (LZO, JPEG, PNG) to transform graphics data from uncompressed to compressed format, changing the data density parameter. This reduces the volume of data transferred across the PCIe bus while maintaining the ability to restore original quality at the destination, directly resolving the bandwidth bottleneck problem on slow communication links.

Inventive Principle:
Principle #35Parameter changes

2Quantity of substance

If compression is applied to graphics data, then data size is reduced, but additional processing time is required

Engineering Contradiction:
Improvedata sizeVSAvoidprocessing time
Core Design Contradiction:
Quantity of substanceVSLoss of time

Solution Approach 1:

The patent performs compression of graphics data in advance, before the data is transferred across the PCIe bus. By completing the compression operation beforehand, the system reduces the amount of data that needs to be transmitted, and the decompression can occur in parallel with other operations at the GPU, minimizing the impact on overall processing time.

Inventive Principle:
Principle #10Preliminary action

3Adaptability or versatility

If discrete GPU is not attached to display adapter, then system configuration flexibility is improved, but co-processing support is limited

Engineering Contradiction:
Improvesystem configuration flexibilityVSAvoidco-processing support
Core Design Contradiction:
Adaptability or versatilityVSEase of operation

Solution Approach 1:

The patent introduces a shim layer as an intermediary component that sits between the operating system and the discrete GPU. This shim layer provides the necessary abstraction and interface compatibility, enabling the discrete GPU to function even when not directly attached to the display adapter. It handles the communication and coordination between the integrated GPU, operating system, and discrete GPU, thus resolving the co-processing limitation.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS8780122B2Techniques for transferring graphics data from system memory to a discrete GPU
Publication Date: 2014.07.15 NVIDIA CORP
  • US8780122B2 patent drawing
  • US8780122B2 patent drawing
  • US8780122B2 patent drawing

AI summary

A method for transferring graphics data includes receiving graphics data in the system memory. The graphics data may be loaded into system memory by and application from a mass storage device. One or more graphics commands associated with the graphics data may also be received. The graphics commands may also be received from the application. The graphics data in system memory is compressed in response to receipt of the one or more graphics commands before the graphics data is transferred to a discrete graphics processing unit. The one or more received graphics commands are transferred to the discrete graphics processing unit. The one or more graphics commands include an operation to copy the compressed graphics data to the discrete graphics processing unit. The compressed graphics data is copied from the system memory to memory of the graphics processing. The compressed graphics data is then decompressed by the graphics processing unit. Thereafter, the discrete graphics processing unit may perform one or more graphics operations on the transferred graphics data.