Frequency modulation method, device and electronic equipment

By combining GPU hardware and software parameters, a load scenario recognition model is constructed, which solves the problems of inaccuracy and lag in the GPU frequency adjustment strategy in the existing technology. It realizes accurate identification and timely response to the graphics processor load scenario, and improves the accuracy and efficiency of the frequency adjustment strategy.

CN122285269APending Publication Date: 2026-06-26VIVO MOBILE COMM (SHENZHEN) CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202610309678.0
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2026-03-13
Publication Date
2026-06-26

AI Technical Summary

Technical Problem

Existing GPU frequency adjustment strategies rely on overall load values ​​and fixed-period sampling, making it difficult to accurately identify special rendering technology scenarios within the graphics processor, such as frame interpolation and ray tracing. This results in inaccurate strategies or delayed responses, failing to meet actual rendering needs.

Method used

By combining the performance parameters of the graphics processor and the graphics rendering parameters of the current process, a load scene recognition model is constructed. A one-dimensional convolutional neural network is used to predict the target load scene, and the frequency strategy, including the frequency adjustment of the GPU, CPU and memory, is adjusted in real time based on the prediction results.

Benefits of technology

It achieves accurate identification and timely response to GPU load scenarios, reduces the probability of frame drops, and improves the accuracy and efficiency of frequency modulation strategies, especially in heavy ray tracing and frame interpolation scenarios.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122285269A_ABST
    Figure CN122285269A_ABST
Patent Text Reader

Abstract

This application discloses a frequency modulation method, apparatus, and electronic device, belonging to the field of electronic device technology. The method includes: acquiring the operating performance parameters of a graphics processor corresponding to multiple time points and the graphics rendering parameters of the running process at each time point, wherein the multiple time points include the current time point and multiple historical time points preceding the current time point; determining a target load scenario based on the operating performance parameters of the graphics processor corresponding to the multiple time points and the graphics rendering parameters of the running process at each time point; and executing a frequency modulation strategy corresponding to the target load scenario.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application belongs to the field of electronic equipment technology, and specifically relates to a frequency modulation method, device and electronic equipment. Background Technology

[0002] With the development of electronic device technology, Dynamic Voltage and Frequency Scaling (DVFS) has gradually formed a reliable and complete technical system. However, as users' requirements for the performance and power consumption of electronic devices increase, especially against the backdrop of the rapid development of game rendering technology, the load on graphics processing units (GPUs) is also showing a more diversified trend, which places higher demands on DVFS technology.

[0003] Currently, most GPU frequency adjustment strategies rely directly on the load values ​​returned by the GPU. Existing strategies often depend on upper-level judgments to classify scenarios, determining the appropriate frequency adjustment strategy based on the current scenario of the electronic device, such as the user interface (UI), loading screen, or game combat interface. This classification is typically based on application process information or image recognition. However, such mechanisms struggle to accurately identify the specific rendering techniques used within the application, such as frame interpolation, ray tracing, and super-resolution scenarios. This can lead to inaccurate strategies or delayed responses when adjusting frequencies for these specialized scenarios. Summary of the Invention

[0004] The purpose of this application is to provide a frequency modulation method, apparatus, and electronic device that can improve the accuracy and responsiveness of frequency modulation strategies.

[0005] In a first aspect, embodiments of this application provide a frequency modulation method, including: The system obtains the graphics processor's running performance parameters and the graphics rendering parameters of the running process at each time point, where the multiple times point includes the current time point and multiple historical times point before the current time point; Based on the graphics processor's operating performance parameters corresponding to the multiple time points and the graphics rendering parameters of the running processes at each time point, the target load scenario is determined. Execute the frequency adjustment strategy corresponding to the target load scenario.

[0006] Secondly, embodiments of this application provide a frequency modulation device, including: The acquisition module is used to acquire the graphics processor's running performance parameters and the graphics rendering parameters of the running process at each time point, wherein the multiple times point includes the current time point and multiple historical times point before the current time point; The determination module is used to determine the target load scenario based on the operating performance parameters of the graphics processor corresponding to the multiple time points and the graphics rendering parameters of the running process at each time point; The execution module is used to execute the frequency modulation strategy corresponding to the target load scenario.

[0007] Thirdly, embodiments of this application provide an electronic device including a processor and a memory, wherein the memory stores programs or instructions executable on the processor, and the programs or instructions, when executed by the processor, implement the steps of the method described in the first aspect.

[0008] Fourthly, embodiments of this application provide a readable storage medium on which a program or instructions are stored, which, when executed by a processor, implement the steps of the method described in the first aspect.

[0009] Fifthly, embodiments of this application provide a chip, the chip including a processor and a communication interface, the communication interface being coupled to the processor, the processor being used to run programs or instructions to implement the method as described in the first aspect.

[0010] In a sixth aspect, embodiments of this application provide a computer program product stored in a storage medium, which is executed by at least one processor to implement the method described in the first aspect.

[0011] In this embodiment, the operating performance parameters of the graphics processor at multiple times and the graphics rendering parameters of the running process at each time are first obtained. Based on the operating performance parameters of the graphics processor at multiple times and the graphics rendering parameters of the running process at each time, the target load scenario is determined, and the frequency modulation strategy corresponding to the target load scenario is executed. That is, by combining the operating performance parameters of the graphics processor (i.e., hardware parameters) with the graphics rendering parameters of the current process (i.e. software parameters), the target load scenario of the graphics processor can be accurately identified, especially special scenarios such as heavy ray tracing and frame interpolation, so as to ensure the accuracy and timely response of the executed frequency modulation strategy. Attached Figure Description

[0012] Figure 1 This is a flowchart illustrating a frequency modulation method provided in some embodiments of this application; Figure 2 This is an architecture diagram of a frequency modulation system provided in some embodiments of this application; Figure 3These are structural diagrams of prediction models provided in some embodiments of this application; Figure 4 This is a flowchart illustrating the determination of load scenarios provided in some embodiments of this application; Figure 5 This is a schematic diagram illustrating the determination of frequency modulation strategies provided in some embodiments of this application; Figure 6 These are schematic diagrams of the frequency modulation device provided in some embodiments of this application; Figure 7 These are structural block diagrams of electronic devices provided in some embodiments of this application; Figure 8 These are structural block diagrams of electronic devices provided in some embodiments of this application. Detailed Implementation

[0013] The technical solutions of the embodiments of this application will be clearly described below with reference to the accompanying drawings. Obviously, the described embodiments are only some, not all, of the embodiments of this application. All other embodiments obtained by those skilled in the art based on the embodiments of this application are within the scope of protection of this application.

[0014] The terms "first," "second," etc., used in the specification and claims of this application are used to distinguish similar objects and not to describe a specific order or sequence. It should be understood that such terms can be used interchangeably where appropriate so that embodiments of this application can be implemented in orders other than those illustrated or described herein, and the objects distinguished by "first," "second," etc., are generally of the same class and the number of objects is not limited; for example, a first object can be one or more. Furthermore, in the specification and claims, "and / or" indicates at least one of the connected objects, and the character " / " generally indicates that the preceding and following objects are in an "or" relationship.

[0015] Existing GPU frequency adjustment strategies are mainly based on the following steps: (1) Based on load sampling: The driver layer reads the overall load utilization of the GPU at a fixed period. The overall load utilization of the GPU is the core decision basis in the existing frequency modulation strategy.

[0016] (2) Linear mapping: A load threshold is preset. When the overall load exceeds the load threshold, the GPU frequency is increased; when the overall load is lower than the load threshold, the GPU frequency is decreased.

