GPU Shared Data Channel Memory Optimization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The existing graphics processing unit (GPU) architectures face inefficiencies in managing data across shader stages due to limited on-chip memory, leading to performance degradation and wasted storage space, as separate data channels for each stage are not feasible, and unbalanced data production and consumption patterns.

Innovation Solution

Implementing shared data channels in on-chip graphics memory that allow multiple stages of the graphics processing pipeline to share a single data channel, optimizing memory usage by utilizing idle space from one stage to store data from another, thereby increasing the GPU's performance and data handling efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If separate data channels are allocated for each shader stage, then data access efficiency is improved, but on-chip memory capacity is exceeded

Engineering Contradiction:
Improvedata access efficiencyVSAvoidmemory capacity
Core Design Contradiction:
SpeedVSQuantity of substance

Solution Approach 1:

The patent merges multiple stage-specific data channels into a unified shared data channel in on-chip memory. Instead of allocating separate memory channels for vertex shader, hull shader, domain shader, and geometry shader, the system consolidates them into a single shared channel that all stages can access simultaneously, resolving the conflict between data access efficiency and memory capacity constraints.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The shared data channel is designed to serve multiple shader stages universally. The same on-chip memory channel is used by vertex shader, hull shader, domain shader, and geometry shader for storing and accessing their respective data, making the memory resource multi-functional and eliminating the need for stage-specific dedicated channels.

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

2Productivity

If on-chip memory is used for all shader stages, then processing speed is improved, but memory space is insufficient

Engineering Contradiction:
Improveprocessing speedVSAvoidmemory space
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The system implements dynamic memory allocation within the shared data channel. The available memory space is dynamically allocated to different shader stages based on their current needs and data production/consumption patterns. This allows the system to maintain high processing speed by keeping data in fast on-chip memory while adaptively managing the limited memory space among multiple stages.

Inventive Principle:
Principle #15Dynamics

3Productivity

If more data is stored in on-chip memory, then shader unit efficiency is improved, but memory utilization becomes unbalanced

Engineering Contradiction:
Improveshader unit efficiencyVSAvoidmemory utilization balance
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The system employs feedback mechanisms to monitor data production and consumption rates across different shader stages. Based on this feedback, the memory management unit dynamically adjusts the allocation of shared data channel space to each stage, ensuring that stages producing or consuming more data receive proportionally more memory resources, thereby maintaining both high shader unit efficiency and balanced memory utilization.

Inventive Principle:
Principle #23Feedback

Data Source

PatentEP3108452B1Shader pipeline with shared data channels
Publication Date: 2020.06.24 QUALCOMM INC
  • EP3108452B1 patent drawingFigure 1
  • EP3108452B1 patent drawingFigure 2
  • EP3108452B1 patent drawingFigure 3

AI summary

A graphics processing unit (GPU) may allocate a shared data channel in on-chip graphics memory of the GPU that is shared by at least two stages of a graphics processing pipeline. Shader units in the GPU may execute the at least two stages of the graphics processing pipeline. The GPU may store, in the shared data channel in on-chip graphics memory, data produced by each of the at least two stages of the graphics processing pipeline executing on the shader units.