GPU Scalar Execution via Operand Vector Compression
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
GPU architectures face power and thermal constraints due to high consumption by execution units and register files, particularly in SIMT execution where operand vectors often have similarities that are not leveraged for energy savings.
Innovation Solution
Implement a GPU architecture that monitors and exploits similarities in operand vectors across execution units, allowing for scalar execution on a single unit and reducing register file memory activation, using existing crossbar switches for routing and compression to achieve power savings.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If multiple execution units are activated for SIMT execution, then computational throughput is improved, but power consumption increases
Solution Approach 1:
Multiple execution units are merged into a single active execution unit when operand vectors are identical. The scalar execution unit combines the work of multiple threads by executing a single instruction on a single operand vector and broadcasting the result to all execution units, thereby reducing overall power consumption while maintaining computational throughput.
Solution Approach 2:
The system dynamically adjusts the number of active execution units based on operand vector similarity. When all operand vectors are identical, the system transitions to scalar execution mode with a single active execution unit. When operand vectors differ, the system activates multiple execution units for full SIMT execution, creating a dynamic adaptation between extreme cases.
2Reliability
If all register file memory circuits are activated to store operand vectors, then data availability is improved, but power consumption increases
Solution Approach 1:
The system extracts and stores only a single representative operand vector in the register file when all threads have identical operands. This single stored vector is then broadcast to all execution units, eliminating the need to activate and store multiple duplicate vectors in the register file, thereby reducing power consumption while maintaining data availability.
Solution Approach 2:
The single stored operand vector in the register file serves multiple execution units simultaneously. By storing only one universal vector that can be broadcast to all execution units, the system achieves multi-functionality, eliminating redundant storage and reducing the number of memory circuits that need to be activated.
3Duration of action of stationary object
If operand vectors are stored in register file memory circuits, then data retention is improved, but power consumption increases
Solution Approach 1:
The system extracts only the essential operand vector data and stores it in a single location in the register file. By removing redundant duplicate storage of identical vectors, the system reduces the total amount of data that needs to be retained in memory circuits, thereby reducing the number of circuits that must remain active and lowering overall power consumption.
4Use of energy by moving object
If scalar execution is implemented on a single execution unit, then power consumption is reduced, but computational throughput may decrease
Solution Approach 1:
The scalar execution unit merges the computational work of multiple threads into a single execution. By executing one instruction on one operand vector and then broadcasting the result to all execution units, the system combines multiple parallel operations into a single operation, reducing power consumption while maintaining the same computational output.
Solution Approach 2:
The single active execution unit serves multiple execution units by broadcasting its result to all threads. The execution unit performs its operation and then distributes the result to all other execution units, allowing the system to maintain full computational throughput while using only one execution unit actively.
Data Source
AI summary
A GPU architecture employs a crossbar switch to preferentially store operand vectors in a compressed form allowing reduction in the number of memory circuits that must be activated during an operand fetch and to allow existing execution units to be used for scalar execution. Scalar execution can be performed during branch divergence.