[0017] (3) Unified adjustment: The GPU frequency is usually the main adjustment target, and the frequency of other IP modules (referring to other key functional hardware modules integrated on the same chip other than the GPU) will not be actively controlled based on the GPU frequency.

[0018] Currently, GPU frequency tuning largely relies on the GPU's returned load values ​​for decision-making, without incorporating richer hardware counter information (e.g., bandwidth blocking rate, compute unit load, ray tracing unit load) or application-layer application programming interface (API) call parameters to aid analysis. Furthermore, existing strategies for classifying usage scenarios are mostly determined by upper layers, typically based on application process information or display image recognition. However, this classification mechanism cannot accurately identify the specific rendering techniques implemented within the application, such as frame interpolation, ray tracing, and super-resolution scenarios, potentially leading to inaccurate strategies or lag when tuning frequencies for these specialized scenarios. Therefore, the currently prevalent DVFS technology suffers from the following main drawbacks: (1) Lack of load characteristic perception Existing DVFS strategies only focus on the overall GPU load and heavily rely on the accuracy of load prediction, failing to further categorize the types of load bottlenecks. For example, in frame interpolation scenarios, current technologies cannot accurately identify the scenario. If the load of the next frame is predicted based on the load of the previous frame, it will cause a "misalignment between large and small frames" in the load prediction, resulting in the GPU frequency consistently failing to meet the actual rendering requirements.

[0019] In ray tracing scenarios, discrete memory accesses can lead to increased blocking rates in texture processing units, and the load fluctuations of ray tracing units and shader units are often out of sync. In such cases, the scheduler needs to be more sensitive in predicting and responding to load changes, rather than constantly maintaining a high frequency and causing unnecessary power consumption.

[0020] When a GPU experiences pipeline blockage due to insufficient memory bandwidth, the GPU load will also be high. In this case, simply increasing the GPU frequency will not effectively solve the performance bottleneck.

[0021] (2) Response hysteresis Traditional sampling mechanisms based on fixed periods have inherent response delays. In the first few sampling periods after a sudden team battle or heavy load scenario in a game, the GPU frequency may not be able to increase in time, resulting in noticeable stuttering or frame drops.

[0022] Therefore, embodiments of this application provide a frequency modulation method, apparatus, and electronic device. By combining the operating performance parameters (i.e., hardware parameters) of the graphics processor with the graphics rendering parameters (i.e., software parameters) of the current process, the target load scenario of the graphics processor can be accurately identified, especially special scenarios such as heavy ray tracing and frame interpolation, so as to ensure the accuracy and timeliness of the frequency modulation strategy executed.

[0023] The frequency modulation method provided in this application will be described below with reference to the accompanying drawings, through specific embodiments and application scenarios.

[0024] like Figure 1 As shown in the figure, this application provides a frequency modulation method, which may specifically include the following steps: Step 101: Obtain the graphics processor's running performance parameters and the graphics rendering parameters of the running process at each time point, where the multiple times point includes the current time point and multiple historical times point before the current time point.

[0025] Specifically, the above frequency modulation method is applied to a frequency modulation system, and the architecture diagram of the frequency modulation system is as follows: Figure 2 As shown, the system scheduler 22, graphics processor 23, dynamic random access memory (DRAM) 24, and central processing unit (CPU) 25 are closely linked through the GPU driver 21. The GPU driver 21 periodically collects the runtime performance parameters (i.e., hardware parameters) of the GPU's hardware performance counters and transmits them to the system scheduler 22, and also obtains the graphics rendering parameters (i.e., software parameters) of the software counters invoked by the upper-layer application 26. The GPU's runtime performance parameters characterize the execution state of the GPU's internal hardware units. The graphics rendering parameters characterize the workload of the current process requesting GPU execution.

[0026] Among them, the GPU's running performance parameters corresponding to the current moment and multiple historical moments reflect the GPU's real-time working status and historical performance trends, and can be recorded by frame or by renderpass according to the scheduler's needs.

[0027] Let T be the number of historical time points, and t be the current time point. At time t, collect the GPU's performance parameters and the graphics rendering parameters of the running process at time t, and record them as follows: , This can reflect the real-time working status of the GPU. Similarly, obtain the GPU's running performance parameters collected at time t-1 and the graphics rendering parameters of the running process at time t-1, and record them as follows: This process continues until the GPU's performance parameters and the graphics rendering parameters of the running process at time tT are obtained and recorded as follows: ,pass ... It can reflect the historical performance trend of the GPU. The above... , ... Normalization was performed separately to eliminate the influence of dimensions.

[0028] After the above normalization process , ... Construct vector X:

[0029] X represents the complete load change trend of the GPU over the past T time points and the current time point.

[0030] In one optional specific embodiment, the operating performance parameters include, but are not limited to, at least one of the following: The overall activity parameter, namely the overall GPU utilization rate Counter_gpu_active; The occupancy parameter of the arithmetic logic unit, i.e., the utilization rate of the arithmetic logic unit, Counter_alu_utilization; The waiting time parameter for the texture processing unit, i.e., the waiting time (or blocking time) of the texture processing unit (or texture sampling unit) Counter_texture_stall; The memory bandwidth utilization parameter, namely the read and write utilization of GPU bandwidth, is Counter_memory_bandwidth_utilization; The load factor parameter of the ray tracing processing unit, i.e., the utilization rate of the ray tracing processing unit (or ray tracing hardware unit) Counter_ray_tracing_core_utilization.

[0031] In one optional embodiment, the graphics rendering parameters include, but are not limited to, at least one of the following: The parameter for the number of drawing call instructions is Counter_drawcall, which represents the number of drawing call instructions called by the process. The number of render passes parameter, i.e., the number of render passes called by the process (Counter_renderpass); The parameter for the number of ray tracing application interface calls is Counter_ray_tracing, which represents the number of ray tracing-related API calls made during the process.

[0032] Therefore, at time t for:

[0033] Step 102: Determine the target load scenario based on the graphics processor's operating performance parameters corresponding to the multiple time points and the graphics rendering parameters of the running process at each time point.

[0034] Specifically, by combining hardware and software parameters, the complete load change trend of the GPU over the past T time points and the current time point can be obtained. This load change trend can accurately identify the load scenario in which the GPU is located and use this load scenario as the target load scenario.

[0035] The load scenarios include, but are not limited to: computationally constrained scenarios, memory-constrained scenarios, front-end blocking scenarios, frame interpolation scenarios, ray tracing scenarios, and abnormal scenarios. The aforementioned pre-defined load scenarios can be further defined according to business requirements.

[0036] Step 103: Execute the frequency modulation strategy corresponding to the target load scenario.

[0037] Specifically, by using the GPU's operating performance parameters and the graphics rendering parameters of the running process to assist the system in frequency tuning optimization, it is possible to detect the load situation in advance and issue scheduling instructions more accurately according to the load scenario, thereby improving the granularity of scheduling and achieving more efficient frequency point management.

[0038] In this embodiment, the operating performance parameters of the graphics processor at multiple times and the graphics rendering parameters of the running process at each time are first obtained. Based on the operating performance parameters of the graphics processor at multiple times and the graphics rendering parameters of the running process at each time, the target load scenario is determined, and the frequency modulation strategy corresponding to the target load scenario is executed. That is, by combining the operating performance parameters of the graphics processor (i.e., hardware parameters) with the graphics rendering parameters of the current process (i.e. software parameters), the target load scenario of the graphics processor can be accurately identified, especially special scenarios such as heavy ray tracing and frame interpolation, so as to ensure the accuracy and timely response of the executed frequency modulation strategy.

