GPU Register Allocation Mechanism for Dynamic Bank Mapping

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Graphics processing units face inefficiencies due to the dynamic variation in register usage, leading to poor die area utilization and increased latency from spill-fill operations, as they typically allocate registers for worst-case scenarios, resulting in underutilization of resources during hotspots.

Innovation Solution

A register allocation mechanism dynamically maps registers into logical banks, initially allocating some to threads and dynamically assigning shared banks during execution hotspots, which are then released upon exit, optimizing register usage across threads.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If registers are allocated for worst-case register usage, then thread performance is maintained, but die area utilization deteriorates

Engineering Contradiction:
Improvethread performanceVSAvoiddie area utilization
Core Design Contradiction:
ReliabilityVSArea of stationary object

Solution Approach 1:

The patent implements dynamic register allocation where the number of registers per thread is not fixed but can change during execution. The system monitors register usage in real-time and adjusts the allocation dynamically, allowing threads to have more registers when needed (hotspots) and fewer registers when usage is low, thereby optimizing the balance between performance and die area utilization.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent changes the parameter of register allocation from a static worst-case determination to a dynamic runtime adjustment. By monitoring actual register usage patterns and changing the allocation parameter based on observed behavior, the system achieves better resource utilization while maintaining performance when required.

Inventive Principle:
Principle #35Parameter changes

2Area of stationary object

If fewer registers are provided per thread, then die area is reduced, but spill-fill operations increase causing latency

Engineering Contradiction:
Improvedie areaVSAvoidlatency from spill-fill operations
Core Design Contradiction:
Area of stationary objectVSLoss of time

Solution Approach 1:

The system dynamically adjusts the number of registers allocated to each thread based on actual usage patterns. When a thread is in a hotspot with high register usage, the system dynamically increases the register allocation to avoid spill-fill operations and reduce latency. When register usage is low, the allocation is reduced to save die area, thus balancing both concerns dynamically.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent employs feedback mechanisms where the system monitors actual register usage by threads in real-time. This feedback information is used to adjust register allocation decisions, ensuring that enough registers are allocated to prevent costly spill-fill operations while avoiding over-allocation that would waste die area. The feedback loop enables adaptive optimization between area and performance.

Inventive Principle:
Principle #23Feedback

3Productivity

If a large number of registers are allocated per thread, then spill-fill operations are avoided, but die area utilization deteriorates

Engineering Contradiction:
ImproveperformanceVSAvoiddie area utilization
Core Design Contradiction:
ProductivityVSArea of stationary object

Solution Approach 1:

The patent implements dynamic register allocation that adapts to actual thread behavior. Instead of statically allocating a large number of registers to avoid spill-fill operations, the system dynamically increases allocation only when and where needed (during hotspots). This dynamic approach maintains high productivity when required while significantly improving die area utilization during periods of low register demand.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system applies partial allocation of registers based on actual needs rather than providing excessive allocation universally. By monitoring register usage patterns and allocating only the necessary number of registers at any given time, the system avoids the waste associated with excessive static allocation while still preventing spill-fill operations when needed.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS10430189B2GPU register allocation mechanism
Publication Date: 2019.10.01 INTEL CORP
  • US10430189B2 patent drawing
  • US10430189B2 patent drawing
  • US10430189B2 patent drawing

AI summary

An apparatus to facilitate register allocation is disclosed. The apparatus includes an execution unit (EU) to execute processing threads. The EU includes a plurality of registers and register allocation logic to map the plurality of registers into logical register banks and allocate the processing threads to one or more of the logical register banks.