In the computer field, improving the performance of processors is an important aspect. A processor is designed with a range of operating frequencies. The maximum power can be fed to the processor is limited by several factors such as temperature, power supply ability of the power delivery system, and the resistance drop issue of power supply network etc. How to make a processor execute an application or program faster to achieve a better performance within its power limit is a challenging problem.
At present, various ways have been proposed to optimize processor performance within a processor's power limit. For example, one existing method is a cooperative boosting method which is used to do the power management in an accelerated processing unit (APU) system. In this method, the power is allocated between the CPU and GPU to achieve optimal performance by considering the performance coupling and thermal coupling effects.
Another proposed method is a power token balancing method which allocates the power budget in parallel multithreaded workloads to improve performance while maintaining the power in the power budget, i.e. taking power from non-critical threads and applying it to the critical threads.
Although the above methods in prior art can improve executing performance, the above existing methods for improving processor performance are based on spatial power allocation and trying to optimize the performance in a given short timing window. These existing methods do not consider the temporal thermal coupling impact on a processor performance and thus there may be a sub-optimal result.
To overcome the shortcomings in existing performance improving methods so as to further optimize the processor performance, the present disclosure provides a temporal thermal coupling aware power budgeting method and system which considers the temporal thermal coupling impact on processor performance.
In a first aspect, a power budgeting method is provided. The method comprises predicting a frequency-insensitive phase and a frequency-sensitive phase of a program; decreasing the power applied to a processor when the program executed by the processor enters the frequency-insensitive phase; and increasing the power applied to the processor when the program executed by the processor enters the frequency-sensitive phase. The frequency-sensitive phase may follow the frequency-insensitive phase, and the power may be applied without exceeding the maximum allowed temperature of the processor.
In a second aspect, a power budgeting method is provided. The method comprises determining a frequency-insensitive thread and a frequency-sensitive thread of multiple programs; assigning the frequency-insensitive thread and the frequency-sensitive thread of the multiple programs to a same core alternatively; decreasing the power applied to the processor when the processor executes the frequency-insensitive thread; and increasing the power applied to the processor when the processor executes the frequency-sensitive thread. The frequency-sensitive thread may follow the frequency-insensitive thread, and the power may be applied without exceeding the maximum allowed temperature of the processor.
In a third aspect, a power budgeting system is provided. The system comprises means for predicting a frequency-insensitive phase and a frequency-sensitive phase of a program; means for decreasing the power applied to a processor when the program executed by the processor enters the frequency-insensitive phase; and means for increasing the power applied to the processor when the program executed by the processor enters the frequency-sensitive phase. The frequency-sensitive phase may be entered following the frequency-insensitive phase, and the power may be applied without exceeding the maximum allowed temperature of the processor.
In a fourth aspect, a power budgeting system is provided. The system comprises means for determining a frequency-insensitive thread and a frequency-sensitive thread of multiple programs; means for assigning the frequency-insensitive thread and the frequency-sensitive thread of the multiple programs to a same core alternatively; means for decreasing the power applied to the processor when the processor executes the frequency-insensitive thread; and means for increasing the power applied to the processor when the processor executes the frequency-sensitive thread. The frequency-sensitive thread may be entered following the frequency-insensitive thread, and the power may be applied without exceeding the maximum allowed temperature of the processor.
By providing the steps in the above mentioned method and above-mentioned system, the present disclosure can overcome the deficiencies in existing power management schemes by optimizing the power applied to the processor temporally and thus can further improve the performance of processors. In addition, the power budgeting method and system of present disclosure is thermal aware, which also can ensure reliability of the processor.
The present disclosure is illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings and in which like reference numerals refer to similar elements and in which:
The present disclosure will now describe in detail with reference to a few aspects thereof as illustrated in the accompanying drawings. In the following description, numerous specific details are set forth in order to provide a thorough understanding of the present disclosure. It will be apparent, however, to one skilled in the art, that the embodiments of the present disclosure may be practiced without some or all of these specific details. In other instances, well known process steps and/or structures have not been described in detail in order to not unnecessarily obscure the present disclosure.
In addition to being influenced by several hardware characteristics such as architecture, size of cache, etc., the performance of a processor is also impacted by the characteristic of the workload or program executed thereon. That is to say, the characteristic of programs or applications also has an influence on the executing performance of a processor. Some applications or programs are frequency-sensitive. When they are executed by a processor, the executing performance of the processor can be boosted significantly with a boost of the operating frequency of the processor. Some applications or programs are frequency-insensitive. When they are executed by a processor, frequency changes have low influence on the executing performance of the processor. Meanwhile, for a single program or application, the frequency sensitivity may also vary in different execution phases. Some execution phases of the program or application may be frequency-insensitive while others may be frequency-sensitive, which also influences the execution performance of a processor.
In
As shown in the example shown in
In an explanatory aspect,
In an aspect, in above step 32, the frequency sensitivity of a current phase and frequency sensitivity of a next phase are used to determine an optimal power budget for the current phase. That is to say, the relative relationship between the sensitivity levels of the current phase and the next phase is used to determine the power decreasing degree in step 32. For example, in an aspect, if the frequency sensitivity level is very low at current phase and very high at next phase, the power for the current phase can be lowered to the minimum level, so that it will not significantly diminish performance of current phase, but can get a highest frequency boost at the next phase. If the frequency sensitivity level for current phase is medium low, and the sensitivity for next phase is medium high, the power for the current phase can be lowered to a relatively low level which is not as aggressive as the first case. In the extreme case, when the frequency sensitivity level for the current and next phases are similar, the power is not lowered.
In an aspect, the frequency-insensitive phase of the program may be, for example, the phase where memory-related operations such as storage operation, access operation etc. are executed. The frequency-sensitive phase of the program may be, for example, the phase where computation-related operations such as arithmetic operations, logical operation etc. are executed.
According to the above method shown in
In an aspect,
In an aspect, in above step 44, the frequency sensitivity of a current thread and frequency sensitivity of a next thread are used to determine an optimal power budget for the current thread. That is to say, the relative relationship between the sensitivity levels of the current thread and the next thread is used to determine the power decreasing degree in step 44. For example, in an aspect, if the frequency sensitivity level is very low at current thread and very high at next thread, the power for the current thread can be lowered to the minimum level, so that it will not significantly diminish performance of current thread, but can get a highest frequency boost at the next thread. If the frequency sensitivity level for current thread is medium low, and the sensitivity for next thread is medium high, the power for the current thread can be lowered to a relatively low level which is not as aggressive as the first case. In the extreme case, when the frequency sensitivity level for the current and next threads are similar, the power is not lowered.
According to above method shown in
In addition to improving the overall performance for executing programs, the described power budgeting methods of embodiments of the present disclosure also can produce other benefits. For example, the power budgeting method of the present disclosure is thermal aware, which can ensure reliability of the processor. And, the power budgeting methods of present disclosure is a power budgeting method based on temporal power allocation, which can also be combined with other spatial power budgeting methods to achieve a comprehensive spatial and temporal optimization of performance of processors.
Although features and elements are described above in particular combinations, each feature or element can be used alone without the other features and elements or in various combinations with or without other features and elements. The methods or flow charts provided herein may be implemented in a computer program, software, or firmware incorporated in a computer-readable storage medium for execution by a general purpose computer or a processor. Examples of computer-readable media include, but are not limited to: magnetic media such as hard disks, floppy disks, and magnetic tape; optical media such as CD-ROMs and holographic devices; magneto-optical media such floptical disks; and hardware devices that are specially configured to store and execute program code, such as application-specific integrated circuits (ASICs), programmable logic devices and ROM and RAM devices.
It will be apparent to those skilled in the art that various modifications and variations can be made to the embodiments described herein without departing from the spirit and scope of the claimed subject matter. Thus, it is intended that the specification covers modifications and variations of the various embodiments described herein, provided such modification and variations come within the scope of the appended claims and their equivalents.
Number | Date | Country | Kind |
---|---|---|---|
201510239507.7 | May 2015 | CN | national |
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/CN2015/093473 | 10/30/2015 | WO | 00 |