[0039] In an optional specific embodiment, after step 101 obtains the graphics processor's operating performance parameters corresponding to multiple time points and the graphics rendering parameters of the running process at each time point, the method further includes: Based on the graphics processor's operating performance parameters corresponding to the multiple time points and the graphics rendering parameters of the running processes at each time point, the overall activity parameters of the graphics processor at the next time point of the current time point are predicted. The change in activity is calculated based on the overall activity parameters of the graphics processor at the next time step and the overall activity parameters of the graphics processor at the current time step. The execution of the frequency modulation strategy corresponding to the target load scenario includes: If the change in activity level is greater than or equal to the activity level change threshold, the frequency adjustment strategy corresponding to the target load scenario is executed.

[0040] Specifically, based on the GPU's performance parameters at the current moment, the graphics rendering parameters of the running process at the current moment, the GPU's performance parameters at each historical moment, and the graphics rendering parameters of the running process at each historical moment, the overall GPU activity parameter for the next moment is predicted. Then, the difference between the overall GPU activity parameter for the next moment and the overall GPU activity parameter at the current moment is calculated, and this difference is used as the change in activity between the current moment and the next moment. The specific calculation formula is as follows:

[0041] in, This indicates the change in activity level; This parameter represents the overall activity level of the GPU in the next time step after the current time step. This parameter represents the overall activity level of the GPU at the current moment.

[0042] The activity level change is compared with the activity level change threshold. If the activity level change is greater than or equal to the activity level change threshold, the frequency adjustment strategy corresponding to the target load scenario is invoked and executed. Otherwise, if the activity level change is less than the activity level change threshold, the current frequency adjustment strategy remains unchanged, that is, the frequency adjustment strategy of the system scheduler itself is adopted.

[0043] The threshold for activity change can be set as needed, for example, a value of 5%.

[0044] In one embodiment, a one-dimensional convolutional neural network (1D-CNN) is used to build a prediction model to achieve faster prediction of target load scenarios and overall activity parameters with fewer parameters.

[0045] like Figure 3 As shown, the prediction model structure includes: (1) Input layer: receives the normalized data. A tensor, where T represents the number of historical moments, and X represents... , ... The constructed normalized vector.

[0046] (2) Feature extraction layer: 1D-CNN is used to extract temporal features, one-dimensional convolutional layer captures local features, and global average pooling layer compresses the time dimension.

[0047] (3) Scene classification header of the output layer: outputs a load scene as the target load scene.

[0048] (4) Output layer load regression header: Outputs a scalar value that predicts the overall GPU activity parameter at time t+1. Output example: 95%, which means the predicted overall GPU activity parameter at time t+1 is 95%.

[0049] The processing of the aforementioned prediction model can be placed in a Neural Processing Unit (NPU) to avoid consuming CPU resources and improve the overall system performance. Alternatively, the processing of the prediction model can be placed in other processors; this application does not specifically limit this.

[0050] In a preferred embodiment, the prediction model described above is an offline pre-trained model. This model is trained on a server based on large-scale sample data and then deployed on a mobile terminal after quantization and compression. It is mainly suitable for mobile terminals with heavy GPU loads, including but not limited to mobile phones, tablets, computers, and wearable devices. The mobile terminal only performs inference operations to minimize runtime power consumption.

[0051] In a preferred embodiment, the prediction model can also be an online prediction model, which is optimized based on the parameters input and the output data (predicted overall activity parameters, target load scenario) during the inference process to improve the accuracy of the model prediction.

[0052] In an optional specific embodiment, step 102 determines the target load scenario based on the operating performance parameters of the graphics processor corresponding to the plurality of time points and the graphics rendering parameters of the running process at each time point, including: The target load scenario is determined based on at least one of the following conditions: The first condition includes: the number of ray tracing application interface calls is not 0; The second condition includes: the overall activity parameter is a periodic time-domain non-uniform array; The third condition includes: the number of drawing call instructions is greater than or equal to the upper limit threshold of the number of drawing call instructions, or the number of rendering channels is greater than or equal to the upper limit threshold of the number of rendering channels, or the number of drawing call instructions is less than or equal to the lower limit threshold of the number of drawing call instructions, or the number of rendering channels is less than or equal to the lower limit threshold of the number of rendering channels. The fourth condition includes: the overall activity parameter is greater than or equal to the overall activity threshold; The fifth condition includes that the occupancy rate parameter of the arithmetic logic unit is greater than or equal to the upper limit threshold of the occupancy rate of the arithmetic logic unit, and the waiting time parameter of the texture processing unit is less than the lower limit threshold of the waiting time, and the memory bandwidth utilization parameter is less than the lower limit threshold of the memory bandwidth utilization. The sixth condition includes: the occupancy rate parameter of the arithmetic logic unit is less than the lower limit threshold of the occupancy rate of the arithmetic logic unit, the waiting time parameter of the texture processing unit is greater than or equal to the upper limit threshold of the waiting time, and the memory bandwidth utilization parameter is greater than or equal to the upper limit threshold of the memory bandwidth utilization.

[0053] Specifically, for the first condition: if the data parameters of the ray tracing application interface call at the current moment are not 0, that is:

[0054] If the first condition is met, then the first condition is satisfied; otherwise, if the data parameter of the ray tracing application interface call at the current moment is 0, then the first condition is not satisfied.

[0055] Regarding the second condition: if the overall activity parameter is a periodic non-uniform array in the time domain, then the second condition is satisfied; otherwise, if the overall activity parameter is not a periodic non-uniform array in the time domain, then the second condition is not satisfied.

[0056] Among them, it is determined whether the overall activity parameter of the GPU is a periodic non-uniform array in the time domain, that is, whether the overall activity level of the GPU exhibits regular periodic pulse fluctuations in the time domain.

[0057] Regarding the third condition: determine whether the third condition is met in the following way:

[0058] or

[0059] or

[0060] or

[0061] in, This parameter represents the number of drawing call commands at the current moment. This indicates the upper limit threshold for the number of drawing call commands. This indicates the lower limit threshold for the number of drawing call commands; This parameter represents the number of rendering channels at the current moment. This indicates the upper limit threshold for the number of rendering channels. This indicates the lower limit threshold for the number of rendering channels.

[0062] If the above formula is satisfied, then the third condition is satisfied; otherwise, if the above formula is not satisfied, then the third condition is not satisfied.

[0063] In one optional specific embodiment, the upper limit threshold for the number of drawing call instructions is determined based on the average value of the number of drawing call instructions corresponding to the current time and the plurality of historical times, and a first multiple; the lower limit threshold for the number of drawing call instructions is determined based on the average value of the number of drawing call instructions corresponding to the current time and the plurality of historical times, and a second multiple; the first multiple is greater than the second multiple. The upper limit threshold for the number of rendering channels is determined based on the average value of the number of rendering channels corresponding to the current time and the multiple historical times, and the first multiple. The lower limit threshold for the number of rendering channels is determined based on the average value of the number of rendering channels corresponding to the current time and the multiple historical times, and the second multiple.

[0064] Specifically, the first and second multiples can be set as needed, but the first multiple must be greater than the second multiple.

[0065] In one example, the first multiplier is 150%, the second multiplier is 50%, and the number of times is 4. Therefore, the upper limit threshold for the number of drawing call instructions is... The minimum threshold for the number of drawing call commands, the maximum threshold for the number of rendering channels, and the minimum threshold for the number of rendering channels are as follows:

[0066]

[0067]

[0068]

[0069] in, The parameter represents the number of drawing call instructions at time i, where i takes values ​​of t-3, t-2, t-1, and t respectively. This parameter represents the number of rendering channels at time i.

