Adaptive Method And System For Minimizing Power Consumption Of A Graphics Processing Unit
Abstract:
A system and method for minimizing power consumption of a graphics processing unit of a mobile device is disclosed. The system dynamically adapts the GPU pipeline settings. The system includes a processor to obtain a first set of values corresponding to applications running on the mobile device in a first mode of operation and a second set of values corresponding to applications running on the mobile device in the second mode of operation. Further, the system includes a power checking module to check available amount of power for the mobile device and generate a third set of values corresponding to the available amount of power and a graphics management unit to adjust graphics of the mobile device based on a selective comparison of the first set of values and the second set of values with the third set of values.
Get Free WhatsApp Updates!
Notices, Deadlines & Correspondence
Nirmal Building, 9th Floor,
Nariman Point, Mumbai – 400 021, Maharashtra, India.
Inventors
1. DASAKA, Amarnath
Tata Consultancy Services
SEZ Unit, Synergy Park,
Premises 2-56/1/36, Survey Number 26, CMC Campus, Gachibowli, Seri Lingampalli RR district, Hyderabad - 50019
Specification
CLIAMS:1. A method for minimizing power consumption of a graphics processing unit of a mobile device, the method comprising:
obtaining, with the aid of a controller, a first set of values corresponding to applications running on the mobile device in a first mode of operation, corresponding to an operation of the mobile device in accordance with a default configuration,
wherein the first set of values include current quality of service (QoS) value associated with the first mode of operation, consumption of power in the first mode of operation and time of execution of applications in the first mode of operation;
obtaining selectively, with the aid of the controller, a second set of values corresponding to applications running on the mobile device in a second mode of operation, corresponding to an operation of the mobile device in accordance with a user defined configuration,
wherein the second set of values include target quality of service (QoS) value associated with the second mode of operation, consumption of power in the second mode of operation and time of execution of applications in the second mode of operation;
determining a third set of values corresponding to an amount of power available to the mobile device; and
adjusting power consumption based on a selective comparison of the first set of values and the second set of values with the third set of values.
2. The method as claimed in claim 1 further comprising the step of identifying preferences for the mobile device, wherein the preferences correspond to the user defined configuration.
3. The method as claimed in claim 1 further comprising the step of performing context switching between the first mode of operation and the second mode of operation, wherein the step of context switching comprises:
determining an amount of power consumed during context switching; and
determining time elapsed during context switching.
4. The method as claimed in claim 1 further comprising the step of determining total time taken to execute applications in the first and the second modes of the operation and the time elapsed during context switching.
5. The method as claimed in claim 1, wherein the third set of values include total time to discharge for a power source associated with the mobile device, the total time to discharge depending on the amount of power available and the consumption of power in at least one of the first and the second operating mode.
6. The method as claimed in claim 1, wherein the step of adjusting power consumption is preceded by the step of determining difference between the current QoS value and the target QoS value.
7. The method as claimed in claim 1 and claim 6, wherein the step of adjusting power consumption comprises adaptation of fragment shaders and vertex shaders depending on the determined difference between the current QoS value and the target QoS value and a comparison between the determined total time to execute and the total time to discharge.
8. The method as claimed in claim 1, wherein the current QoS value and the target QoS value includes at least one of a display attribute and a graphics attribute, wherein the display attribute includes at least one of a resolution, a brightness and a refresh rate wherein the graphics attribute includes at least one of a compressed texture format, a render target, and a frequency for one or more graphics subsystems.
9. The method as claimed in claim 2, wherein the preferences include at least one of a user experience attribute and an application attribute, wherein the user experience attribute corresponds to maximum response time and the application attribute corresponds to maximum latency tolerance.
10. A system for minimizing power consumption of a graphics processing unit of a mobile device, the system comprising:
a processor configured to obtain a first set of values corresponding to applications running on the mobile device in a first mode of operation and a second set of values corresponding to applications running on the mobile device in the second mode of operation, wherein the first mode of operation corresponds to an operation of the mobile device in accordance with a default configuration and the second mode of operation corresponds to an operation of the mobile device in accordance with a user defined configuration;
a power checking module in communication with the processor and configured to check available amount of power for the mobile device and generate a third set of values corresponding to the available amount of power and
a graphics management unit in communication with the processor, the graphics management unit configured to adjust graphics of the mobile device based on a selective comparison of the first set of values and the second set of values with the third set of values. ,TagSPECI:FIELD OF THE DISCLOSURE
The present disclosure relates to the field of graphics processing unit.
DEFINITIONS OF TERMS USED IN THE SPECIFICATION
The term ‘context switching’ used hereinafter in this specification relates to a process of storing and restoring the state (context) of a process so that execution can be resumed from the same point at a later time.
The term ‘latency’ used hereinafter in this specification relates to the lag measured by the difference between the time there is a signal input and the time it takes the input to display on the screen.
These definitions are in addition to those expressed in the art.
BACKGROUND
A Graphics Processing Unit (GPU) is a dedicated graphics rendering device used to generate graphics for display on a display device of a mobile device. The GPU uses technology called a shader which maps/translates three dimensional objects on a two dimensional display of the mobile device. The shader is further characterized into a fragment shader and a vertex shader, wherein both the fragment shader and the vertex shader are used during the operation of the mobile device.
However, the GPU consumes substantially larger amount of power which is available to the mobile device, thereby affecting the operation of the mobile device which includes a power source of a limited capacity. Due to heavy consumption of power, frequent recharging of the power source is required which decreases efficiency of the power source gradually. Further, due to heavy consumption of power by the GPU alone, the operation of other components and functionality features of the mobile device are also affected.
Hence, there is a need for a system and a method that minimizes power consumption of the GPU of the mobile device.
OBJECTS
An object of the present invention is to provide a system and a method that reduces power consumption of a graphics processing unit of a mobile device.
Another object of the present invention is to provide a system that facilitates dynamic adaptation of the vertex shader and fragment shader of a graphics processing.
Another object of the present invention is to provide a system that enables efficient utilization of the power source.
Yet another object of the present invention is to provide a method and a system that facilitates adjustment of power consumption of the graphics processing unit based on the available amount of power to the mobile device.
SUMMARY
In accordance with an aspect of the present disclosure, a method for minimizing power consumption of a graphics processing unit of a mobile device is disclosed. The method includes a step of obtaining, with the aid of a controller, a first set of values corresponding to applications running on the mobile device in a first mode of operation, wherein the first mode of operation corresponds to an operation of the mobile device in accordance with a default configuration, wherein the first set of values include current quality of service (QoS) value associated with the first mode of operation, consumption of power in the first mode of operation and time of execution of applications in the first mode of operation. The method further includes the step of obtaining selectively, with the aid of the controller, a second set of values corresponding to applications running on the mobile device in a second mode of operation, wherein the second mode of operation corresponds to an operation of the mobile device in accordance with a user defined configuration, wherein the second set of values include target quality of service (QoS) value associated with the second mode of operation, consumption of power in the second mode of operation and time of execution of applications in the second mode of operation. Further, the method includes the step of determining a third set of values corresponding to an amount of power available to the mobile device and adjusting power consumption based on a selective comparison of the first set of values and the second set of values with the third set of values.
Furthermore, the method includes the step of identifying preferences for the mobile device, wherein the preferences correspond to the user defined configuration.
Moreover, the method further includes the step of performing context switching between the first mode of operation and the second mode of operation, wherein the context switching includes the step of determining an amount of power consumed during context switching and the step of determining time elapsed during context switching.
Additionally, the method includes the step of determining total time taken to execute applications in the first and the second modes of the operation and the time elapsed during context switching.
Typically, the third set of values include total time to discharge for a power source associated with the mobile device, the total time to discharge depending on the amount of power available and the consumption of power in at least one of the first and the second operating mode.
Typically, the step of adjusting power consumption is preceded by the step of determining difference between the current QoS value and the target QoS value. Further, the step of adjusting power consumption includes adaptation of fragment shaders and vertex shaders depending on the determined difference between the current QoS value and the target QoS value and a comparison between the determined total time to execute and the total time to discharge.
In one embodiment, the current QoS value and the target QoS value including at least one of a display attribute and a graphics attribute, wherein the display attribute includes at least one of a resolution, a brightness and a refresh rate wherein the graphics attribute includes at least one of a compressed texture format, a render target, and a frequency for one or more graphics subsystems.
In one embodiment, the preferences includes at least one of a user experience attribute and an application attribute, wherein the user experience attribute corresponds to maximum response time and the application attribute corresponds to maximum latency tolerance.
In accordance with another aspect of the present disclosure, a system for minimizing power consumption of a graphics processing unit of a mobile device, the system includes a processor configured to obtain a first set of values corresponding to applications running on the mobile device in a first mode of operation and a second set of values corresponding to applications running on the mobile device in the second mode of operation, wherein the first mode of operation corresponds to an operation of the mobile device in accordance with a default configuration and the second mode of operation corresponds to an operation of the mobile device in accordance with a user defined configuration. Further, the system includes a power checking module in communication with the processor and configured to check available amount of power for the mobile device and generate a third set of values corresponding to the available amount of power and a graphics management unit in communication with the processor, the graphics management unit configured to adjust graphics of the mobile device based on a selective comparison of the first set of values and the second set of values with the third set of values.
BRIEF DESCRIPTION OF ACCOMPANYING DRAWINGS
The system and method of the present disclosure will now be described with reference to the non-limiting accompanying drawings, in which:
FIGURE 1 is a block diagram illustrating an exemplary mobile device including a graphics processing unit that implements a technique for minimizing power consumption of the graphics processing unit in accordance with an embodiment of the present disclosure;
FIGURE 2 provides a block diagram illustrating a graphics processing unit pipeline within the graphics processing unit (GPU) pipeline of Figure 1;
FIGURE 3 illustrates a first process flow depicting the operation of the system of the present disclosure; and
FIGURE 4 (a) and 4(b) illustrate a second process flow depicting the operation of the system of the present disclosure.
DETAILED DESCRIPTION OF THE ACCOMPANYING DRAWINGS
The system and method of the present disclosure will now be described in detail with reference to the accompanying drawings. The preferred embodiment does not limit the scope and ambit of the disclosure. The description provided is purely by way of example and illustration.
The embodiments herein and the various features and advantageous details thereof are explained with reference to the non-limiting embodiments in the following description. Descriptions of well-known components and processing techniques are omitted so as to not unnecessarily obscure the embodiments herein. The examples used herein are intended merely to facilitate an understanding of ways in which the embodiments herein may be practiced and to further enable those of skill in the art to practice the embodiments herein. Accordingly, the examples should not be construed as limiting the scope of the embodiments herein.
The system for minimizing power consumption of a graphics processing unit (GPU), described herein can be implemented by a variety of mobile devices. The mobile devices that can implement the described method include, but are not restricted to, cell phone, personal digital assistant (PDA), palmtop, laptop and other handheld devices. Referring to Figure 1, a system 100 includes a controller 102 capable of controlling operation of a graphics processing unit (GPU) 110 of a mobile device 101. Controller 102 may also be capable of controlling operation of the mobile device 101. As known in the art, the GPU 110 includes a graphics processing unit pipeline 114 and resources 112 coupled to the GPU pipeline 114. Typically, GPU 110 receives image geometry for an image from the controller 102 and processes the image geometry to present image effects, background images or video images for gaming operations. In one embodiment, the GPU 110 is a microprocessor designed to offload and accelerate two-dimensional or three-dimensional rendering with the aid of the controller 102. Images generated by the GPU 110 are displayed on a display device 116, wherein the display device 116 may include a liquid crystal display (LCD), a cathode ray tube (CRT) display, a plasma display, a light emitting diode (LED) display, or other type of display, or other output device integrated/interfaced with or coupled to the mobile device 100, by way of non-limiting examples. In an exemplary embodiment, the display device 116 may be integrated within the mobile device 100. The mobile device 100 includes, but not restricted to, cell phone, personal digital assistant (PDA), palmtop, laptop and other handheld devices. In another embodiment, the mobile device 100 includes a desktop and the display device 116 includes a monitor.
In one embodiment, the controller 102 may be implemented as a central processing unit (CPU) for the mobile device 100. CPU may include one or more processing units having one or more processor cores or having any number of processors having any number of processing cores. CPU may include any type of processing unit, such as, for instance, a multi-processing unit, a Reduced Instruction Set Computer (RISC), Complex Instruction Set Computer (CISC), digital signal processor (DSP), and so forth. When a user of the mobile device 100 initiates an application that triggers an image effect, the controller 102 receives the corresponding image geometry from the application and sends the image geometry to the GPU 110. GPU 110 processes the image geometry to prepare the corresponding image for presentation on a display device 116. The controller 102 is communicably coupled to a memory 104, wherein the memory 104 stores instructions to be executed by the controller 102 to control the GPU 110. The memory 104 further includes a power checking module 106 and a graphics management unit 108. The memory includes, but not restricted to, random access memory (RAM), dynamic random access memory (DRAM) or static random access memory (SRAM).
The GPU pipeline 114 is implemented through a combination of hardware (GPU cores) and CPU software for instance, OpenGL. Figure 2 represents a block diagram 200 of the GPU pipeline 114 of Figure 1. Vertex shader 204 and Fragment shader 208 are parts of the programmable GPU pipeline 114. The vertex shader 204 enables rasterization 206 of the image received by the GPU 110 which is further processed by the fragment shader 208. The processed image is temporarily stored in a frame buffer 212 before being transmitted to the display device 116.
The system 100 of the present disclosure operates in two modes, an analysis mode and an execution mode. Specifically, in the analysis mode, controller 102 gathers information about the mobile device 101 which is utilized by the execution mode to adjust power consumption of the GPU 110. More specifically, the controller 102 obtains a first set of values corresponding to applications running on the mobile device 101. The first set of values include current quality of service (QoS) value associated with a first mode of operation, wherein the first mode of operation represents an operation of the mobile device 101 with default configuration. The default configuration of the mobile device 101 refers to settings which are adjusted and prescribed by the manufacture of the mobile device 101 and comes preloaded with the mobile device 101, such as priorities of various installed applications, screen resolution, GPU settings and so forth. The first set of values further includes consumption of power in the first mode of operation and an interval of time of execution of applications in first mode of operation.
As known in the art, mobile device 101 facilitates selection of settings as per the requirement and preferences of a user. The controller 102 identifies and receives preferences of the user and further initiates’ context switching between the first mode of operation and a second mode of operation. The second mode of operation represents an operation of the mobile device 101 with a user defined configuration, wherein the user defined configuration is indicative of the settings and preferences provided by the user. In accordance with the process illustrated in Figure 3, the controller 102 loads user configuration and obtains second set of values corresponding to applications running on the mobile device 101. The second set of values include target quality of service (QoS) associated with the second mode of operation, consumption of power during second mode of operation and an interval of time of execution of the applications in the second mode of operation. Moreover, the controller 102 determines an amount of energy consumed during context switching i.e., context switch energy (CSE) and an interval of time elapsed during context switching (CST) for each of the applications running on the mobile device 101. The first set of values, the second set of values, the energy consumed during context switching and the interval of time elapsed during context switching are stored in the form of a table as illustrated in Table 1 herein below.
TABLE 1
S No CPU_details (Voltage, Frequency) GPU_details GPU
(Programmable Pipeline settings) Base Line Current QoS
(L, R, DR, DB etc.) Current Battery Power Target QoS Standard deviation
(Target QoS – current QoS) Total energy consumed D TTE, CST, CSE Last processed time Misc Status (Null, Pending, Processing, Processed) Duration
1 CPU_V0, CPU_F0 GPU_V0, GPU_F0 V0,F0,C0 etc. Yes S1 E1 0 OK
2 CPU_V1, CPU_F1 GPU_V1, GPU_F1 V0,F0,C0 etc. Yes S2 E2 0
3 CPU_V2, CPU_F2 GPU_V2, GPU_F2 V0,F0,C0 etc. Yes E3 0
4 CPU_V3, CPU_F3 GPU_V3, GPU_F3 V0,F0,C0 etc. Yes E4 0
5 CPU_V4, CPU_F4 GPU_V4, GPU_F4 V0,F0,C0 etc. Yes E5 0
6 CPU_V5, CPU_F5 GPU_V5, GPU_F5 V0,F0,C0 etc. Yes E6 0
N+1 CPU_Vn, CPU_Fn GPU_Vn, GPU_Fn Vn, Fn, Cn, etc. No En + 1 Dn + 1
N+2 Vn, Fn, Cn, etc. No En + 2 Dn + 2
N+3 Vn, Fn, Cn, etc. No En + 3 Dn + 3
N+4 Vn, Fn, Cn, etc. No En + 4 Dn + 4
M+1 CPU_Vm, CPU_Fm GPU_Vm, GPU_Fm Vm, Fm, Cm, etc. No Em + 1 Dm + 1
M+2 Vm, Fm, Cm, etc. No Em + 2 Dm + 2
M+3 Vm, Fm, Cm, etc. No Em + 3 Dm + 3
M+4 Vm, Fm, Cm, etc. No Em + 4 Dm + 4
M+5 Vm, Fm, Cm, etc. No Em + 5 Dm + 5
As illustrated in Table 1, additional information of the mobile device 101 such as CPU voltage and frequency, total time to execute (TTE), total time to discharge (TTD) and GPU pipeline settings are also stored in the Table 1. The total time to execute (TTE) is calculated on the basis of the time of execution in any of the first mode of operation and the second mode of operation. In order to calculate total time to discharge (TTD), the controller 102 determines an amount of power available with the aid of the power checking module 106, wherein the power checking module 106 generates a third set of values indicative of the amount of power available to the mobile device 101. In one embodiment, the power source is a battery associated with the mobile device 101. Therefore, the amount of power available is determined by monitoring a state of charge (SOC) of the battery. Further, the total time to discharge (TTD) is determined based on the amount of power available and the consumption of power in the first mode of operation or in the second mode of operation.
As illustrated in Table 1, the system 100 facilitates gathering of information with respect to the mobile device 101 and utilizes the gathered information during an execution mode as illustrated in Figure 3. The selection between the analysis mode and the execution mode is achieved with the help of a graphics management unit 108 and is dependent on the amount of power available to the mobile device 101. Initially, the controller 102 is in the analysis mode, however in an event, the third set of values indicative of the amount of power available to the mobile device 101 is lower than the threshold value, the graphics management unit 108 causes the controller 102 to switch into the execution mode and uses the values of Table 1 to adjust power consumption of the mobile device 101.
Figure 3 illustrates a first process 300 which depicts the analysis mode of the controller 102. Initially, the power source is in default state 310, wherein the default state represent charged up state of the power source. At step 320, power consumption by various applications running on the mobile device 101 is measured. If the mobile device 101 is plugged on charging, at step 330 the power source is again switched to its default state. The GPU pipeline 114 settings are changed in accordance with the amount of power available from the power source at step 340. Step 340 also includes optional use of values in Table A in order to improve efficiency. Table A is illustrated herein below:
TABLE A
S.No. Configuration Equivalent Configuration PowerEfficiency( EnergyConsumed/Sec) Quality_Score(-10=Bad, 10 Best.
) Mode Status Details
1 V0,F0,C0 V01,F01,C01 3.0 mv 5.0 Base OK
2 V0,F0,C0 V01,F01,C01 .5 mv 5.0 Switch OK
3 V0,F0,C0 V02,F02,C02 10 mv 2
4 V0 V02 0 mv 0 Processing 0 means same
4 C0 C02 OK
5 V1,F1 V10,F10 Processing
6 V1,F1 V10,F10
During the occurrence of aforementioned steps of the process 300, the controller 102 populates the Table 1 with the values being measured and also optionally populates table A at step 350 to further improve the efficiency. Further, the controller 102 measures context switch time and context switch energy at a step 360 and stores the measured values in the Table 1. Step 370 and step 380 are optional steps that remove noise and normalize data respectively in order to adjust spurious data. After completion of data normalization at step 380, the controller 102 decides if the process needs to be continued. For the process to be continued all the steps from step 310 are repeated and the analysis mode of the controller 102 ends at step 390. Figure 4 (a) and 4 (b) illustrate a second process 400 which depicts the execution mode of the controller 102. At step 402, the controller 102 detects device settings and loads static and dynamic configurations of the device including the hardware, firmware/drivers, libraries and softwares of the device. Based on the device configurations, Table 1 and Table A are pre-initialized at step 404 with the help of a device repository (not shown in the figure). The format/definitions of data from Table 1 are defined in Table 2 which is illustrated herein below:
TABLE 2
S.No. Column_definition Column_Details Description Format PermittedValues
1 CPU_Details #Core,Voltage,Freq Voltage-(mv),Freq (MHz etc) Delimited:’,’ Voltage and Freq threshold [
V1.0 <=V V1
V2.0 <=V V2
Etc.
F1.0 <=F