Thread Execution Control for Shared Data in Graphics Processing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current graphics processing systems face inefficiencies in handling thread groups, particularly in shaders, as they often execute instructions independently without optimizing for shared external input data, leading to increased processing and power consumption.

Innovation Solution

The method involves grouping execution threads into thread groups and identifying instructions that obtain external input data, determining if subsequent instructions produce the same result for all threads using the same data, and selectively executing these instructions either for all threads or a single thread based on data similarity, thereby reducing unnecessary processing.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If instructions are executed independently for each thread in a thread group, then processing accuracy is maintained, but processing efficiency deteriorates and power consumption increases

Engineering Contradiction:
Improveprocessing efficiencyVSAvoidpower consumption
Core Design Contradiction:
ProductivityVSUse of energy by moving object

Solution Approach 1:

The patent merges the execution of multiple threads into a single thread execution model. When threads in a thread group execute the same instruction and produce identical results, only one thread executes the instruction while others are disabled. This combining of execution resources resolves the contradiction by maintaining processing accuracy (through result replication) while improving efficiency and reducing power consumption (by executing fewer instructions).

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent applies partial action by selectively executing instructions for only one thread when results will be identical across all threads, rather than requiring full execution for every thread. The system performs exactly the necessary work (one execution) rather than excessive work (N executions for N threads), resolving the efficiency-power consumption contradiction.

Inventive Principle:
Principle #16Partial or excessive action

2Productivity

If thread execution is optimized by sharing instruction fetch resources, then processing efficiency improves, but device complexity increases

Engineering Contradiction:
Improveprocessing efficiencyVSAvoidcontrol mechanism complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system uses self-service through automatic detection and control. The execution unit automatically detects when threads produce identical results and disables unnecessary thread executions without requiring complex external control mechanisms. This self-managing approach resolves the contradiction by improving efficiency through resource sharing while keeping device complexity manageable through automated rather than manually-controlled mechanisms.

Inventive Principle:
Principle #25Self-service

3Speed

If all threads execute instructions using the same external input data, then processing speed improves, but processing accuracy deteriorates when data varies between threads

Engineering Contradiction:
Improveprocessing speedVSAvoidprocessing accuracy
Core Design Contradiction:
SpeedVSReliability

Solution Approach 1:

The patent implements dynamic execution control where the system adaptively adjusts thread execution based on data characteristics. When external input data is identical for all threads, the system dynamically disables unnecessary thread executions to improve speed. When data varies, the system dynamically enables all threads to maintain accuracy. This dynamic adaptation resolves the speed-accuracy contradiction.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS10310856B2Disabling thread execution when executing instructions in a data processing system
Publication Date: 2019.06.04 ARM LTD
  • US10310856B2 patent drawing
  • US10310856B2 patent drawing
  • US10310856B2 patent drawing

AI summary

A program is analyzed to identify instructions that will load external data and to determine whether such instructions are followed by a sequence of instructions that will produce the same result for each thread in a thread group if the data loaded by the load instruction is the same for each thread in the thread group. Each time there is an external load instruction, it is determined whether the data loaded by the external load instruction is the same for all threads of the thread group, and whether the external load instruction was indicated as being followed by a sequence of instructions that produce the same result if the external load instruction loads the same data value for each thread of a thread group. The subsequent instructions are then executed for only a single thread of the thread group, or for all the threads of the thread group.