[0070] For the fourth condition: determine whether the overall GPU activity parameter at the current moment is greater than or equal to the overall activity threshold. If the overall activity parameter of the GPU at the current moment is greater than or equal to the overall activity threshold, the fourth condition is met; otherwise, if the overall activity parameter of the GPU at the current moment is less than the overall activity threshold, the fourth condition is not met.

[0071] Among them, the overall activity threshold You can set it to 90% based on experience. 90% is an empirical value, and different devices will perform differently, so it is not a fixed value.

[0072] Regarding the fifth condition: Determine whether the following fifth condition is satisfied:

[0073]

[0074]

[0075] Among them, the upper limit threshold of the occupancy rate of the arithmetic logic unit. You can set it to 85% based on experience. 85% is an empirical value, and different devices will perform differently, so it is not a fixed value.

[0076] Waiting time lower limit threshold It can be set to 70% based on experience. 70% is an empirical value, and different devices will perform differently, so it is not a fixed value.

[0077] Memory bandwidth utilization lower limit threshold A value of 70% can be set based on experience; this is an empirical value and will vary depending on the equipment, so it is not a fixed value. If the above formula is met, then the fifth condition is satisfied; otherwise, if the above formula is not met, then the fifth condition is not satisfied.

[0078] Regarding the sixth condition: Determine whether the following sixth condition is satisfied:

[0079]

[0080]

[0081] Among them, the lower limit threshold of the occupancy rate of the arithmetic logic unit. It can be set to 70% based on experience. 70% is an empirical value, and different devices will perform differently, so it is not a fixed value.

[0082] Waiting time upper limit threshold You can set it to 85% based on experience. 85% is an empirical value, and different devices will perform differently, so it is not a fixed value.

[0083] Memory bandwidth utilization limit threshold You can set it to 85% based on experience. 85% is an empirical value, and different devices will perform differently, so it is not a fixed value.

[0084] If the above formula is satisfied, then the sixth condition is satisfied; otherwise, if the above formula is not satisfied, then the sixth condition is not satisfied.

[0085] In an optional specific embodiment, the step of determining the target load scenario based on at least one of the following conditions specifically includes: If the first condition is met, the target load scene is determined to be a ray tracing scene; If the first condition is not met, but the second condition is met, then the target load scenario is determined to be a frame interpolation scenario. If the first and second conditions are not met, but the third condition is met, then the target load scenario is determined to be an abnormal load scenario. If the first condition, the second condition, the third condition, and the fourth condition are not met, the target load scenario is determined to be a front-end blocking scenario. If the first, second, and third conditions are not met, but the fourth and fifth conditions are met, then the target load scenario is determined to be a computationally constrained scenario. If the first, second, third, and fifth conditions are not met, but the fourth and sixth conditions are met, then the target load scenario is determined to be a memory-restricted scenario.

[0086] Specifically, if the GPU's performance parameters and the graphics rendering parameters of the running process meet the first condition (i.e., the number of ray tracing application interface calls at the current moment is not 0), then the target load scene is determined to be a ray tracing scene.

[0087] If the GPU's running performance parameters and the graphics rendering parameters of the running process do not meet the first condition (i.e., the number of ray tracing application interface calls at the current moment is 0), then it is determined whether the GPU's running performance parameters and the graphics rendering parameters of the running process meet the second condition. If the second condition is met (i.e., the overall activity parameter of the GPU at the current moment is a periodic temporal non-uniform array), then the target load scene is determined to be an interpolated scene.

[0088] Specifically, if the GPU's running performance parameters and the graphics rendering parameters of the running process do not meet the first condition and the second condition, then it is determined whether the third condition is met. If the third condition is met, it means that the API call scale has increased or decreased abnormally, and it is necessary to send an early warning message to the system scheduler in advance to ensure that the system scheduler can respond to the heavy load scenario in advance. Therefore, the target load scenario is determined to be an abnormal load scenario.

[0089] If the GPU's performance parameters and the graphics rendering parameters of the running process do not meet the first condition, the second condition, and the third condition, then determine whether the fourth condition is met. If the fourth condition is not met, it means that the overall GPU activity time is low, but the CPU-to-GPU command queue is backed up or the vertex processing stage is blocked. In this case, the target load scenario can be determined to be a front-end blocking scenario.

[0090] If the GPU's performance parameters and the graphics rendering parameters of the running process do not meet the first, second, and third conditions, then it is determined whether the fourth condition is met. If the fourth condition is met, then it is determined whether the fifth condition is met. If the fifth condition is met, it indicates that the GPU's overall activity time is high and the arithmetic logic unit is busy, and the memory bandwidth utilization is at a low / medium level. It is mainly used for complex shader calculations, such as lighting calculations and post-processing effects. Therefore, the target load scene is determined to be a computationally constrained scene.

[0091] If the GPU's running performance parameters and the graphics rendering parameters of the running process do not meet the first condition, the second condition, and the third condition, then it is determined whether the fourth condition is met. If the fourth condition is met, then it is determined whether the fifth condition is met. If the fifth condition is not met, then it is determined whether the sixth condition is met. If the sixth condition is met, it indicates that the GPU's overall active time is high and the bandwidth-related counters are close to their peak values. The arithmetic logic unit is not saturated and it is mainly used for high-resolution texture loading and large map data reading. Therefore, the target load scenario is determined to be a memory-limited scenario.

[0092] If the GPU's performance parameters and the graphics rendering parameters of the running process do not meet the first condition, the second condition, the third condition, the fourth condition, the fifth condition, and the sixth condition, then the process ends.

[0093] like Figure 4 As shown in the diagram, the process of determining each of the above load scenarios is illustrated below with a specific flowchart: Step 401: Determine whether the first condition is met. If yes, proceed to step 407; otherwise, proceed to step 402.

[0094] Step 402: Determine whether the second condition is met. If yes, proceed to step 408; otherwise, proceed to step 403.

[0095] Step 403: Determine whether the third condition is met. If yes, proceed to step 409; otherwise, proceed to step 404.

[0096] Step 404: Determine if the fourth condition is met. If not, proceed to step 410. If yes, proceed to step 405.

[0097] Step 405: Determine if the fifth condition is met. If yes, proceed to step 411; otherwise, proceed to step 406.

[0098] Step 406: Determine if the sixth condition is met. If yes, proceed to step 412. If no, end the process.

[0099] Step 407: Determine the target load scene as a ray tracing scene.

[0100] Step 408: Determine the target load scenario as a frame interpolation scenario.

[0101] Step 409: Determine the target load scenario as an abnormal load scenario.

[0102] Step 410: Determine the target load scenario as a front-end blocking scenario.

[0103] Step 411: Determine the target load scenario as a computationally constrained scenario.

[0104] Step 412: Determine the target load scenario as a memory-constrained scenario.

[0105] In an optional specific embodiment, in step 103, the relationship between the target load scenario and the frequency modulation strategy includes, but is not limited to, one of the following six: The first approach: When the target load scenario is a ray tracing scenario, the frequency modulation strategy corresponding to the target load scenario is to adjust the frequency of the double data rate synchronous dynamic random access memory.

[0106] Specifically, if the target load scenario is a ray tracing scenario, the frequency adjustment strategy invoked is to increase the frequency of the Double Data Rate Synchronous Dynamic Random-Access Memory (DDR) by two levels to alleviate the GPU load.

[0107] The second approach: When the target load scenario is a frame interpolation scenario, the frequency modulation strategy corresponding to the target load scenario is to adjust the frequency of the graphics processor.

[0108] Specifically, if the target load scenario is a frame interpolation scenario, the frequency adjustment strategy invoked is to increase the GPU frequency by one level.

