GPU Burst Execution Using Flip-Flop Registers to Cut SRAM Access
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
GPU register files consume significant power and area due to the large capacity required for parallel threads, with SRAMs not scaling efficiently, leading to increased power consumption and chip area usage.
Innovation Solution
Implement a separate sub-processor within the GPU to execute atomically executable groups of instructions, using flip-flop based registers and a dedicated instruction cache to reduce SRAM access, and insert a trigger instruction to manage burst execution.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If a large capacity of register files is used to support a large number of parallel threads, then the GPU can maintain more parallel threads, but power consumption and chip area increase significantly
Solution Approach 1:
The register file is segmented into two distinct parts: a large-capacity SRAM-based register file for general-purpose thread storage, and a smaller, faster flip-flop-based register file dedicated to burst instruction execution. This segmentation allows the system to maintain large thread capacity while isolating the high-speed registration needs to a smaller, more efficient structure that consumes less power.
Solution Approach 2:
The burst instruction execution path is extracted from the main instruction execution flow. By identifying and separating atomic instruction groups into dedicated bursts with their own register file, the system removes the need for these specific instructions to access the large SRAM register file, thereby reducing overall SRAM access frequency and power consumption.
2Adaptability or versatility
If a large capacity of SRAM-based register files is used, then the GPU can support more parallel threads, but chip area usage increases
Solution Approach 1:
The register file is segmented into two distinct parts: a large-capacity SRAM-based register file for general-purpose thread storage, and a smaller, faster flip-flop-based register file dedicated to burst instruction execution. This segmentation allows the system to maintain large thread capacity while isolating the high-speed registration needs to a smaller, more efficient structure that consumes less area.
Solution Approach 2:
Different register types are used in different contexts: SRAM for general thread storage where capacity is paramount, and flip-flops for burst instruction execution where speed and area efficiency are critical. This local optimization ensures that each register type is used where it provides the most benefit.
3Productivity
If the GPU switches between threads frequently, then thread progress can be maintained, but SRAM access frequency increases leading to higher power consumption
Solution Approach 1:
The burst instruction execution path is extracted from the main instruction execution flow. By identifying and separating atomic instruction groups into dedicated bursts with their own register file, the system removes the need for these specific instructions to access the large SRAM register file, thereby reducing overall SRAM access frequency and power consumption.
Solution Approach 2:
Burst instructions are pre-identified and pre-loaded into the flip-flop register file before execution. This preliminary action allows the burst instructions to execute without requiring real-time SRAM access, reducing the power consumption associated with frequent SRAM reads and writes during thread switching.
4Device complexity
If SRAM-based register files are used for all instructions, then uniform memory access is simplified, but access latency increases for frequently used registers
Solution Approach 1:
The register file is segmented into two distinct parts: a large-capacity SRAM-based register file for general-purpose thread storage, and a smaller, faster flip-flop-based register file dedicated to burst instruction execution. This segmentation allows the system to maintain large thread capacity while isolating the high-speed registration needs to a smaller, more efficient structure that consumes less area.
Solution Approach 2:
Different register types are used in different contexts: SRAM for general thread storage where capacity is paramount, and flip-flops for burst instruction execution where speed and area efficiency are critical. This local optimization ensures that each register type is used where it provides the most benefit.
Data Source
AI summary
A computer-implemented method of compiling a program includes analysing the program to identify at least one group of instructions within the program that can be executed atomically. In response to identifying a group of instructions that can be executed atomically, the group of instructions is extracted from the program to form a burst; a modified program is created by inserting an instruction into the program in place of the extracted group of instructions. The instruction is configured to trigger execution of the burst, and the burst and the modified program are saved separately.


