Geometry Shader Variable Output Algorithms

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional graphics processors are limited in implementing algorithms with variable input and output, particularly in domains like computer vision, due to their inability to efficiently produce adaptive, data-dependent output.

Innovation Solution

A multi-threaded graphics processor configured with a geometry shader unit is used to process input data and produce variable-length output, enabling algorithms such as histogram building, data compression, and Hough transforms by executing geometry shader programs that adaptively determine the output length based on input data.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If conventional graphics processors are used for image processing algorithms, then processing can be performed in parallel, but the output is limited to fixed-length data structures which reduces algorithm efficiency

Engineering Contradiction:
Improveprocessing throughputVSAvoidvariable output capability
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent applies dynamics by enabling the geometry shader to dynamically determine output data length based on input data characteristics. The shader can emit a variable number of vertices or primitives depending on the processed image content, allowing algorithms like histogram building, compression, and Hough transforms to produce adaptive output sizes that match the actual data requirements rather than fixed buffer sizes.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The invention changes the parameter of output data length from fixed to variable. By allowing the geometry shader to control the number of output elements based on input data analysis, the system can optimize memory usage and processing efficiency for different image processing tasks without requiring predetermined output buffer sizes.

Inventive Principle:
Principle #35Parameter changes

2Ease of manufacture

If fixed-length output buffers are used in graphics processors, then memory allocation is simplified, but memory bandwidth is wasted when output data is less than buffer capacity

Engineering Contradiction:
Improvememory allocation simplicityVSAvoidmemory bandwidth utilization
Core Design Contradiction:
Ease of manufactureVSLoss of energy

Solution Approach 1:

The system dynamically adjusts the output buffer size to match the actual amount of processed data. The geometry shader can signal the number of output elements, allowing the memory subsystem to allocate and transfer only the necessary data amount, thereby eliminating wasted bandwidth while maintaining relatively simple memory management through standard graphics API extensions.

Inventive Principle:
Principle #15Dynamics

3Adaptability or versatility

If CPU is used to process image data with variable output requirements, then algorithm flexibility is maintained, but CPU load increases and processing throughput decreases

Engineering Contradiction:
Improvealgorithm flexibilityVSAvoidprocessing throughput
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent substitutes the CPU's sequential processing mechanism with the GPU's parallel processing architecture. By implementing variable-length output algorithms in the geometry shader, the system maintains algorithmic flexibility previously only available on CPU while achieving massive parallelism and higher throughput through the GPU's many-core architecture.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

4Productivity

If geometry shader is configured to produce variable-length output, then processing efficiency for image algorithms is improved, but device complexity increases

Engineering Contradiction:
Improveimage processing throughputVSAvoidshader configuration complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The geometry shader unit serves multiple functions: it performs traditional geometry processing tasks while also executing image processing algorithms with variable-length output. This multi-functionality is achieved through a unified shader architecture that can be programmed to handle different algorithm types without requiring separate dedicated hardware for each function, thereby limiting the increase in device complexity.

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

Data Source

PatentUS9928642B2Using a geometry shader for variable input and output algorithms
Publication Date: 2018.03.27 NVIDIA CORP
  • US9928642B2 patent drawing
  • US9928642B2 patent drawing
  • US9928642B2 patent drawing

AI summary

A system and method uses the capabilities of a geometry shader unit within the multi-threaded graphics processor to implement algorithms with variable input and output.