[0109] The third approach is to adjust the frequency of the central processing unit when the target load scenario is an abnormal load scenario.

[0110] Specifically, if the target load scenario is an abnormal scenario, the frequency adjustment strategy invoked is to either increase the CPU frequency by three levels or decrease the CPU frequency by three levels.

[0111] If, during the calculation of the probability value of an abnormal scenario, the third condition is met:

[0112] or

[0113] The frequency adjustment strategy invoked is to increase the CPU frequency by three levels.

[0114] If, during the calculation of the probability value of an abnormal scenario, the third condition is met:

[0115] or

[0116] The frequency adjustment strategy invoked is to reduce the CPU frequency by three levels.

[0117] The fourth type: When the target load scenario is a computationally limited scenario, the frequency adjustment strategy corresponding to the target load scenario is to adjust the frequency of the graphics processor.

[0118] Specifically, if the target load scenario is a computationally limited scenario and is determined to be insufficient in computing power, it is necessary to actively increase the GPU frequency to speed up the computing speed. The frequency adjustment strategy invoked is to increase the GPU frequency by one level.

[0119] The fifth approach: When the target load scenario is a memory-restricted scenario, the frequency adjustment strategy corresponding to the target load scenario is to keep the frequency of the graphics processor unchanged and adjust the frequency of the double data rate synchronous dynamic random access memory.

[0120] Specifically, if the target load scenario is a memory-restricted scenario, and it is determined that the data supply is insufficient, then the GPU frequency is maintained or limited to avoid idling and wasting power. At the same time, the DDR frequency needs to be increased to prioritize the data transmission bottleneck. The frequency adjustment strategy called is to keep the GPU frequency unchanged and increase the DDR frequency by one level. The DDR frequency can also be increased quickly by increasing the bus priority.

[0121] The sixth approach: When the target load scenario is a front-end blocking scenario, the frequency adjustment strategy corresponding to the target load scenario is to keep the frequency of the graphics processor unchanged and adjust the frequency of the central processing unit.

[0122] Specifically, if the target load scenario is a front-end blocking scenario, and the blocking status needs to be reported to the system, the frequency adjustment strategy invoked is: keep the GPU frequency unchanged, increase the CPU frequency by one level, and report the blocking status to the system layer.

[0123] It should be noted that since the CPU, GPU, and DDR frequencies on mobile platforms are divided into different ranges, the frequency adjustment strategy is to adjust the frequency range.

[0124] like Figure 5 As shown, the frequency modulation strategy for the above target load scenario is explained below through a specific flowchart: Step 501: Obtain the GPU's running performance parameters and the graphics rendering parameters of the running process at the current time and at T historical time points.

[0125] Step 502: Normalize the running performance parameters and the graphics rendering parameters of the running process at the current time and T historical time points.

[0126] Step 503: Construct vector X based on the normalized running performance parameters of the current time and T historical time points, as well as the graphics rendering parameters of the running process.

[0127] Step 504: Input X and T into the preset model to obtain the overall GPU activity parameters and target load scenario for the next time step from the current time step.

[0128] Step 505: Calculate the change in activity based on the overall activity parameters of the GPU at the next time step and the overall activity parameters of the GPU at the current time step.

[0129] Step 506: Determine whether the target load scenario is a computationally limited scenario and whether the change in activity level is greater than the activity level change threshold. If yes, proceed to step 513; if no, proceed to step 507.

[0130] Step 507: Determine whether the target load scenario is a memory-restricted scenario and whether the change in activity is greater than the activity change threshold. If yes, proceed to step 514; if no, proceed to step 508.

[0131] Step 508: Determine whether the target load scenario is a front-end blocking scenario and whether the change in activity level is greater than the activity level change threshold. If yes, proceed to step 515; if no, proceed to step 509.

[0132] Step 509: Determine whether the target load scene is a frame interpolation scene and whether the change in activity level is greater than the activity level change threshold. If yes, proceed to step 516; if no, proceed to step 510.

[0133] Step 510: Determine whether the target load scene is a ray tracing scene and whether the change in activity is greater than the activity change threshold. If yes, proceed to step 517; if no, proceed to step 511.

[0134] Step 511: Determine whether the target load scenario is an abnormal load scenario and whether the change in activity level is greater than the activity level change threshold. If yes, proceed to step 518; if no, proceed to step 512.

[0135] Step 512: Keep the frequency adjustment strategy currently executed by the system scheduler unchanged.

[0136] Step 513: Adjust the GPU frequency.

[0137] Step 514: Keep the GPU frequency unchanged and adjust the DDR frequency.

[0138] Step 515: Keep the GPU frequency unchanged and adjust the CPU frequency.

[0139] Step 516: Adjust the GPU frequency.

[0140] Step 517: Adjust the DDR frequency.

[0141] Step 518: Adjust the CPU frequency.

[0142] In one embodiment, the kernel space exposes a specific control node in the performance scheduling mechanism. The system writes scheduling instructions to this control node under the following two conditions: Upper-layer system services identify and predict target load scenarios. The GPU driver detected that the graphics rendering parameters exceeded the corresponding threshold.

[0143] Upon detecting that the control node has written a scheduling instruction, the system scheduler will immediately perform the following actions: Skip the current sampling period and, in conjunction with the GPU's operating performance parameters and the graphics rendering parameters provided by the upper-layer application, quickly switch to the preset frequency tuning strategy to adapt to performance requirements in real time.

[0144] During the implementation of this solution, the system can build the required counters and schedulers according to needs. The empirical values, predicted values, load scenarios, frequency adjustment strategies, etc., mentioned in the embodiments can all be set as needed.

[0145] In summary, the embodiments of this application combine GPU hardware information (i.e., multi-dimensional operating performance parameters) and software information (i.e., multi-dimensional graphics rendering parameters) to accurately identify the target load scenario of the graphics processor, especially heavy-load scenarios such as ray tracing and frame interpolation. This ensures the accuracy and timeliness of the executed frequency modulation strategy, effectively improving frequency modulation accuracy. Furthermore, accurately identifying the target load scenario of the graphics processor through multi-dimensional information can reduce the probability of frame drops.

[0146] The frequency modulation method provided in this application can be executed by a frequency modulation device. This application uses a frequency modulation device executing the frequency modulation method as an example to illustrate the frequency modulation device provided in this application.

[0147] like Figure 6 As shown in the figure, this application embodiment also provides a frequency modulation device 600, specifically including: The acquisition module 601 is used to acquire the graphics processor's running performance parameters and the graphics rendering parameters of the running process at each time point, wherein the multiple times point includes the current time point and multiple historical times point before the current time point; The determination module 602 is used to determine the target load scenario based on the operating performance parameters of the graphics processor corresponding to the multiple time points and the graphics rendering parameters of the running process at each time point. The execution module 603 is used to execute the frequency modulation strategy corresponding to the target load scenario.

[0148] Optionally, the operating performance parameters include at least one of the following: Overall activity level parameters; The occupancy rate parameter of the arithmetic logic unit; The wait time parameter for the texture processing unit; Memory bandwidth utilization parameter; Load rate parameters of the ray tracing processing unit; The graphics rendering parameters include at least one of the following: Draw the number of command call parameters; The number of rendering channels parameter; The number of ray tracing application interface calls parameter.

[0149] Optionally, the device further includes: The prediction module is used to predict the overall activity parameters of the graphics processor in the next moment of the current moment based on the running performance parameters of the graphics processor corresponding to the multiple time points and the graphics rendering parameters of the running process at each time point. The change in activity is calculated based on the overall activity parameters of the graphics processor at the next time step and the overall activity parameters of the graphics processor at the current time step. When executing the frequency modulation strategy corresponding to the target load scenario, the execution module 603 is specifically used for: If the change in activity level is greater than or equal to the activity level change threshold, the frequency adjustment strategy corresponding to the target load scenario is executed.

