Systems and methods for energy proportional scheduling
First Claim
1. A method for optimizing energy consumption of a data processor while executing a program, the method comprising performing by a compilation processor the steps of:
- (a) generating within the program a first power-coherent region;
(b) computing using an energy model a plurality of estimated energy consumption values for the first power-coherent region, each value corresponding to a respective power setting;
(c) identifying an energy-minimizing power setting corresponding to a minimum of the plurality of the estimated energy consumption values; and
(d) inserting in the first power-coherent region a power setting operation setting at least one parameter of the data processor according to the energy-minimizing power setting,wherein generating the first power-coherent region comprises performing by the compilation processor the steps of;
partitioning program instructions into a plurality of groups, each group having a specified number of instructions and a statically determined type, the type being either computation intensive or memory intensive; and
statically determining a type of a first group and merging another group into the first group if the type of the first group after the merging would not change and, otherwise designating the other group as a second group.
5 Assignments
0 Petitions
Accused Products
Abstract
A compilation system using an energy model based on a set of generic and practical hardware and software parameters is presented. The model can represent the major trends in energy consumption spanning potential hardware configurations using only parameters available at compilation time. Experimental verification indicates that the model is nimble yet sufficiently precise, allowing efficient selection of one or more parameters of a target computing system so as to minimize power/energy consumption of a program while achieving other performance related goals. A voltage and/or frequency optimization and selection is presented which can determine an efficient dynamic hardware configuration schedule at compilation time. In various embodiments, the configuration schedule is chosen based on its predicted effect on energy consumption. A concurrency throttling technique based on the energy model can exploit the power-gating features exposed by the target computing system to increase the energy efficiency of programs.
13 Citations
19 Claims
-
1. A method for optimizing energy consumption of a data processor while executing a program, the method comprising performing by a compilation processor the steps of:
-
(a) generating within the program a first power-coherent region; (b) computing using an energy model a plurality of estimated energy consumption values for the first power-coherent region, each value corresponding to a respective power setting; (c) identifying an energy-minimizing power setting corresponding to a minimum of the plurality of the estimated energy consumption values; and (d) inserting in the first power-coherent region a power setting operation setting at least one parameter of the data processor according to the energy-minimizing power setting, wherein generating the first power-coherent region comprises performing by the compilation processor the steps of; partitioning program instructions into a plurality of groups, each group having a specified number of instructions and a statically determined type, the type being either computation intensive or memory intensive; and statically determining a type of a first group and merging another group into the first group if the type of the first group after the merging would not change and, otherwise designating the other group as a second group. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A method for optimizing energy consumption of a data processor comprising a plurality of NT processing units, the method comprising performing by a compilation processor the steps of:
-
computing for a particular operation frequency, a required single-unit resource capacity for a specified resource, for executing a specified program using one unit of the plurality of NT processing units; computing using the single-unit resource capacity a maximum number of processing units Nmax, such that using more than Nmax processing units would exceed an available resource capacity of the specified resource, at the particular operation frequency; and inserting into the program by the compilation processor a command execution of which causes at least one and up to (NT-Nmax) processing units to enter a sleep mode when a number of processing units operating concurrently exceeds Nmax. - View Dependent Claims (14, 15)
-
-
16. A method for optimizing energy consumption of a data processor comprising a plurality of processing units, the method comprising performing by a compilation processor the steps of:
-
computing for a particular operation frequency and a particular memory level, a required single-unit memory bandwidth for executing a specified program using one unit of the plurality of processing units; computing using the single-unit memory bandwidth a maximum number of processing units Nmax, such that using more than Nmax processing units would exceed an available memory bandwidth at the particular operation frequency and the particular memory level; for each value of a number of processing units N in a range from 1 up to Nmax, estimating using an energy model an energy consumption for executing the specified program using N processing units; determining an optimized number of processing units Nopt for which; a difference between the estimated energy consumption using Nopt processing units and using Nmaxprocessing units is greater than a specified percentage of the estimated energy consumption using Nmax processing units; and a difference between performance using Nopt processing units and using Nmax processing units is less than a specified percentage of the performance using Nmaxprocessing units; and inserting into the program by the compilation processor a command execution of which causes at least one processing unit to enter a sleep mode when a number of processing units operating concurrently exceeds the optimized number of processing units Nopt. - View Dependent Claims (17, 18, 19)
-
Specification