SIMT Processor Shared Register Architecture for Dynamic Predicates
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The existing GPU chip systems have limited and fixed predicate registers per warp, which are insufficient in complex scenarios, leading to underutilization of resources and reduced system performance due to the inability to share predicate registers among warps.
Innovation Solution
Implement a shared register group with dynamically allocated general-purpose registers for each warp, using a predicate base address register to indicate a subset of these registers as predicate registers, allowing for dynamic expansion from 7 to 256 registers and enabling sharing among warps.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If fixed predicate registers are allocated to each warp, then resource allocation is simple, but predicate register resources are insufficient in complex scenarios and cannot be shared among warps
Solution Approach 1:
The patent merges the concept of predicate registers with general-purpose registers by allowing general-purpose registers to serve dual purposes. Instead of having separate fixed predicate registers for each warp, the system uses a unified register pool where general-purpose registers can be dynamically allocated as predicate registers when needed, enabling resource sharing across multiple warps while maintaining the same physical register structures.
Solution Approach 2:
The patent introduces dynamic allocation mechanisms where the number and assignment of predicate registers to each warp can change during execution. The system can dynamically allocate more predicate registers to warps that need them for complex branching operations while allocating fewer to simpler warps, making the resource distribution adaptive rather than static.
2Reliability
If more predicate registers are provided for each warp, then complex branching scenarios can be handled, but resource utilization efficiency decreases when resources are limited
Solution Approach 1:
The patent makes general-purpose registers universal by enabling them to function as predicate registers when required. This multi-functionality allows the same physical registers to serve different purposes depending on the execution context, eliminating the need for dedicated predicate registers for each warp and improving overall resource utilization while maintaining the capability to handle complex branching scenarios.
Solution Approach 2:
The patent changes the parameter of register allocation from fixed to variable. The number of predicate registers assigned to each warp is no longer a constant but can be adjusted based on the actual execution needs, allowing the system to optimize resource distribution dynamically and prevent both resource exhaustion and underutilization.
3Productivity
If predicate registers cannot be shared among warps, then each warp has dedicated resources, but system performance is reduced due to inability to utilize remaining resources
Solution Approach 1:
The patent combines the predicate register spaces of multiple warps into a shared pool by removing the strict per-warp boundaries. General-purpose registers form a unified resource pool that can be allocated to serve as predicate registers for any warp that needs them, enabling inter-warp sharing and improving system-wide productivity while maintaining sufficient resources for each individual warp.
Data Source
AI summary
The invention provides a processor, a method for executing an instruction on a processor and a computer. The processor comprises at least one single-instruction multiple-thread processing units. The single-instruction multiple-thread processing unit includes a plurality of warps for executing an instruction; a shared register group, which includes a plurality of general-purpose registers shared by the plurality of warps; and a predicate base address register, which is configured to: correspond to the plurality of warps; and indicate a base address for a subset of the plurality of general-purpose registers that serves as a predicate register for the warp in the shared register group, wherein: the warp performs a predicated execution for an instruction in view of a predicate value in the subset of the plurality of general-purpose registers that serves as the predicate register for the warp.