[0150] Optionally, when determining the target load scenario based on the graphics processor's operating performance parameters corresponding to the plurality of times and the graphics rendering parameters of the running process at each time, the determining module 602 is specifically used for: The target load scenario is determined based on at least one of the following conditions: The first condition includes: the number of ray tracing application interface calls parameter is not 0; The second condition includes: the overall activity parameter is a periodic time-domain non-uniform array; The third condition includes: the number of drawing call instructions is greater than or equal to the upper limit threshold of the number of drawing call instructions, or the number of rendering channels is greater than or equal to the upper limit threshold of the number of rendering channels, or the number of drawing call instructions is less than or equal to the lower limit threshold of the number of drawing call instructions, or the number of rendering channels is less than or equal to the lower limit threshold of the number of rendering channels. The fourth condition includes: the overall activity parameter is greater than or equal to the overall activity threshold; The fifth condition includes the occupancy rate parameter of the arithmetic logic unit being greater than or equal to the upper limit threshold of the occupancy rate of the arithmetic logic unit, the waiting time parameter of the texture processing unit being less than the lower limit threshold of the waiting time, and the memory bandwidth utilization parameter being less than the lower limit threshold of the memory bandwidth utilization. The sixth condition includes: the occupancy rate parameter of the arithmetic logic unit is less than the lower limit threshold of the occupancy rate of the arithmetic logic unit, and the waiting time parameter of the texture processing unit is greater than or equal to the upper limit threshold of the waiting time, and the memory bandwidth utilization parameter is greater than or equal to the upper limit threshold of the memory bandwidth utilization.

[0151] Optionally, when determining the target load scenario based on at least one of the following conditions, the determining module 602 is specifically used for: If the first condition is met, the target load scene is determined to be a ray tracing scene; If the first condition is not met, but the second condition is met, then the target load scenario is determined to be a frame interpolation scenario. If the first and second conditions are not met, but the third condition is met, then the target load scenario is determined to be an abnormal load scenario. If the first condition, the second condition, the third condition, and the fourth condition are not met, the target load scenario is determined to be a front-end blocking scenario. If the first, second, and third conditions are not met, but the fourth and fifth conditions are met, then the target load scenario is determined to be a computationally constrained scenario. If the first, second, third, and fifth conditions are not met, but the fourth and sixth conditions are met, then the target load scenario is determined to be a memory-restricted scenario.

[0152] Optionally, the upper limit threshold for the number of drawing call instructions is determined based on the average value of the number of drawing call instructions corresponding to the current time and the multiple historical times, and a first multiple; the lower limit threshold for the number of drawing call instructions is determined based on the average value of the number of drawing call instructions corresponding to the current time and the multiple historical times, and a second multiple; the first multiple is greater than the second multiple. The upper limit threshold for the number of rendering channels is determined based on the average value of the number of rendering channels corresponding to the current time and the multiple historical times, and the first multiple. The lower limit threshold for the number of rendering channels is determined based on the average value of the number of rendering channels corresponding to the current time and the multiple historical times, and the second multiple.

[0153] Optionally, if the target load scenario is a ray tracing scenario, the frequency modulation strategy corresponding to the target load scenario is to adjust the frequency of the double data rate synchronous dynamic random access memory. When the target load scenario is a frame interpolation scenario, the frequency modulation strategy corresponding to the target load scenario is to adjust the frequency of the graphics processor; When the target load scenario is an abnormal load scenario, the frequency adjustment strategy corresponding to the target load scenario is to adjust the frequency of the central processing unit; When the target load scenario is a computationally limited scenario, the frequency adjustment strategy corresponding to the target load scenario is to adjust the frequency of the graphics processor; When the target load scenario is a memory-restricted scenario, the frequency adjustment strategy corresponding to the target load scenario is to keep the frequency of the graphics processor unchanged and adjust the frequency of the double data rate synchronous dynamic random access memory. When the target load scenario is a front-end blocking scenario, the frequency adjustment strategy corresponding to the target load scenario is to keep the frequency of the graphics processor unchanged and adjust the frequency of the central processing unit.

[0154] The frequency modulation device in this application embodiment can be an electronic device or a component within an electronic device, such as an integrated circuit or a chip. The electronic device can be a terminal or other devices besides a terminal. For example, the electronic device can be a mobile phone, tablet computer, laptop computer, PDA, in-vehicle electronic device, mobile internet device (MID), augmented reality (AR) / virtual reality (VR) device, robot, wearable device, ultra-mobile personal computer (UMPC), netbook, or personal digital assistant (PDA), etc. It can also be a server, network attached storage (NAS), personal computer (PC), television (TV), ATM, or self-service machine, etc. This application embodiment does not specifically limit the specific type of device.

[0155] The frequency modulation device in this application embodiment can be a device with an operating system. This operating system can be Android, iOS, or other possible operating systems; this application embodiment does not specifically limit the specific operating system used.

[0156] The frequency modulation device provided in this application embodiment can achieve... Figures 1 to 5 The various processes implemented in the method implementation examples will not be described again here to avoid repetition.

[0157] Optionally, such as Figure 7As shown, this application embodiment also provides an electronic device 900, including a processor 901 and a memory 902. The memory 902 stores a program or instructions that can run on the processor 901. When the program or instructions are executed by the processor 901, they implement the various steps of the above-described frequency modulation method embodiment and can achieve the same technical effect. To avoid repetition, they will not be described again here.

[0158] It should be noted that the electronic devices in the embodiments of this application include the mobile electronic devices and non-mobile electronic devices described above.

[0159] Figure 8 A schematic diagram of the hardware structure of an electronic device to implement an embodiment of this application.

[0160] The electronic device 1000 includes, but is not limited to, components such as: radio frequency unit 1001, network module 1002, audio output unit 1003, input unit 1004, sensor 1005, display unit 1006, user input unit 1007, interface unit 1008, memory 1009, and processor 1010.

[0161] Those skilled in the art will understand that the electronic device 1000 may also include a power supply (such as a battery) for supplying power to various components. The power supply may be logically connected to the processor 1010 through a power management system, thereby enabling functions such as managing charging, discharging, and power consumption through the power management system. Figure 8 The electronic device structure shown does not constitute a limitation on the electronic device. The electronic device may include more or fewer components than shown, or combine certain components, or have different component arrangements, which will not be elaborated here.

[0162] The processor 1010 is used to acquire the running performance parameters of the graphics processor corresponding to multiple times and the graphics rendering parameters of the running process at each time, wherein the multiple times include the current time and multiple historical times before the current time. Based on the graphics processor's operating performance parameters corresponding to the multiple time points and the graphics rendering parameters of the running processes at each time point, the target load scenario is determined. Execute the frequency adjustment strategy corresponding to the target load scenario.

[0163] Optionally, the operating performance parameters include at least one of the following: Overall activity level parameters; The occupancy rate parameter of the arithmetic logic unit; The wait time parameter for the texture processing unit; Memory bandwidth utilization parameter; Load rate parameters of the ray tracing processing unit; The graphics rendering parameters include at least one of the following: Draw the number of command call parameters; The number of rendering channels parameter; The number of ray tracing application interface calls parameter.

