Dynamic control of SIMDs
First Claim
1. A method for use in a graphics processing unit (GPU) comprising:
- determining a condition related to the power consumption of the GPU, wherein the condition is based on any one or a combination of temperature, current, and processor activity;
programming a configuration register to disable one or more single instruction multiple data (SIMD) units in a shader pipeline in response to the determined condition;
dynamically disabling the one or more SIMD units in the shader pipeline based on the determined condition, wherein the dynamically disabling the one or more SIMD units includes providing dynamic medium grain clock gating to the one or more SIMD units and dynamic control of one or more clocks to each SIMD unit; and
assigning one or more work threads to the one or more active SIMD units in the shader pipeline, wherein the work threads are assigned to one or more active SIMD units without having to flush the shader pipeline.
1 Assignment
0 Petitions
Accused Products
Abstract
Systems and methods to improve performance in a graphics processing unit are described herein. Embodiments achieve power saving in a graphics processing unit by dynamically activating/deactivating individual SIMDs in a shader complex that comprises multiple SIMD units. On-the-fly dynamic disabling and enabling of individual SIMDs provides flexibility in achieving a required performance and power level for a given processing application. Embodiments of the invention also achieve dynamic medium grain clock gating of SIMDs in a shader complex. Embodiments reduce switching power by shutting down clock trees to unused logic by providing a clock on demand mechanism. In this way, embodiments enhance clock gating to save more switching power for the duration of time when SIMDs are idle (or assigned no work). Embodiments can also save leakage power by power gating SIMDs for a duration when SIMDs are idle for an extended period of time.
38 Citations
16 Claims
-
1. A method for use in a graphics processing unit (GPU) comprising:
-
determining a condition related to the power consumption of the GPU, wherein the condition is based on any one or a combination of temperature, current, and processor activity; programming a configuration register to disable one or more single instruction multiple data (SIMD) units in a shader pipeline in response to the determined condition; dynamically disabling the one or more SIMD units in the shader pipeline based on the determined condition, wherein the dynamically disabling the one or more SIMD units includes providing dynamic medium grain clock gating to the one or more SIMD units and dynamic control of one or more clocks to each SIMD unit; and assigning one or more work threads to the one or more active SIMD units in the shader pipeline, wherein the work threads are assigned to one or more active SIMD units without having to flush the shader pipeline. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A system comprising:
-
a graphics processing unit (GPU) configured to determine a condition related to the power consumption of the GPU, wherein the condition is based on any one or a combination of temperature, current, and processor activity; the GPU further configured to program a configuration register to disable one or more single instruction multiple data (SIMD) units in a shader pipeline in response to the determined condition; the GPU further configured to dynamically disable the one or more SIMD units in the shader pipeline based on the determined condition, wherein the dynamically disabling the one or more SIMD units includes providing dynamic medium grain clock gating to the one or more SIMD units and dynamic control of one or more clocks to each SIMD unit; and the GPU is further configured to assign one or more work threads to the one or more active SIMD units in the shader pipeline, wherein the work threads are assigned to one or more active SIMD units without having to flush the shader pipeline. - View Dependent Claims (12, 13)
-
-
14. A non-transitory computer-readable medium that stores instructions adapted to be executed by a processor to:
-
determine a condition related to the power consumption of the GPU, wherein the condition is based on any one or a combination of temperature, current, and processor activity; program a configuration register to disable one or more single instruction multiple data (SIMD) units in a shader pipeline in response to the determined condition; dynamically disable the one or more SIMD units in the shader pipeline based on the determined condition, wherein the dynamically disabling the one or more SIMD units includes providing dynamic medium grain clock gating to the one or more SIMD units and dynamic control of one or more clocks to each SIMD unit; and assign one or more work threads to one or more active SIMD units in the shader pipeline, wherein the work threads are assigned to the one or more active SIMD units without having to flush the shader pipeline. - View Dependent Claims (15, 16)
-
Specification