Distributed Stream Output Units for GPU Frame Buffer Bandwidth Saturation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional GPUs with a single stream output unit fail to saturate the frame buffer bandwidth, creating a bottleneck in the graphics processing pipeline, especially when implementing parallel shader programs, as they write data serially and have narrower bandwidth compared to the frame buffer, reducing the benefits of parallel processing.

Innovation Solution

Implementing distributed stream output units that receive batch identification numbers to synchronize and write data to stream output buffers in parallel, allowing multiple units to write to the frame buffer during the same clock cycle and match the frame buffer bandwidth, thereby reducing the bottleneck and increasing overall bandwidth.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a single stream output unit is used, then device complexity is reduced, but frame buffer bandwidth saturation is not achieved and a bottleneck is created in the graphics processing pipeline

Engineering Contradiction:
Improveframe buffer bandwidth saturationVSAvoidstream output unit complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent divides the single stream output unit into multiple distributed stream output units (SO0-SO3), each capable of independent operation. Each SO unit has its own buffer and can write to the frame buffer simultaneously, enabling parallel data output that saturates the frame buffer bandwidth while maintaining manageable complexity through modular design

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Multiple stream output units are merged into a coordinated system where they share common control logic and buffer management. The head of each SO unit is merged with a central controller that synchronizes their operations, allowing them to function as a unified parallel output system that achieves full bandwidth utilization

Inventive Principle:
Principle #5Merging (Combining)

2Productivity

If a single stream output unit is used, then device complexity is reduced, but parallel shader programs must wait for serialized data writing

Engineering Contradiction:
Improveparallel processing efficiencyVSAvoidstream output unit structure
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments the stream output functionality across multiple independent units, allowing parallel shader programs to write data simultaneously to different SO units without waiting for serialization. Each SO unit independently writes to its designated buffer region, eliminating the bottleneck that forced shaders to wait

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

A central controller acts as an intermediary that coordinates between multiple SO units and the frame buffer. It manages buffer allocations, synchronizes write operations, and ensures proper data flow without requiring shaders to wait, thereby maintaining parallel processing efficiency

Inventive Principle:
Principle #24Intermediary (Mediator)

3Productivity

If the bandwidth of the single stream output unit is increased to match frame buffer bandwidth, then bandwidth saturation is achieved, but the size and complexity of the stream output unit layout increases

Engineering Contradiction:
Improvestream output bandwidthVSAvoidstream output unit size
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

Instead of creating one massive high-bandwidth stream output unit, the patent segments the bandwidth capacity across multiple smaller SO units. Each unit has moderate bandwidth capabilities, but their combined parallel output achieves full frame buffer bandwidth saturation without requiring any single unit to be overly complex or large

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent merges multiple moderate-bandwidth SO units into a coordinated system where their combined throughput matches the frame buffer bandwidth. This approach achieves the desired total bandwidth while keeping individual unit sizes and complexities manageable through distributed architecture

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS8817031B2Distributed stream output in a parallel processing unit
Publication Date: 2014.08.26 NVIDIA CORP
  • US8817031B2 patent drawing
  • US8817031B2 patent drawing
  • US8817031B2 patent drawing

AI summary

A technique for performing stream output operations in a parallel processing system is disclosed. A stream synchronization unit is provided that enables the parallel processing unit to track batches of vertices being processed in a graphics processing pipeline. A plurality of stream output units is also provided, where each stream output unit writes vertex attribute data to one or more stream output buffers for a portion of the batches of vertices. A messaging protocol is implemented between the stream synchronization unit and the plurality of stream output units that ensures that each of the stream output units writes vertex attribute data for the particular batch of vertices distributed to that particular stream output unit in the same order in the stream output buffers as the order in which the batch of vertices was received from a device driver by the parallel processing unit.