Shader Program Dynamic Entry Point Control

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Graphics processing systems face inefficiencies due to the recalculation of identical expressions in shader programs across multiple threads, which can be improved by executing common expressions once and sharing the results among threads.

Innovation Solution

Incorporating a 'set-entry' instruction in the shader program that allows execution threads to start at different points, enabling common expressions to be executed initially and later threads to skip these calculations by modifying the start instruction indication dynamically.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a traditional shader program executes the same expressions for every thread, then each thread can be processed independently with high parallelism, but identical computations are repeated across all threads reducing overall efficiency

Engineering Contradiction:
Improveshader execution efficiencyVSAvoidredundant computation
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The patent applies preliminary action by executing common expressions that produce identical values for multiple threads before the main shader execution. A pilot thread or control mechanism evaluates these expressions first, stores the results, and then makes them available to subsequent threads, eliminating redundant computations while maintaining parallel processing benefits

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent uses copying by creating a pilot shader program that replicates the structure of the main shader but is designed to execute common expressions once. The results from this pilot execution are then copied and shared across all threads that would otherwise recalculate the same values independently

Inventive Principle:
Principle #26Copying

2Productivity

If a pilot shader program is used to execute common expressions once, then computation efficiency improves, but the system complexity increases due to requiring separate pilot and main shader programs

Engineering Contradiction:
Improvecomputation efficiencyVSAvoidshader program structure
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent merges the pilot shader functionality and main shader execution into a single unified shader program. The same shader code serves dual purposes: it executes common expressions when needed and processes work items independently, eliminating the need for separate pilot and main shader programs while maintaining computational efficiency

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The shader program is designed with multi-functionality, capable of performing both the pilot function (executing common expressions) and the main function (processing individual work items) within a single program structure. This universal approach reduces system complexity by consolidating what would otherwise require separate programs

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

3Ease of operation

If all threads execute the complete shader program, then each thread has full independence and simplicity in execution control, but threads waste time executing expressions that produce identical values

Engineering Contradiction:
Improvethread execution simplicityVSAvoidthread execution time
Core Design Contradiction:
Ease of operationVSLoss of time

Solution Approach 1:

The patent segments the shader execution into distinct phases: a preliminary phase where common expressions are evaluated once, and a main phase where threads process work items independently. This segmentation allows threads to skip redundant computations while maintaining execution simplicity through clear phase separation and control mechanisms

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS10891708B1Shader program execution in graphics processing
Publication Date: 2021.01.12 ARM LTD
  • US10891708B1 patent drawing
  • US10891708B1 patent drawing
  • US10891708B1 patent drawing

AI summary

A shader program to be executed by a graphics processor has associated with it a start instruction indication, indicating the instruction in the sequence of instructions for the program at which execution of the program should be started by an execution thread, and includes a set-entry instruction, which, when executed by a thread, will cause the start instruction indication to be modified to indicate a different instruction in the sequence of instructions for the program at which execution of the program should be started by an execution thread. When executing the program, execution threads determine from the start instruction indication associated with the program, the instruction in the sequence of instructions for the program at which they should start execution of the program.