Systems and methods for proactive and predictive power consumption reduction during workload execution
Disclosed is a controller and associated methods for proactively and predictively managing temperature and energy usage of different system processors running different workloads. The controller receives telemetry data from a particular processor. The controller deploys a workload to the particular processor and configures dynamic thresholds for the particular processor based on the telemetry data identifying a threshold temperature at which the particular processor is throttled. The dynamic thresholds restrict the particular processor to an upper frequency that is less than the maximum frequency supported by the particular processor and that avoids reaching the threshold temperature. The controller shifts the workload from used cores of the particular processor to under-utilized or unused cores of the particular processor in response to a temperature of the particular processor violating a dynamic threshold of the dynamic thresholds. The controller executes the workload across the under-utilized or unused cores according to the dynamic thresholds.
1 . A method for reducing power consumption during execution of a workload, the method comprising:
modeling utilization of a particular processor executing different workloads in a system comprising one or more processors based on telemetry data associated with the particular processor executing the different workloads;
deploying the workload to the particular processor;
determining that telemetry data associated with executing a first part of the workload matches the utilization of the particular processor executing a prior workload of the different workloads;
configuring dynamic thresholds for the particular processor based on the modeling of the utilization of the particular processor executing the prior workload, wherein configuring the dynamic thresholds comprises:
restricting the particular processor to an upper frequency that is less than a maximum frequency supported by the particular processor prior to the particular processor reaching a threshold at which the particular processor is throttled; and
increasing one or more of an operating frequency or power consumption of the particular processor for a second part of the workload in response to a modeled subsequent part of the utilization of the particular processor executing the prior workload corresponding to an increase in workload demand; and
executing the workload with the upper frequency of the particular processor restricted according to the dynamic thresholds.
2 . The method of claim 1 further comprising:
gating one or more cores of the particular processor that are detected to execute low-utilization tasks or are idle based on the telemetry data, wherein gating the one or more cores comprises turning off power to the one or more cores.
3 . The method of claim 2 further comprising:
detecting the one or more cores executing the low-utilization tasks or that are idle based on the telemetry data associated with the one or more cores comprising measurements of power consumption or core operating frequencies that do not exceed a specified threshold.
4 . The method of claim 1 further comprising:
analyzing the telemetry data by determining different amounts of power used by the particular processor to complete a unit of work at different frequencies; and
selecting the upper frequency for the dynamic thresholds to correspond to a frequency from the different frequencies that uses a least amount of power to complete the unit of work.
5 . The method of claim 1 , wherein the telemetry data comprises one or more measurements of temperature, power usage, operating frequency, or power state of the particular processor.
6 . The method of claim 1 further comprising:
detecting that a temperature of the particular processor violates one of the dynamic thresholds and that there are no idle or unused cores of the particular processor; and
shifting the workload from the particular processor to a second processor of the system based on telemetry data received for the second processor identifying one or more cores of the second processor being unused or idle.
7 . The method of claim 1 , wherein modeling the utilization comprises:
tracking power consumption of the particular processor during execution of the different workloads; and
generating a predictive model based on recurring patterns within the power consumption of the particular processor during the execution of the different workloads.
8 . The method of claim 1 ,
wherein determining that the telemetry data matches the utilization of the prior workload comprises:
matching power consumption of the particular processor during execution of an initial part of the workload to an initial part of a particular usage pattern from the particular processor executing the prior workload; and
wherein configuring the dynamic thresholds further comprises:
adjusting the dynamic thresholds based on power consumption associated with a subsequent part of the particular usage pattern.
9 . The method of claim 1 further comprising:
connecting to one or more of a Platform Environment Control Interface (PECI) or a Host Embedded Controller Interface (HECI) of the system in order to receive the telemetry data.
10 . The method of claim 1 , wherein configuring the dynamic thresholds further comprises:
setting a dynamic voltage and frequency scaling (DVFS) configuration that restricts the upper frequency of the particular processor.
11 . The method of claim 1 further comprising:
determining one or more used cores of the particular processor based on power consumption or operating frequency associated with the one or more used cores in the telemetry data being greater than power consumption or operating frequency associated with one or more under-utilized or unused cores of the particular processor in the telemetry data; and
shifting the workload from the one or more used cores to the one or more under-utilized or unused cores in response to a temperature of the particular processor violating a dynamic threshold of the dynamic thresholds.
12 . The method of claim 1 further comprising:
shifting the workload from used cores of the particular processor to under-utilized or unused cores of the particular processor in response to a temperature of the particular processor violating a dynamic threshold of the dynamic thresholds; and
executing the workload across the under-utilized or unused cores according to the dynamic thresholds.
13 . The method of claim 1 further comprising:
detecting two or more cores of the particular processor that execute at a utilization level that is less than a threshold;
shifting all tasks from the two or more cores of the particular processor to a particular core of the particular processor; and
deactivating the two or more cores that are not the particular core such that there is no power usage by the two or more cores.
14 . A system comprising:
one or more processors; and
a proactive and predictive power management controller (PPPMC) that is configured to:
model utilization of a particular processor of the one or more processors executing different workloads based on telemetry data associated with the particular processor executing the different workloads;
deploy a workload to the particular processor;
determine that telemetry data associated with executing a first part of the workload matches the utilization of the particular processor executing a prior workload of the different workloads;
configure dynamic thresholds for the particular processor based on the modeling of the utilization of the particular processor executing the prior workload, wherein configuring the dynamic thresholds comprises:
restricting the particular processor to an upper frequency that is less than a maximum frequency supported by the particular processor prior to the particular processor reaching a threshold at which the particular processor is throttled; and
increasing one or more of an operating frequency or power consumption of the particular processor for a second part of the workload in response to a modeled subsequent part of the utilization of the particular processor executing the prior workload corresponding to an increase in workload demand; and
execute the workload with the upper frequency of the particular processor restricted according to the dynamic thresholds.
15 . The system of claim 14 , wherein the PPPMC is further configured to:
gate one or more cores of the particular processor that are detected to execute low-utilization tasks or are idle based on the telemetry data, wherein gating the one or more cores comprises turning off power to the one or more cores.
16 . The system of claim 15 , wherein the PPPMC is further configured to:
detect the one or more cores executing the low-utilization tasks or that are idle based on the telemetry data associated with the one or more cores comprising measurements of power consumption or core operating frequencies that do not exceed a specified threshold.
17 . The system of claim 14 , wherein the PPPMC is further configured to:
analyze the telemetry data by determining different amounts of power used by the particular processor to complete a unit of work at different frequencies; and
select the upper frequency for the dynamic thresholds to correspond to a frequency from the different frequencies that uses a least amount of power to complete the unit of work.
18 . The system of claim 14 , wherein the telemetry data comprises one or more measurements of temperature, power usage, operating frequency, or power state of the particular processor.
19 . A non-transitory computer-readable medium storing program instructions that, when executed by one or more hardware processors of a system, cause the system to perform operations comprising:
modeling utilization of a particular processor of the one or more hardware processors executing different workloads based on telemetry data associated with the particular processor executing the different workloads;
deploying a workload to the particular processor;
determining that telemetry data associated with executing a first part of the workload matches the utilization of the particular processor executing a prior workload of the different workloads;
configuring dynamic thresholds for the particular processor based on the modeling of the utilization of the particular processor executing the prior workload, wherein configuring the dynamic thresholds comprises:
restricting the particular processor to an upper frequency that is less than a maximum frequency supported by the particular processor prior to the particular processor reaching a threshold at which the particular processor is throttled; and
increasing one or more of an operating frequency or power consumption of the particular processor for a second part of the workload in response to a modeled subsequent part of the utilization of the particular processor executing the prior workload corresponding to an increase in workload demand; and
executing the workload with the upper frequency of the particular processor restricted according to the dynamic thresholds.