Thread Execution Control for Shared Data in Graphics Processing
Find Innovative SolutionsGenerate 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
Engineering 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
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).
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.
2Productivity
If thread execution is optimized by sharing instruction fetch resources, then processing efficiency improves, but device complexity increases
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.
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
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.
Data Source
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.


