Hierarchical GPU Register File for Wavefront Management
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The number of in-flight wavefronts that can be processed by a graphics processing unit (GPU) is limited by the size of the register file, which restricts processing efficiency due to limited circuit area and power constraints.
Innovation Solution
A hierarchical register file is implemented, where the top level is stored at local memory and lower levels at remote memory, with a register file control module managing execution data based on wavefront status to optimize storage and retrieval, allowing for a higher number of in-flight wavefronts without increasing circuit area or power consumption.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If the register file size is increased to support more in-flight wavefronts, then processing efficiency is improved, but circuit area and power consumption increase
Solution Approach 1:
The register file is segmented into multiple levels: a first level (local memory) and a second level (remote memory). This segmentation allows the system to have a large total register file size while keeping the locally accessible portion small, thus improving processing efficiency without proportionally increasing circuit area.
Solution Approach 2:
The patent introduces a hierarchical dimension to the register file structure, organizing registers across multiple memory levels rather than a single flat structure. This dimensional change enables efficient access to frequently used registers at the local level while storing less frequently accessed registers remotely, resolving the area-efficiency tradeoff.
2Productivity
If the register file size is increased to support more in-flight wavefronts, then processing efficiency is improved, but power consumption increases
Solution Approach 1:
The register file is segmented into multiple levels: a first level (local memory) and a second level (remote memory). This segmentation allows the system to have a large total register file size while keeping the locally accessible portion small, thus improving processing efficiency without proportionally increasing circuit area.
Solution Approach 2:
Different levels of the hierarchical register file have different access characteristics and are optimized for different usage patterns. The local memory provides fast access for active wavefronts, while remote memory provides capacity for inactive wavefronts, creating local quality variations that optimize both performance and power usage.
3Productivity
If a large register file is provided to support more in-flight wavefronts, then the number of in-flight wavefronts increases, but execution latency increases for remote access
Solution Approach 1:
The system proactively transfers execution data from the second level (remote memory) to the first level (local memory) before it is needed, based on prediction of when wavefronts will become active. This preliminary action ensures that data is ready in fast local memory when needed, avoiding latency penalties.
Solution Approach 2:
The register file control module monitors the status of in-flight wavefronts and uses this feedback to make intelligent decisions about data transfer timing. By tracking which wavefronts are active, inactive, or predicted to become active, the system optimizes when to move data between memory levels, balancing latency and resource usage.
Data Source
AI summary
A processor employs a hierarchical register file for a graphics processing unit (GPU). A top level of the hierarchical register file is stored at a local memory of the GPU (e.g., a memory on the same integrated circuit die as the GPU). Lower levels of the hierarchical register file are stored at a different, larger memory, such as a remote memory located on a different die than the GPU. A register file control module monitors the status of in-flight wavefronts at the GPU, and in particular whether each in-flight wavefront is active, predicted to be become active, or inactive. The register file control module places execution data for active and predicted-active wavefronts in the top level of the hierarchical register file and places execution data for inactive wavefronts at lower levels of the hierarchical register file.