[0164] Optionally, the processor 1010 is further configured to: Based on the graphics processor's operating performance parameters corresponding to the multiple time points and the graphics rendering parameters of the running processes at each time point, the overall activity parameters of the graphics processor at the next time point of the current time point are predicted. The change in activity is calculated based on the overall activity parameters of the graphics processor at the next time step and the overall activity parameters of the graphics processor at the current time step. When the processor 1010 executes the frequency modulation strategy corresponding to the target load scenario, it is specifically used for: If the change in activity level is greater than or equal to the activity level change threshold, the frequency adjustment strategy corresponding to the target load scenario is executed.

[0165] Optionally, when determining the target load scenario based on the operating performance parameters of the graphics processor corresponding to the plurality of times and the graphics rendering parameters of the running process at each time, the processor 1010 is specifically used for: The target load scenario is determined based on at least one of the following conditions: The first condition includes: the number of ray tracing application interface calls parameter is not 0; The second condition includes: the overall activity parameter is a periodic time-domain non-uniform array; The third condition includes: the number of drawing call instructions is greater than or equal to the upper limit threshold of the number of drawing call instructions, or the number of rendering channels is greater than or equal to the upper limit threshold of the number of rendering channels, or the number of drawing call instructions is less than or equal to the lower limit threshold of the number of drawing call instructions, or the number of rendering channels is less than or equal to the lower limit threshold of the number of rendering channels. The fourth condition includes: the overall activity parameter is greater than or equal to the overall activity threshold; The fifth condition includes the occupancy rate parameter of the arithmetic logic unit being greater than or equal to the upper limit threshold of the occupancy rate of the arithmetic logic unit, the waiting time parameter of the texture processing unit being less than the lower limit threshold of the waiting time, and the memory bandwidth utilization parameter being less than the lower limit threshold of the memory bandwidth utilization. The sixth condition includes: the occupancy rate parameter of the arithmetic logic unit is less than the lower limit threshold of the occupancy rate of the arithmetic logic unit, and the waiting time parameter of the texture processing unit is greater than or equal to the upper limit threshold of the waiting time, and the memory bandwidth utilization parameter is greater than or equal to the upper limit threshold of the memory bandwidth utilization.

[0166] Optionally, when the processor 1010 determines the target load scenario based on at least one of the following conditions, it is specifically used to: If the first condition is met, the target load scene is determined to be a ray tracing scene; If the first condition is not met, but the second condition is met, then the target load scenario is determined to be a frame interpolation scenario. If the first and second conditions are not met, but the third condition is met, then the target load scenario is determined to be an abnormal load scenario. If the first condition, the second condition, the third condition, and the fourth condition are not met, the target load scenario is determined to be a front-end blocking scenario. If the first, second, and third conditions are not met, but the fourth and fifth conditions are met, then the target load scenario is determined to be a computationally constrained scenario. If the first, second, third, and fifth conditions are not met, but the fourth and sixth conditions are met, then the target load scenario is determined to be a memory-restricted scenario.

[0167] Optionally, the upper limit threshold for the number of drawing call instructions is determined based on the average value of the number of drawing call instructions corresponding to the current time and the multiple historical times, and a first multiple; the lower limit threshold for the number of drawing call instructions is determined based on the average value of the number of drawing call instructions corresponding to the current time and the multiple historical times, and a second multiple; the first multiple is greater than the second multiple. The upper limit threshold for the number of rendering channels is determined based on the average value of the number of rendering channels corresponding to the current time and the multiple historical times, and the first multiple. The lower limit threshold for the number of rendering channels is determined based on the average value of the number of rendering channels corresponding to the current time and the multiple historical times, and the second multiple.

[0168] Optionally, if the target load scenario is a ray tracing scenario, the frequency modulation strategy corresponding to the target load scenario is to adjust the frequency of the double data rate synchronous dynamic random access memory. When the target load scenario is a frame interpolation scenario, the frequency modulation strategy corresponding to the target load scenario is to adjust the frequency of the graphics processor; When the target load scenario is an abnormal load scenario, the frequency adjustment strategy corresponding to the target load scenario is to adjust the frequency of the central processing unit; When the target load scenario is a computationally limited scenario, the frequency adjustment strategy corresponding to the target load scenario is to adjust the frequency of the graphics processor; When the target load scenario is a memory-restricted scenario, the frequency adjustment strategy corresponding to the target load scenario is to keep the frequency of the graphics processor unchanged and adjust the frequency of the double data rate synchronous dynamic random access memory. When the target load scenario is a front-end blocking scenario, the frequency adjustment strategy corresponding to the target load scenario is to keep the frequency of the graphics processor unchanged and adjust the frequency of the central processing unit.

[0169] It should be understood that, in this embodiment, the input unit 1004 may include a graphics processing unit (GPU) 10041 and a microphone 10042. The GPU 10041 processes image data of still images or videos obtained by an image capture device (such as a camera) in video capture mode or image capture mode. The display unit 1006 may include a display panel 10061, which may be configured in the form of a liquid crystal display, an organic light-emitting diode, etc. The user input unit 1007 includes at least one of a touch panel 10071 and other input devices 10072. The touch panel 10071 is also called a touch screen. The touch panel 10071 may include a touch detection device and a touch controller. Other input devices 10072 may include, but are not limited to, physical keyboards, function keys (such as volume control buttons, power buttons, etc.), trackballs, mice, joysticks, etc., which will not be described in detail here.

[0170] The memory 1009 can be used to store software programs and various data. The memory 1009 may primarily include a first storage area for storing programs or instructions and a second storage area for storing data. The first storage area may store the operating system, application programs or instructions required for at least one function (such as sound playback, image playback, etc.). Furthermore, the memory 1009 may include volatile memory or non-volatile memory, or both. The non-volatile memory may be read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), or flash memory. Volatile memory can be random access memory (RAM), static random access memory (SRAM), dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), double data rate synchronous dynamic random access memory (DDRSDRAM), enhanced synchronous dynamic random access memory (ESDRAM), synchronous link dynamic random access memory (SLDRAM), and direct memory bus RAM (DRRAM). The memory 1009 in this embodiment includes, but is not limited to, these and any other suitable types of memory.

[0171] The processor 1010 may include one or more processing units; optionally, the processor 1010 integrates an application processor and a modem processor, wherein the application processor mainly handles operations involving the operating system, user interface, and applications, and the modem processor mainly handles wireless communication signals, such as a baseband processor. It is understood that the aforementioned modem processor may also not be integrated into the processor 1010.

[0172] This application also provides a readable storage medium storing a program or instructions. When the program or instructions are executed by a processor, they implement the various processes of the above-described frequency modulation method embodiments and achieve the same technical effect. To avoid repetition, they will not be described again here.

[0173] The processor is the processor in the electronic device described in the above embodiments. The readable storage medium includes computer-readable storage media, such as computer read-only memory (ROM), random access memory (RAM), magnetic disk, or optical disk.

[0174] This application embodiment also provides a chip, which includes a processor and a communication interface. The communication interface is coupled to the processor. The processor is used to run programs or instructions to implement the various processes of the above-described frequency modulation method embodiments and can achieve the same technical effect. To avoid repetition, it will not be described again here.

[0175] It should be understood that the chip mentioned in the embodiments of this application may also be referred to as a system-on-a-chip, system chip, chip system, or system-on-a-chip, etc.

[0176] This application provides a computer program product, which is stored in a storage medium and executed by at least one processor to implement the various processes of the frequency modulation method embodiments described above, and can achieve the same technical effect. To avoid repetition, it will not be described again here.

