Optimization method and optimization system for computing system
By determining the performance index based on multiple functions in the computing system, and using an optimization process to adjust the power input of the system components, the problem of system performance degradation caused by the power upper limit in the existing technology is solved, and the optimization and recovery of system performance are achieved.
Patent Information
- Application Number
- CN202411388418.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-09-30
- Publication Date
- 2025-01-24
AI Technical Summary
When the prior art caps the power consumption of the computing system to a certain level, the system performance is affected and there is a lack of system-level optimization mechanism to restore system performance.
By determining the performance index based on at least two functions, including functions related to the CPU, GPU, memory, and PCIE adapter, the optimization process is used to determine the change of these variables, and the performance index of the power index of the power per unit of the power per unit of the power of the system is used.
Achieve the optimization of system performance during the upper limit of power and the period of throttling, reduce the loss of system performance, and improve the system performance when necessary.
Smart Images

Figure CN119357511A_ABST
Abstract
Description
Technical Field
[0001] The embodiments of the present application relate to an optimization method and an optimization system, and more particularly to an optimization method and an optimization system for a computing system. Background Art
[0002] Power capping measures, such as over current protection (OCP) and over temperature protection (OTP), are used to cap the power consumption of computing devices and computing systems at a certain level to protect system components from power failure or thermal failure. However, when system power consumption is limited by the power cap, system performance per unit power or per unit watt will be affected.
[0003] Throttling or power braking, through measures such as over-current protection (OCP) and over-temperature protection (OTP), is used to force system components such as the central processing unit (CPU), graphics processing unit (GPU), and peripheral component interconnect express (PCIe) adapter to operate at a lower frequency or lower power consumption to protect these system components from power failure or thermal failure. However, throttling can cause serious impact on system performance. After throttling, the system usually needs to gradually release the throttling until the system is completely released to restore normal operation of the system. Therefore, it is necessary to provide a system-level optimization method and system with a power capping mechanism that optimizes system performance. Summary of the invention
[0004] According to one aspect, an embodiment of the present application relates to an optimization method for a computing system that determines a performance index based on at least two functions, the at least two functions including a first function associated with a first system component and a second function associated with a second system component, the second system component being different from the first system component. The first function is determined by a first variable; the second function is determined by a second variable; and the method further includes determining a change in the first variable and a change in the second variable using an optimization process.
[0005] According to one embodiment, the first function is any one selected from the group consisting of CPU performance per unit power, GPU performance per unit power, memory performance per unit power, and PCIe adapter performance per unit power.
[0006] According to one embodiment, the second function is any one selected from the group consisting of CPU performance per unit power, GPU performance per unit power, memory performance per unit power, and PCIe adapter performance per unit power.
[0007] According to one embodiment, the method further comprises: determining whether a power cap is required before determining the change of the first variable and the change of the second variable.
[0008] According to one embodiment, the change in the first variable and the change in the second variable are determined to result in a minimum decrease in performance index value per unit performance index change of system power.
[0009] According to one embodiment, the method further comprises: before determining the change of the first variable and the change of the second variable, determining whether throttling release is required.
[0010] According to one embodiment, the change in the first variable and the change in the second variable are determined to result in a maximum increase in performance index value per unit performance index change of system power.
[0011] According to one embodiment, the performance index is further determined based on a weight ratio.
[0012] According to one embodiment, the first coefficient of the first function and the second coefficient of the second function are determined based on the weight ratio.
[0013] According to one embodiment, the weight ratio is determined based on workload distribution.
[0014] According to one embodiment, the weight ratio is determined based on system settings.
[0015] According to one embodiment, the optimization process is any one selected from the group consisting of gradient descent method, Newton's method, conjugate gradient method and Broyden-Fletcher-Goldfarb-Chanteau algorithm.
[0016] According to another aspect, an embodiment of the present application relates to an optimization system for a computing system, the system comprising a first system component and a second system component. The system may also include a controller configured to determine a performance index based on at least two functions, the at least two functions comprising a first function associated with the first system component and a second function associated with the second system component, the second system component being different from the first system component. The first function may be determined by a first variable. The second function may be determined by a second variable. The controller may also be configured to determine a change in the first variable and a change in the second variable using an optimization process.
[0017] According to one embodiment, the controller is arranged to determine whether a power cap is required before determining a change in the first variable and a change in the second variable.
[0018] According to one embodiment, the change in the first variable and the change in the second variable are determined to result in a minimum decrease in performance index value per unit performance index change of system power.
[0019] According to one embodiment, the controller is arranged to determine whether throttling release is required before determining the change of the first variable and the change of the second variable.
[0020] According to one embodiment, the change in the first variable and the change in the second variable are determined to result in a maximum increase in performance index value per unit performance index change of system power.
[0021] According to one embodiment, the performance index is further determined based on a weight ratio.
[0022] According to one embodiment, the first coefficient of the first function and the second coefficient of the second function are determined based on the weight ratio.
[0023] According to one embodiment, the optimization process is any one selected from the group consisting of gradient descent method, Newton's method, conjugate gradient method and Broyden-Fletcher-Goldfarb-Chanteau algorithm. BRIEF DESCRIPTION OF THE DRAWINGS
[0024] Various embodiments are described below with reference to the following drawings. In the drawings, like reference numerals refer to substantially the same components throughout the different views. The drawings are not necessarily drawn to scale, with emphasis instead being placed on illustrating the principles of the various embodiments.
[0025] Figure 1 It is an overall block diagram of the method according to an embodiment of the present application.
[0026] Figure 2 It is an overall block diagram of a system according to an embodiment of the present application.
[0027] Figure 3A A graph showing performance per unit power (in percentage or %) as a function of input power (in watts (W) and percentage (%)), showing CPU data for the Bergamo model of Advanced Micro Devices (AMD) obtained by a performance benchmarking method (LINPACK benchmark) according to an embodiment of the present application.
[0028] Figure 3BA graph showing performance per unit power (in percentage or %) as a function of input power (in watts (W) and percentage (%)), showing GPU data for the A100 model of NVIDIA obtained by a performance benchmarking method (LINPACK benchmark) according to an embodiment of the present application.
[0029] Figure 3C A graph showing performance per unit power (in percentage or %) as a function of input power (in watts (W) and percentage (%)), showing GPU data for NVIDIA's H100 model obtained by a performance benchmarking method (LINPACK benchmark) according to an embodiment of the present application.
[0030] Figure 4A A graph showing a performance index (Index) as a function of power supplied to the CPU (x) and as a function of power supplied to the GPU (y) is shown, showing optimization of the performance index during power capping according to an embodiment of the present application.
[0031] Figure 4B A graph showing performance index as a function of power supplied to the CPU (x) and as a function of power supplied to the GPU (y) is shown, showing optimization of the performance index during throttling relief according to an embodiment of the present application.
[0032] Figure 5A A three-dimensional (3D) graph showing performance index as a function of power or wattage of the CPU and power or wattage of the GPU shows a comparison using a method according to an embodiment of the present application and using an existing method for power capping.
[0033] Figure 5B A three-dimensional graph showing performance index as a function of power or wattage of the CPU and power or wattage of the GPU illustrates a comparison between a method according to an embodiment of the present application and a prior art method for throttling relief.
[0034] Fig. 6A A three-dimensional graph showing the performance index as a function of the power or wattage of the CPU and the power or wattage of the GPU is shown, wherein the method according to an embodiment of the application is iteratively used.
[0035] FIG. 6B shows a three-dimensional graph of the performance index of the prior art optimization method as a function of the power or wattage of the CPU and the power or wattage of the GPU. DETAILED DESCRIPTION
[0036] The following detailed description is with reference to the accompanying drawings, which show by way of illustration specific details and embodiments that can be practiced. Other embodiments may be used, and structural, logical, and electrical changes may be made without departing from the scope of the present application. The various embodiments are not necessarily mutually exclusive, as some embodiments may be combined with one or more other embodiments to form new embodiments.
[0037] Features described in the context of one embodiment may be applicable to the same or similar features in other embodiments accordingly. Features described in the context of one embodiment may be applicable to other embodiments accordingly, even if not explicitly described in these other embodiments. In addition, additions and / or combinations and / or substitutions described for features in the context of one embodiment may be applicable to the same or similar features in other embodiments accordingly.
[0038] In the context of various embodiments, the articles “a,” “an,” and “the” used with respect to a feature or element include reference to one or more features or elements.
[0039] In the context of the various embodiments, the terms "about" or "approximately" as applied to a numerical value encompasses the exact value and a reasonable variance, such as within 10% of the specified value.
[0040] As used herein, the term "and / or" includes any and all combinations of one or more of the associated listed items.
[0041] “Including” means including but not limited to anything that appears after the word “including”. Thus, the use of the term “including” indicates that the listed elements are required or mandatory, but other elements not listed are optional and may or may not be present.
[0042] "Consisting of" means including and limited to whatever is listed between "consisting of" and "consisting of" in the phrase. Thus, the phrase "consisting of" indicates that the listed elements are required or necessary, and that there are no other unlisted elements.
[0043] Embodiments described in the context of a system are also valid for other systems. Embodiments described in the context of a method are also valid for other methods. Similarly, embodiments described in the context of a method are also valid for a system, and vice versa.
[0044] There is currently no system-level power capping mechanism with optimized system performance. Intel platforms with node managers, Intel Platform Controller Hub (PCH), AMD platforms, and NVIDIA GPUs have their own power capping mechanisms. For platform power capping, Intel platforms with node managers set the power cap at a certain system power level or CPU power level, Intel platforms without node managers (PCH-less) use system power (Power of System, Psys), and in AMD platforms, the XClarity Controller (XCC) limits the delta power through the Advanced Platform Management Link (APML) of the Improved Inter-Integrated Circuit (I3C). Power capping of dual in-line memory modules (DIMMs) can involve closed loop thermal throttling (CLTT) or memory thermal throttling control solution (MTTCS). For GPU power capping, above NVIDIA's GPU thermal design power (TDP) of 500W, Peak Electrical Design Power (EDPp) and Continuous Electrical Design Power (EDCc) are supported by the XCC Inter-Integrated Circuit (I2C) to limit peak power and TDP respectively. There is currently no system-level power capping mechanism or throttling release mechanism to optimize system performance.
[0045] Embodiments of the present application can solve one or more of the above problems. Embodiments of the present application can provide a system-level power upper limit mechanism for system optimization to all platforms (e.g., Intel platform with node manager, Intel platform without node manager, and AMD platform). When the system is restricted or throttled, embodiments of the present application can keep the system at an optimal performance point. Embodiments of the present application can optimize the reduction of system performance (without excessive system performance loss) when limiting system power supply power. When the system gradually releases throttling, embodiments of the present application can optimize the improvement of system performance as the system power increases.
[0046] Figure 1 is an overall diagram of a method according to an embodiment of the present application. The method may be a method that can be executed by a machine. The method may include, at step 102, determining a performance index based on at least two functions, the at least two functions including a first function associated with a first system component and a second function associated with a second system component, the second system component being different from the first system component. The first function may be determined by a first variable. The second function may be determined by a second variable. The method may also include, at step 104, determining a change in the first variable and a change in the second variable using an optimization process.
[0047] In various embodiments, the first function may be any one selected from the group consisting of CPU performance per unit power, GPU performance per unit power, memory performance per unit power, and PCIe adapter performance per unit power. In various embodiments, the second function may be any one selected from the group consisting of CPU performance per unit power, GPU performance per unit power, memory performance per unit power, and PCIe adapter performance per unit power.
[0048] For instance, in one example, the first function may be CPU performance per unit power or per unit watt (expressed as c(x)), and the second function may be GPU performance per unit power or per unit watt (expressed as g(y)). In this case, the first variable x may represent the power supplied to the CPU, and the second variable y may represent the power supplied to the GPU. The method may determine a performance index (Index) based on the first function c(x) and the second function g(y). In various embodiments, the performance index may also be determined based on, for example, a weight ratio WL_z between the first function and the second function. In other words, the system or controller may determine or derive the performance index (Index) as a function of the first function c(x), the second function g(y), and the weight ratio (WL_z), i.e. in and Respectively represent the first function and the second function under a certain weight ratio WL_z. In various embodiments, the preset weight ratio WL_z can be determined based on workload distribution, system settings, or based on a combination of workload distribution and system settings. Then, the method can determine the change of the first variable (e.g., Δx) and the change of the second variable (e.g., Δy) through an optimization process. In other words, the method may include determining or calculating the change of the first variable and the second variable, which results in a performance index value as high as possible. For a power upper limit involving a reduction in the power supplied to a system component and a resulting reduction in system performance, the method may include determining or calculating the change of the first variable and the second variable so that the change of the first variable (e.g., Δx or a change in the power supplied to the CPU) and the change of the second variable (e.g., Δy or a change in the power supplied to the GPU) have as little impact on system performance (measured by the performance index value of the performance index) as possible. For un-throttling involving an increase in power supplied to a system component and a resulting increase in system performance, the method may include determining or calculating changes in a first variable and a second variable so that the change in the first variable (e.g., Δx or a change in power supplied to a CPU) and the change in the second variable (e.g., Δy or a change in power supplied to a GPU) have as large an impact on system performance (measured by a performance index value of a performance index) as possible. Even during power capping or un-throttling, embodiments of the present application may help maintain a performance index value as high as possible.
[0049] As described above, when the first function is CPU performance per unit power or per unit watt (c(x)), the first variable (x) may be the power supplied to the CPU. Similarly, when the second function is GPU performance per unit power or per unit watt (g(y)), the second variable (y) may be the power supplied to the GPU. In general, when the first function and / or the second function is the performance per unit power of a system component, the variable that determines the function may be the power supplied to the system component. For example, when the function is memory performance per unit power (m(a)), the variable (a) may be the power supplied to the memory. When the function is PCIe adapter performance per unit power (p(b)), the variable (b) may be the power supplied to the PCIe adapter.
[0050] In various embodiments, the performance index may be linear. In various other embodiments, the performance index may be nonlinear. The functions, such as the first function and the second function, may be strictly increasing functions. In other words, the functions may be monotonically non-decreasing functions.
[0051] In various embodiments, the change in system power may be the sum of the power supplied to the system components. For example, in various embodiments described above involving CPU and GPU-based system performance optimization, the change in system power ΔW may be provided by ΔW=Δx+Δy. Embodiments of the present application relate to achieving a performance index value as high as possible per unit change in ΔW.
[0052] In various embodiments, step 102 and step 104 may be executed by a controller, such as a baseboard management controller (BMC).
[0053] In various embodiments, in addition to the first function and the second function, the performance index can also be determined based on one or more additional functions (respectively associated with one or more additional system components). In this case, the one or more additional functions can be determined by one or more additional variables, and the optimization process can be used to determine the change of each of the one or more additional variables. For example, when the performance index is also determined based on a third function (in addition to the first function and the second function), the third function can be determined by a third variable, and the optimization process can also be used to determine the change of the third variable (in addition to the first variable and the second variable). Alternatively and / or additionally, when the performance index is also determined based on a third function and a fourth function (in addition to the first function and the second function), the third function can be determined by a third variable, the fourth function can be determined by a fourth variable, and the optimization process can also be used to determine the change of the third variable and the change of the fourth variable (in addition to the first variable and the second variable). In addition to the above examples, in various embodiments, one or more additional functions can also include a fifth function, or include a fifth function and a sixth function, etc. The fifth function, the sixth function, etc. can be determined by a fifth variable, a sixth variable, etc., respectively, and the optimization process can be used to determine the change of the fifth variable, the sixth variable, etc.
[0054] In various embodiments, functions may be obtained through performance benchmarks of various system components. For example, a first function may be obtained through a performance benchmark (workload) of a first system component, such as a CPU. A second function may be obtained through the same performance benchmark (workload) of a second system component, such as a GPU. In various embodiments, data related to the performance benchmark (workload) of the system component may be stored in a controller or system. The performance index may be generated from data (e.g., by a controller) related to the performance benchmark (workload) of the system component stored on the controller or system. In various embodiments, the obtained function (e.g., the first function or the second function) may depend on the weight ratio WL_z.
[0055] In various embodiments, the method may include determining whether power capping or throttling relief needs to be implemented prior to employing an optimization process to determine a change in the first variable, a change in the second variable, and in some cases, a change in one or more additional variables. In other words, the controller may need to determine that the system is reaching the limit of the power cap and a power cap needs to be implemented, or that power supplied to a system component has previously been reduced due to throttling and it is now safe to relieve the throttling. The controller may determine whether power capping or throttling relief needs to be implemented based on data provided from the system (e.g., from a system component such as a CPU or GPU).
[0056] For example, the method may also include determining whether a power cap needs to be implemented before determining the change in the first variable and the change in the second variable. The controller may determine whether a power cap needs to be implemented. If it is determined that a power cap needs to be implemented, the change in the first variable and the change in the second variable may be determined as the minimum decrease in the performance index value that results in a per-unit performance index change in system power. The method may additionally or alternatively include determining whether throttling needs to be released before determining the change in the first variable and the change in the second variable. The controller may determine whether throttling needs to be released. If it is determined that throttling needs to be released, the change in the first variable and the change in the second variable may be determined as the maximum increase in the performance index value that results in a per-unit performance index change in system power. As described above, the change in system power may be the sum of the change in the first variable and the change in the second variable, i.e., ΔW=Δx+Δy.
[0057] As emphasized above, the performance index can also be determined based on the weight ratio. In various embodiments, the first coefficient of the first function and the second coefficient of the second function can be determined based on the weight ratio. In embodiments involving one or more additional functions, the coefficients of the one or more additional functions can also be determined based on the weight ratio.
[0058] In various embodiments, the weight ratio can be set manually (i.e., by a person or user). In various embodiments, the weight ratio can be received from an external device such as an external server. In various embodiments, the weight ratio can be generated by the system. For example, the weight ratio can be formed by interpolation based on data received over a period of time.
[0059] In various embodiments, the weight ratio may be determined based on a workload distribution, a system setting, or a combination of the workload distribution and the system setting. The system setting may refer to a system inventory setting or a system setup, including the number and type of each system component. The workload distribution may refer to the distribution of the types of work that the system is processing or is designated to process. For example, if the system is running a graphics-intensive application, the GPU utilization per GPU power (GPU utilization / GPU power) may be high, and the weight ratio may make the coefficient of GPU performance per unit power (e.g., the second coefficient) high. Alternatively and / or additionally, if the system is running a processing-intensive application, the CPU utilization per CPU power (CPU utilization / CPU power) may be high, and the weight ratio may make the coefficient of CPU performance per unit power (e.g., the first coefficient) high. The dependence of the coefficient on the system setting (e.g., the system inventory setting) and the workload (e.g., CPU utilization / CPU power or GPU utilization / GPU power) may be set by experiment or pre-trained values.
[0060] For example, in one example, the performance index may be initially set to: Indwx WL_A =H0=a0c WL_A (x)+b0g WL_A (y), where a0 and b0 represent the initial coefficient of CPU performance per unit power and the initial coefficient of GPU performance per unit power, respectively. a0 and b0 can be set based on system settings or system component list settings.
[0061] During run time and when the workload has changed, the performance index can change: Index WL_B =H1=a1c WL_B (x)+b1g WL_B (y), where a1 and b1 are coefficients representing CPU performance per unit power during runtime and GPU performance per unit power during runtime, respectively. a1 and b1 can be set based on workloads modified during runtime.
[0062] In various embodiments, the optimization process may involve any suitable optimization algorithm or method. For example, the optimization process may be any one selected from the group consisting of gradient descent, Newton's method, conjugate gradient, and Broyden-Fletcher-Goldfarb-Shanno (BFGS) algorithm.
[0063] Embodiments of the present application may be executed in any suitable platform, such as an Intel platform with a node manager, an Intel platform without a node manager, or an AMD platform.
[0064] Figure 2 2 is an overall diagram of an optimization system according to an embodiment of the present application. The system may include a first system component 202. The system may also include a second system component 204. The system may also include a controller 206, which is configured to determine a performance index based on at least two functions, the at least two functions including a first function associated with the first system component 202 and a second function associated with the second system component 204, the second system component 204 being different from the first system component 202. The first function may be determined by a first variable. The second function may be determined by a second variable. The controller 206 may also be configured to determine a change in the first variable and a change in the second variable using an optimization process.
[0065] In other words, the optimization system may include first system component 202, second system component 204, and controller 206. Controller 206 may be configured to optimize a performance index that may be determined based on a first function of first system component 202 and a second function of second system component 204.
[0066] The first system component may be selected from the group consisting of one or more CPUs, one or more GPUs, one or more memories, and one or more PCIe adapters. The second system component may be selected from the group consisting of one or more CPUs, one or more GPUs, one or more memories, and one or more PCIe adapters. In one example, the first system component may be a CPU, while the second system component may be a plurality of GPUs.
[0067] In various embodiments, the controller 206 may be electrically connected to the first system component 202 and the second system component 206. The controller 206 may be directly connected to the first system component 202 (or the second system component 204), or may be electrically connected to the first system component 202 (or the second system component 204) via one or more intermediary system components, one or more devices, one or more interconnects, or any combination thereof.
[0068] In various embodiments, the controller 206 may be configured to determine whether a power cap needs to be implemented before determining a change in the first variable and a change in the second variable. The change in the first variable and the change in the second variable may be determined to result in a minimum decrease in a performance index value of the performance index per unit change in system power.
[0069] In various embodiments, the controller 206 may be configured to determine whether de-throttling is required before determining a change in the first variable and a change in the second variable. The change in the first variable and the change in the second variable may be determined to result in a maximum increase in the performance index value of the performance index per unit change in system power.
[0070] In various embodiments, the performance index may also be determined based on a weight ratio. In other words, the controller 206 may be configured to determine the performance index based on at least two functions and a weight ratio.
[0071] In various embodiments, the first coefficient of the first function and the second coefficient of the second function may be determined based on a weight ratio.
[0072] In various embodiments, the weight ratio may be determined based on workload distribution. In other various embodiments, the weight ratio may be determined based on system configuration. In other various embodiments, the weight ratio may be determined based on a combination of workload distribution and system configuration.
[0073] In various embodiments, the optimization process may involve any suitable optimization algorithm or method. For example, the optimization process may be any one selected from the group consisting of a gradient descent method, a Newton method, a conjugate gradient method, and a Broyden-Fletcher-Goldfarb-Shannot (BFGS) algorithm.
[0074] Figure 3A A graph showing performance per unit power (in percentage or %) as a function of input power (in watts (W) and percentage (%)), showing data for an Advanced Micro Devices Inc. (AMD) Bergamo model CPU obtained using a performance benchmarking method (LINPACK benchmark) according to an embodiment of the present application. Figure 3A The power cap of the CPU is shown, where the performance per unit of power decreases as the power supplied to the CPU decreases.
[0075] Figure 3B A graph showing performance per unit power (in percentage or %) as a function of input power (in watts (W) and percentage (%)), showing data for an A100 model GPU from NVIDIA obtained using a performance benchmarking method (LINPACK benchmark) according to an embodiment of the present application. Figure 3B The power cap of the GPU is shown, where the performance per unit of power decreases as the power supplied to the GPU decreases.
[0076] Figure 3CA graph showing performance per unit power (in percentage or %) as a function of input power (in watts (W) and percentage (%)), showing data for an NVIDIA-formulated H100 model GPU obtained using a performance benchmarking method (LINPACK benchmark) according to an embodiment of the present application. Figure 3C The power cap of the GPU is also shown, where the performance per unit power decreases as the power supplied to the GPU decreases.
[0077] As described above, data obtained by the performance benchmarking method can be used to determine a first function (e.g., c(x)) and a second function (e.g., g(x)). c(x) can represent CPU performance per unit power (or per watt), and g(x) can represent GPU performance per unit power (or per watt). c(x) and g(x) can depend on a weight ratio WL_z. Therefore, a performance index (Index) can be determined based on c(x), g(x), and WL_z, i.e. The performance index can be established by optimization methods or interpolation. The performance index can be linear or nonlinear. In some cases, the system performance can be the sum of the CPU performance per unit power and the GPU performance per unit power. c(x) and g(x) can be strictly increasing functions. The weight ratio WL_z can be changed at any time based on workload or system settings.
[0078] For example, as described above, the performance index may be initially set to: Index WL_A =H0=a0c WL_A (x)+b0g WL_A (y), where a0 and b0 are coefficients representing the initial coefficient of CPU performance per unit power and the initial coefficient of GPU performance per unit power, respectively. a0 and b0 can be set based on system settings or a system component list.
[0079] During runtime and when the workload has changed, the performance index can change: Index WL_B =H1=a1c WL_B (x)+b1g WL_B (y), where a1 and b1 are coefficients representing a coefficient of CPU performance per unit power and a coefficient of GPU performance per unit power, respectively, during runtime. a1 and b1 may be set based on a workload modified during runtime.
[0080] In the above example, the first item and the second item in the determination or calculation of the performance index may be as shown in Table 1 below:
[0081] Table 1
[0082]
[0083] Although the above examples illustrate the calculation of the performance index based on CPU performance per unit power and GPU performance per unit power, it is contemplated that the determination of the performance index may additionally or alternatively be based on the performance of any other key system component, such as memory performance per unit power (m WL_z (a)) and / or PCIe adapter performance per unit power (p WL_z (b)).
[0084] Figure 4A A diagram showing a performance index (Index) as a function of the power (x) supplied to the CPU and as a function of the power (y) supplied to the GPU is shown, wherein the optimization of the performance index during the power capping period according to an embodiment of the present application is shown. During the optimization of the performance index during the implementation of the system power cap, the goal can be to keep the performance index value as high as possible when the power supplied to the CPU is reduced and the power supplied to the GPU is reduced. In other words, the purpose can be to find Δx and Δy so that H(c(x), g(y))-H(c(x-Δx), g(y-Δy)) is minimized per unit change in system power, i.e., has the smallest slope. The change in system power ΔW can be set to the sum of Δx and Δy (i.e., ΔW=Δx+Δy). The optimization can be performed using any suitable optimization process, such as a gradient descent method, a Newton method, a conjugate gradient method, or a Broyden-Fletcher-Goldfarb-Shannoy (BFGS) algorithm. The weight ratio can be assumed to be known. The system may be part of a cluster of systems so that the weight ratios of the systems may be provided or known. Alternatively, Figure 4A The CPU curve in (c WL_Z (x)) and GPU curve (g WL_Z (y)) Estimate the weight ratio.
[0085] Figure 4BA diagram showing a performance index (Index) as a function of the power (x) supplied to the CPU and as a function of the power (y) supplied to the GPU is shown, wherein the optimization of the performance index during throttling release according to an embodiment of the present application is shown. During the optimization of the performance index during system throttling release, the goal can be to increase the performance index value as high as possible as the power supplied to the central processing unit (CPU) increases and the power supplied to the graphics processing unit (GPU) increases. In other words, the purpose can be to find Δx and Δy so that H(c(x+Δx), g(y+Δy))-H(c(x), g(y)) is maximized per unit change in system power, i.e., has the maximum slope. The change in system power ΔW can be set to the sum of Δx and Δy (i.e., ΔW=Δx+Δy). The optimization can be performed using any suitable optimization process, such as a gradient descent method, a Newton method, a conjugate gradient method, or a Broyden-Fletcher-Goldfarb-Shannoy (BFGS) algorithm. The weight ratio can be assumed to be known. The system may be part of a cluster of systems so that the weight ratios of the systems may be provided or known. Alternatively, Figure 4B The CPU curve shown (c WL_Z (x)) and GPU curve (g WL_Z (y)) Estimate the weight ratio.
[0086] Figure 5A A three-dimensional (3D) graph showing performance index as a function of CPU power or wattage and GPU power or wattage, wherein a method according to an embodiment of the present application is compared with an existing method for power capping. Figure 5B A three-dimensional graph showing the performance index as a function of the power or wattage of the CPU and the power or wattage of the GPU, showing a comparison between the method according to an embodiment of the present application and the existing method for throttling relief. Figure 5A and Figure 5B , the performance index (Index) can be set to Index = 0.8*c HPL (x)+0.2g HPL (y), where c HPL (x) and g HPL (y) represents CPU function and GPU function respectively. Figure 5A It is shown that the method according to the embodiment of the present application can achieve a 27% performance improvement during the power cap implementation. Figure 5B It is shown that the method according to the embodiment of the present application can achieve a 44% performance improvement during throttling release.
[0087] As system power changes, embodiments of the present application may seek to optimize overall system performance per unit power or per watt. Embodiments of the present application enable a unified approach to be applied to next generation products and systems.
[0088] During power capping and / or de-throttling, embodiments of the present application may be used iteratively. Fig. 6A A three-dimensional diagram showing the performance index as a function of the power or wattage of the CPU and the power or wattage of the GPU, showing that the method according to an embodiment of the present application is used iteratively. Figure 6B shows a three-dimensional diagram showing the performance index as a function of the power or wattage of the central processing unit (CPU) and the power or wattage of the graphics processing unit (GPU), showing the existing optimization method.
[0089] The present application is presented above for the purpose of illustration and description, but is not intended to be understood as exhaustive or limiting. Many modifications and variations are obvious and understandable to those of ordinary skill in the art. The exemplary embodiments are selected and described in order to explain the principles and practical applications, and to enable those of ordinary skill in the art to understand the various embodiments of the present application.
[0090] Therefore, although illustrative example embodiments are described herein with reference to the accompanying drawings, it should be understood that the description is not limiting and that those skilled in the art may conceive of various alternatives and / or modifications based on the described technical solutions without departing from the scope of the present disclosure.
Claims
1. A method for optimizing a computing system, characterized in that: The method comprises: The performance index is determined based on at least two functions, the at least two functions including a first function associated with a first system component and a second function associated with a second system component, the second system component being different from the first system component; wherein The first function is determined by a first variable; The second function is determined by a second variable; and The method also includes determining a change in the first variable and a change in the second variable using an optimization process.
2. The method according to claim 1, characterized in that The first function is any one selected from the group consisting of CPU performance per unit power, GPU performance per unit power, memory performance per unit power, and PCIe adapter performance per unit power.
3. The method according to claim 1, characterized in that: The second function is any one selected from the group consisting of CPU performance per unit power, GPU performance per unit power, memory performance per unit power, and PCIe adapter performance per unit power.
4. The method according to claim 1, characterized in that Also includes: Before determining the change of the first variable and the change of the second variable, determining whether a power cap is required.
5. The method according to claim 4, characterized in that The change in the first variable and the change in the second variable are determined to result in a minimum decrease in performance index value per unit performance index change of system power.
6. The method according to claim 1, further comprising: Before determining the change of the first variable and the change of the second variable, it is determined whether throttling release is required.
7. The method according to claim 6, characterized in that The change in the first variable and the change in the second variable are determined to result in a maximum increase in performance index value per unit performance index change of system power.
8. The method according to claim 1, characterized in that The performance index is also determined based on the weight ratio.
9. The method according to claim 8, characterized in that A first coefficient of the first function and a second coefficient of the second function are determined based on the weight ratio.
10. The method according to claim 8, characterized in that The weight ratio is determined based on workload distribution.
11. The method according to claim 8, characterized in that The weight ratio is determined based on system settings.
12. The method according to claim 1, characterized in that The optimization process is any one selected from the group consisting of gradient descent method, Newton's method, conjugate gradient method and Broyden-Fletcher-Goldfarb-Chanteau algorithm.
13. An optimization system for a computing system, characterized in that: The system comprises: a first system component; a second system component; and A controller, the controller being configured to: The performance index is determined based on at least two functions, the at least two functions including a first function associated with the first system component and a second function associated with the second system component, the second system component being different from the first system component; wherein The first function is determined by a first variable; The second function is determined by a second variable; and The controller is further configured to employ an optimization process to determine the change in the first variable and the change in the second variable.
14. The system according to claim 13, characterized in that The controller is configured to determine whether a power cap is required before determining a change in the first variable and a change in the second variable.
15. The system according to claim 14, characterized in that The change in the first variable and the change in the second variable are determined to result in a minimum decrease in performance index value per unit performance index change in system power.
16. The system according to claim 13, characterized in that The controller is configured to determine whether throttling relief is required before determining a change in the first variable and a change in the second variable.
17. The system according to claim 16, characterized in that The change in the first variable and the change in the second variable are determined to result in a maximum increase in performance index value per unit performance index change in system power.
18. The system according to claim 13, characterized in that The performance index is also determined based on the weight ratio.
19. The system according to claim 13, characterized in that A first coefficient of the first function and a second coefficient of the second function are determined based on the weight ratio.
20. The system according to claim 13, characterized in that The optimization process is any one selected from the group consisting of gradient descent method, Newton's method, conjugate gradient method and Broyden-Fletcher-Goldfarb-Chanteau algorithm.