Shared ALU Arbitration for GPU Power and Area Reduction
Solution Overview
Problem
Graphics processing units (GPUs) face high power consumption issues, particularly in mobile applications, due to varying execution rates of different arithmetic logic units (ALUs) and inefficient sharing of ALUs, which leads to increased energy usage and potential performance bottlenecks.
Innovation Solution
Implementing a system with dedicated and shared ALUs, where arbitration circuitry manages operation sequencing to stagger thread execution, allowing shared ALUs to operate at different rates and reducing power consumption by optimizing ALU usage and layout, thereby improving performance and reducing chip area.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If multiple dedicated ALUs are provided for different threads, then each thread can execute at its required rate, but chip area and power consumption increase
Solution Approach 1:
Multiple ALUs are merged into a shared resource that serves multiple threads. The ALU sharing mechanism allows different threads to access the same ALU at different rates based on their execution needs, thereby reducing the total number of ALUs required and decreasing chip area while maintaining productivity.
Solution Approach 2:
The shared ALU is designed to be universal, capable of serving multiple threads with different execution rate requirements. By making the ALU multi-functional and accessible to various threads through an arbitration mechanism, the system reduces hardware duplication and optimizes chip area utilization.
2Productivity
If multiple dedicated ALUs are provided for different threads, then each thread can execute at its required rate, but power consumption increases
Solution Approach 1:
Multiple ALUs are merged into a shared resource that serves multiple threads. The ALU sharing mechanism allows different threads to access the same ALU at different rates based on their execution needs, thereby reducing the total number of ALUs required and decreasing chip area while maintaining productivity.
Solution Approach 2:
The shared ALU is designed to be universal, capable of serving multiple threads with different execution rate requirements. By making the ALU multi-functional and accessible to various threads through an arbitration mechanism, the system reduces hardware duplication and optimizes chip area utilization.
3Use of energy by stationary object
If ALUs are shared between threads, then chip area and power consumption are reduced, but execution rate may be limited by ALU availability
Solution Approach 1:
The system dynamically adjusts the execution rate of shared ALUs based on thread priorities and availability. The arbitration circuitry dynamically selects which thread accesses the ALU and at what rate, allowing the system to optimize between power consumption and execution rate in real-time based on workload conditions.
Solution Approach 2:
The arbitration mechanism implements periodic scheduling of thread access to shared ALUs. By alternating between threads in a structured manner, the system ensures that each thread receives adequate ALU access over time while maintaining overall power efficiency and preventing any single thread from monopolizing the resource.
4Productivity
If ALUs operate at different rates, then specific operations can be optimized, but resource management complexity increases
Solution Approach 1:
The system dynamically adjusts the execution rate of shared ALUs based on thread priorities and availability. The arbitration circuitry dynamically selects which thread accesses the ALU and at what rate, allowing the system to optimize between power consumption and execution rate in real-time based on workload conditions.
Solution Approach 2:
The arbitration mechanism implements periodic scheduling of thread access to shared ALUs. By alternating between threads in a structured manner, the system ensures that each thread receives adequate ALU access over time while maintaining overall power efficiency and preventing any single thread from monopolizing the resource.
Data Source
AI summary
Techniques are disclosed relating to sharing an arithmetic logic unit (ALU) between multiple threads. In some embodiments, the threads also have dedicated ALUs for other types of operations. In some embodiments, arbitration circuitry is configured to receive operations to be performed by the shared arithmetic logic unit from the set of threads and issue the received operations to the shared arithmetic logic unit. In some embodiments, the arbitration circuitry is configured to switch to a different one of the set of threads for each instruction issued to the shared arithmetic logic unit. In some embodiments, the shared ALU is configured to perform 32-bit operations and the dedicated ALUs are configured to perform the same operations using 16-bit precision. In some embodiments, the shared ALU is shared between two threads and is physically located adjacent to other datapath circuitry for the two threads.