[0177] It should be noted that, in this document, the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, article, or apparatus. Without further limitations, an element defined by the phrase "comprising one..." does not exclude the presence of other identical elements in the process, method, article, or apparatus that includes that element. Furthermore, it should be noted that the scope of the methods and apparatuses in the embodiments of this application is not limited to performing functions in the order shown or discussed, but may also include performing functions substantially simultaneously or in the reverse order, depending on the functions involved. For example, the described methods may be performed in a different order than described, and various steps may be added, omitted, or combined. Additionally, features described with reference to certain examples may be combined in other examples.

[0178] Through the above description of the embodiments, those skilled in the art can clearly understand that the methods of the above embodiments can be implemented by means of software plus necessary general-purpose hardware platforms. Of course, they can also be implemented by hardware, but in many cases the former is a better implementation method. Based on this understanding, the technical solution of this application, in essence, or the part that contributes to the prior art, can be embodied in the form of a computer software product. This computer software product is stored in a storage medium (such as ROM / RAM, magnetic disk, optical disk) and includes several instructions to cause a terminal (which may be a mobile phone, computer, server, or network device, etc.) to execute the methods described in the various embodiments of this application.

[0179] The embodiments of this application have been described above with reference to the accompanying drawings. However, this application is not limited to the specific embodiments described above. The specific embodiments described above are merely illustrative and not restrictive. Those skilled in the art can make many other forms under the guidance of this application without departing from the spirit and scope of the claims, and all of these forms are within the protection scope of this application.

Claims

1. A frequency modulation method, characterized in that, include: The system obtains the graphics processor's running performance parameters and the graphics rendering parameters of the running process at each time point, where the multiple times point includes the current time point and multiple historical times point before the current time point; Based on the graphics processor's operating performance parameters corresponding to the multiple time points and the graphics rendering parameters of the running processes at each time point, the target load scenario is determined. Execute the frequency adjustment strategy corresponding to the target load scenario.

2. The method according to claim 1, characterized in that, The operating performance parameters include at least one of the following: Overall activity level parameters; The occupancy rate parameter of the arithmetic logic unit; The wait time parameter for the texture processing unit; Memory bandwidth utilization parameter; Load rate parameters of the ray tracing processing unit; The graphics rendering parameters include at least one of the following: Draw the number of command call parameters; The number of rendering channels parameter; The number of ray tracing application interface calls parameter.

3. The method according to claim 2, characterized in that, The method further includes: Based on the graphics processor's operating performance parameters corresponding to the multiple time points and the graphics rendering parameters of the running processes at each time point, the overall activity parameters of the graphics processor at the next time point of the current time point are predicted. The change in activity is calculated based on the overall activity parameters of the graphics processor at the next time step and the overall activity parameters of the graphics processor at the current time step. The execution of the frequency modulation strategy corresponding to the target load scenario includes: If the change in activity level is greater than or equal to the activity level change threshold, the frequency adjustment strategy corresponding to the target load scenario is executed.

4. The method according to claim 2, characterized in that, The determination of the target load scenario based on the graphics processor's operating performance parameters corresponding to the multiple time points and the graphics rendering parameters of the running process at each time point includes: The target load scenario is determined based on at least one of the following conditions: The first condition includes: the number of ray tracing application interface calls is not 0; The second condition includes: the overall activity parameter is a periodic time-domain non-uniform array; The third condition includes: the number of drawing call instructions is greater than or equal to the upper limit threshold of the number of drawing call instructions, or the number of rendering channels is greater than or equal to the upper limit threshold of the number of rendering channels, or the number of drawing call instructions is less than or equal to the lower limit threshold of the number of drawing call instructions, or the number of rendering channels is less than or equal to the lower limit threshold of the number of rendering channels. The fourth condition includes: the overall activity parameter is greater than or equal to the overall activity threshold; The fifth condition includes that the occupancy rate parameter of the arithmetic logic unit is greater than or equal to the upper limit threshold of the occupancy rate of the arithmetic logic unit, and the waiting time parameter of the texture processing unit is less than the lower limit threshold of the waiting time, and the memory bandwidth utilization parameter is less than the lower limit threshold of the memory bandwidth utilization. The sixth condition includes: the occupancy rate parameter of the arithmetic logic unit is less than the lower limit threshold of the occupancy rate of the arithmetic logic unit, the waiting time parameter of the texture processing unit is greater than or equal to the upper limit threshold of the waiting time, and the memory bandwidth utilization parameter is greater than or equal to the upper limit threshold of the memory bandwidth utilization.

5. The method according to claim 4, characterized in that, The determination of the target load scenario is based on at least one of the following conditions: If the first condition is met, the target load scene is determined to be a ray tracing scene; If the first condition is not met, but the second condition is met, then the target load scenario is determined to be a frame interpolation scenario. If the first and second conditions are not met, but the third condition is met, then the target load scenario is determined to be an abnormal load scenario. If the first condition, the second condition, the third condition, and the fourth condition are not met, the target load scenario is determined to be a front-end blocking scenario. If the first, second, and third conditions are not met, but the fourth and fifth conditions are met, then the target load scenario is determined to be a computationally constrained scenario. If the first, second, third, and fifth conditions are not met, but the fourth and sixth conditions are met, then the target load scenario is determined to be a memory-restricted scenario.

6. The method according to claim 4, characterized in that, The upper limit threshold for the number of drawing call commands is determined based on the average value of the number of drawing call commands corresponding to the current time and the multiple historical times, and a first multiple; the lower limit threshold for the number of drawing call commands is determined based on the average value of the number of drawing call commands corresponding to the current time and the multiple historical times, and a second multiple; the first multiple is greater than the second multiple. The upper limit threshold for the number of rendering channels is determined based on the average value of the number of rendering channels corresponding to the current time and the multiple historical times, and the first multiple. The lower limit threshold for the number of rendering channels is determined based on the average value of the number of rendering channels corresponding to the current time and the multiple historical times, and the second multiple.

7. The method according to claim 1, characterized in that, When the target load scenario is a ray tracing scenario, the frequency modulation strategy corresponding to the target load scenario is to adjust the frequency of the double data rate synchronous dynamic random access memory. When the target load scenario is a frame interpolation scenario, the frequency modulation strategy corresponding to the target load scenario is to adjust the frequency of the graphics processor; When the target load scenario is an abnormal load scenario, the frequency adjustment strategy corresponding to the target load scenario is to adjust the frequency of the central processing unit; When the target load scenario is a computationally limited scenario, the frequency adjustment strategy corresponding to the target load scenario is to adjust the frequency of the graphics processor; When the target load scenario is a memory-restricted scenario, the frequency adjustment strategy corresponding to the target load scenario is to keep the frequency of the graphics processor unchanged and adjust the frequency of the double data rate synchronous dynamic random access memory. When the target load scenario is a front-end blocking scenario, the frequency adjustment strategy corresponding to the target load scenario is to keep the frequency of the graphics processor unchanged and adjust the frequency of the central processing unit.

8. A frequency modulation device, characterized in that, include: The acquisition module is used to acquire the graphics processor's running performance parameters and the graphics rendering parameters of the running process at each time point, wherein the multiple times point includes the current time point and multiple historical times point before the current time point; The determination module is used to determine the target load scenario based on the operating performance parameters of the graphics processor corresponding to the multiple time points and the graphics rendering parameters of the running process at each time point; The execution module is used to execute the frequency modulation strategy corresponding to the target load scenario.

9. An electronic device, characterized in that, It includes a processor and a memory, the memory storing a program or instructions that run on the processor, the program or instructions being executed by the processor to implement the steps of the frequency modulation method as described in any one of claims 1-7.

10. A readable storage medium, characterized in that, The readable storage medium stores a program or instructions that, when executed by a processor, implement the steps of the frequency modulation method as described in any one of claims 1-7.