Warp Processing Unit Discarded Thread State Management
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In graphics processing, when some threads in a warp are determined to be unnecessary due to their graphics fragments not contributing to the final rendered image, existing systems struggle to efficiently manage instruction execution and data access, leading to inefficiencies and power wastage as discarded threads continue to generate data access messages and delay dependent operations.
Innovation Solution
The introduction of a 'discarded state' for threads processed by the warp processing unit, where execution continues but data access messages are suppressed, and dependent operations can proceed independently, allowing for power savings and performance improvements by enabling other operations to commence without waiting for the discarded thread's completion.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Device complexity
If threads continue execution after being determined unnecessary, then instruction execution remains simple and uniform, but bandwidth usage increases and power consumption rises due to unnecessary data access messages
Solution Approach 1:
The patent introduces a discarded state that applies selectively to specific threads based on their contribution to the final image. Threads are evaluated individually and placed in discarded state locally, allowing differentiated treatment: active threads continue normal execution while discarded threads suppress data access messages. This local quality approach resolves the contradiction by maintaining simple uniform execution for active threads while applying optimization only where needed.
Solution Approach 2:
The patent changes the execution state parameter of threads from binary (active/inactive) to ternary (active/discarded/terminated). By introducing the discarded state as an intermediate parameter, the system can modify thread behavior to suppress data access messages without terminating execution completely. This parameter change enables power savings while maintaining execution simplicity.
2Ease of operation
If discarded threads continue to generate data access messages, then instruction execution remains straightforward, but bandwidth usage increases unnecessarily
Solution Approach 1:
The discarded state applies selective suppression of data access messages based on individual thread evaluation. Each thread is assessed for its contribution to the final image, and only those determined unnecessary are placed in discarded state with suppressed messages. This maintains straightforward execution management for active threads while reducing bandwidth usage from discarded threads.
3Device complexity
If dependent operations wait for discarded thread completion, then thread execution remains sequential and simple, but processing time increases
Solution Approach 1:
The patent determines thread discarding status before the thread completes execution. By evaluating thread necessity in advance and placing unsuitable threads in discarded state, the system allows dependent operations to proceed independently without waiting for discarded thread completion. This preliminary action resolves the contradiction by enabling parallel processing of dependent operations while maintaining simple execution management for active threads.
4Productivity
If all threads in a warp are processed uniformly, then instruction fetching is efficient with shared program counter, but power wastage occurs when some threads are unnecessary
Solution Approach 1:
The patent maintains uniform instruction fetching for the entire warp using the shared program counter, preserving fetching efficiency. Simultaneously, it applies local quality by evaluating individual thread contribution and placing specific threads in discarded state to suppress their data access messages. This resolves the contradiction by maintaining efficient batch fetching while reducing power consumption from unnecessary thread operations.
Data Source
AI summary
A warp processing unit controls, in dependence on a warp program counter shared between a plurality of threads processing respective graphics fragments, fetching of a next instruction to be executed for at least some of the plurality of threads. In response to a determination that a given subset of threads is to be discarded when at least one other subset of threads is to continue, the warp processing unit processes the given subset of threads in a discarded state. For a thread processed in the discarded state, execution of instructions continues for the discarded thread, and at least one of: generation of data access messages triggered by the discarded thread is suppressed; and at least one processing operation, which would be deferred until completion of the discarded thread had the thread not been discarded, is enabled to be commenced independently of an outcome of the discarded thread.


