Adaptive polling for inference results
Adaptive polling optimizes CPU power usage and performance by basing sleep duration on previous inference times, enhancing token rates and energy efficiency in accessing inference results.
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- QUALCOMM INC
- Filing Date
- 2024-10-15
- Publication Date
- 2026-04-23
AI Technical Summary
Conventional polling techniques for accessing inference results in shared memory waste time and CPU energy/power due to premature polling and inefficient power state management, leading to reduced performance in inference result rates.
Adaptive polling where the CPU enters a low power state for a duration based on a previous inference time, followed by a short wake-up period to poll for new results, optimizing power consumption and performance.
Achieves higher inference result rates with reduced CPU power/energy consumption by avoiding unnecessary polling and deep sleep cycles, resulting in improved token rates and energy efficiency.
Smart Images

Figure CN2024124890_23042026_PF_FP_ABST
Abstract
Description
ADAPTIVE POLLING FOR INFERENCE RESULTS
[0001] INTRODUCTION
[0002] Aspects of the present disclosure relate to an adaptive algorithm for polling for inference results stored in a shared memory.
[0003] A wide variety of machine learning (ML) model architectures have been trained to perform an assortment of diverse tasks, including computer vision tasks, language tasks, classification and regression tasks, and the like. Recently, research has yielded substantial success in using large models (e.g., deep neural networks, large language models (LLMs) , large vison models (LVMs) , large multimodal models (LMMs) , and the like) to process and generate output data. Often, machine learning models induce substantial computational expense in inferencing (e.g., generating model output) .
[0004] In some cases, specialized functional units (or processing units) , such as a neural signal processor (NSP) , may be used to perform inference operations of an ML model. For example, such a functional unit may generate an inference result (e.g., a token) based on input (such as an input prompt) . The functional unit may store the inference results in a memory, where the results may be accessed via another processor, such as a central processing unit (CPU) , that may access the inference results when executing an application.
[0005] BRIEF SUMMARY
[0006] One aspect provides a method for accessing inference results by a processor. The method includes entering a low power state; exiting the low power state after a time duration that is dependent on a time associated with a previous inference; and polling a memory for new inference results after exiting the low power state.
[0007] Other aspects provide processing systems configured to perform the aforementioned methods as well as those described herein; non-transitory, computer-readable media comprising instructions that, when executed by one or more processors of a processing system, cause the processing system to perform the aforementioned methods as well as those described herein; a computer program product embodied on a computer-readable storage medium comprising code for performing the aforementioned methods as well as those further described herein; and a processing system comprising means for performing the aforementioned methods, as well as those further described herein.
[0008] The following description and the related drawings set forth in detail certain illustrative features of one or more embodiments.BRIEF DESCRIPTION OF THE DRAWINGS
[0009] The appended figures depict certain aspects of the one or more embodiments and are therefore not to be considered limiting of the scope of this disclosure.
[0010] FIG. 1 illustrates an example system in which inference results are stored in a shared memory and may be accessed using adaptive polling, according to aspects of the present disclosure.
[0011] FIG. 2 is a flow chart illustrating example operations for adaptive polling for inference results, according to aspects of the present disclosure.
[0012] FIG. 3 illustrates an example timeline for adaptive polling for inference results, according to aspects of the present disclosure.
[0013] FIG. 4 illustrates example impact of adaptive polling for inference results, according to aspects of the present disclosure.
[0014] FIG. 5 illustrates an example implementation of a processing system, according to aspects of the present disclosure.
[0015] To facilitate understanding, identical reference numerals have been used, where possible, to designate identical elements that are common to the drawings. It is contemplated that elements and features of one embodiment may be beneficially incorporated in other embodiments without further recitation.DETAILED DESCRIPTION
[0016] Aspects of the present disclosure relate to an adaptive algorithm for polling for inference results stored in a shared memory.
[0017] As noted above, ML operations may be offloaded to a specialized functional unit such as an NSP that stores inference results in a memory. Another processor, such as a CPU, may poll the memory for inference results when executing an application. The CPU may poll for inference results via a remote procedure call (RPC) .
[0018] Unfortunately, conventional polling techniques typically waste time and CPU energy / power. For example, a CPU may begin to poll for inference results long before inference results are available. In some cases, to conserve power, a CPU may stop polling after a timeout and enter a low power state. Unfortunately, the latency associated with exiting the low power state reduces performance in terms of a rate of inference results (e.g., tokens / second) .
[0019] Aspects of the present disclosure, however, provide techniques for adaptive polling where a CPU may enter a low power state prior to polling for inference results. The duration the CPU stays in the low power state may depend on a previous inference time (e.g., an execution time to generate previous inference results) . For example, the CPU may sleep for a percentage of the previous inference time, and then wake up and poll for a much shorter duration. Utilization of the techniques disclosed herein may result in RPC time savings in each iteration of inference / polling, and a higher inference (e.g., token) rate with reduced CPU power / energy consumption
[0020] Example Computing Device Architecture
[0021] FIG. 1 illustrates an example processing units in which different data relevant for machine learning operations are stored in different types of memory associated with a processor.
[0022] Generally, processing units 100 includes DRAM 110, a functional unit 130, and an arbiter 140, and a CPU (e.g., an external application processor) 160 connected via a bus 150.
[0023] As illustrated, functional unit 130 may generate inference results 132 and store the inference results in memory, such as DRAM 110. The CPU (e.g., external application processor) 160 may access the inference results 132 from DRAM 110.
[0024] DRAM 110 generally provides a location in which input data and data generated using a machine learning model may be stored for processing by functional unit 130, while a non-volatile random access memory (NVRAM) may provide a location in which weight data for a machine learning model may be stored. Generally, DRAM 110 may provide higher performance than other types of memory, such as NVRAM. For example, latencies in writing data to and / or reading data from DRAM 110 may be lower than latencies in writing data to and reading data from NVRAM. Because weight data for a machine learning model may have a high reuse rate during operations using a machine learning model, weight data may be written once and read many times from NVRAM. In contrast, because input data and data generated using a machine learning model is written to and read from memory by functional unit 130 many times during operations using the machine learning model, input data and data generated using the machine learning model may be written and read many times from DRAM 110.
[0025] During machine learning operations, data used during operations using the machine learning model may be received at arbiter 140 from an application processor, which may be a processor that invokes machine learning operations on processing unit 100. In some aspects, the application processor may be an external application processor remote from a die or a package including a die.
[0026] Generally, arbiter 140 may control where data received from the application processor is written. For example, when machine learning operations are being initiated, arbiter 140 may write weight data defining the machine learning model to NVRAM. During machine learning operations, arbiter 140 may write input data received from the application processor (e.g., for processing using the machine learning model and functional unit 130) to DRAM 110. Further, arbiter 140 may output the results of a machine learning model from DRAM 110 to the external application processor 160 (e.g., upon receiving a request to read data at a specific address in DRAM 110) .
[0027] Various processing engines in functional unit 130, such as matrix processing engines, neural processing engines, or the like can process the received data from DRAM 110 and NVRAM and generate a result. Functional unit 130 may then write the result to DRAM 110 (e.g., for eventual output to the application processor) and / or retain the result in a memory register for use in subsequent operations using the machine learning model (e.g., when the result is an intermediate result used as an input by a later portion of the machine learning model) . In some aspects, such as when NVRAM and functional unit 130 are at least partially co-located, the functional unit can process the data using various process-in-memory techniques.
[0028] Example Adaptive Polling for Inference Results
[0029] As noted above, conventional polling techniques typically waste time and CPU energy / power. For example, a CPU may begin to poll for inference results long before inference results are available, resulting in additional power consumption. Use of a timeout to conserve power by entering a low power state may reduce performance in terms of a rate of inference results (e.g., tokens / second) .
[0030] Aspects of the present disclosure, however, provide techniques for adaptive polling where a CPU may enter a low power state prior to polling for inference results.
[0031] The adaptive polling proposed herein may be used in any type of system in which inference results are generated by a processing unit (such as an NSP) and stored in a shared memory. For example, the inference results may be a token (e.g., generated by a language model in response to a prompt) , may relate to image or video creation (e.g., generated by a generative AI model) , or may relate to a predicted classification (e.g., of an input generated by a classification ML model) .
[0032] The adaptive polling proposed herein may be understood with reference to the example operations 200 shown in FIG. 2. The operations 200 may be performed, for example, by a CPU (or other processor that polls for inference results) .
[0033] As illustrated at 210, the CPU may determine a time duration for a low power state (e.g., sleep time) based on a previously inference time (e.g., an execution time to generate previous inference results) . As will be described in greater detail below, the time duration may be based on a percentage of the previous inference time. An exact value of the percentage may vary. In some cases, the value of the percentage may be set in an effort to optimize power savings (e.g., as a higher percentage) and / or to optimize performance.
[0034] At 220, the CPU enters the low power state. At 230, the CPU exits the low power state (after the determined time duration) and polls memory for new inference results. If new inference results are detected, at 240, the CPU may save the inference time, at 250, for use in determining subsequent sleep times at 210.
[0035] In some cases, the CPU may utilize a polling timeout. In such cases, the CPU may stop polling after the polling timeout and (re-) enter the sleep mode, at 260. In some cases, in the event of a polling timeout, the CPU may use the previous inference time or a default inference time for determining the time duration at 210.
[0036] Benefits of the adaptive polling proposed herein may be understood with reference to FIG. 3, which shows a comparison of a timeline 300 for a normal (e.g., conventional) polling procedure with a timeline 350 for an adaptive polling procedure.
[0037] As illustrate in timeline 300, a conventional polling procedure may involve a device polling for 10ms. If an inference is not detected, a polling timeout may be triggered causing a switch to unblocked reading and a transition to a sleep state. The device may be interrupted in the sleep state, waking up when the NSP returns inference results.
[0038] As illustrated in timeline 350, an adaptive polling procedure may involve a device (e.g., external application processor 160 described above with reference to FIG. 1) sleeping (e.g., in a low power state) for a configured or determined duration (e.g., 75%of an execution time of a previous inference) .
[0039] The configured or determined duration may generally be less than a total execution time associated with the previous inference, since the device wakeup takes time, and it may be important to avoid a scenario in which an NSP has returned inference results before the CPU is awake.
[0040] The device may wake up from the sleep state after the duration expires, and may poll for inference results for a reduced duration (e.g., 0.3 -0.5 ms) , as illustrated at 352. The polling for inference results may be polling from a cache, a shared memory associated with one or more processors, or directly polling a processor (e.g., a CPU) . As illustrated at 354, waking up to poll for a very short period of time may result in a time savings, when compared to the conventional polling procedure of timeline 300.
[0041] Techniques disclosed herein for adaptive polling may also provide additional advantages, in addition to RPC time savings. Conventional polling techniques waste CPU power because of a greater time spent polling (e.g., with or without a polling timeout) . In contrast, aspects of the present disclosure provide techniques for adaptive polling in which an execution time of a previous inference is saved (e.g., stored to memory) . A processor (e.g., the external application processor / CPU) may sleep for a percentage of the execution time, and then wake up and poll for a much shorter duration.
[0042] In some cases, a higher token rate with reduced CPU power / energy consumption may be achieved. Specifically, CPU power may be saved by skipping polling for 10ms, and a higher token rate may be achieved because of a shorter cycle duration (RPC time savings) over many iterations, since the CPU is already awake after a predetermined sleep duration, rather than waking up based on an interrupt. In other words, the adaptive polling proposed herein may help avoid polling timeouts and subsequent deep sleep cycles (and the associated latency) .
[0043] Table 400 of FIG. 4 illustrates example token rates and energy (in terms of Joules per token) for a conventional polling algorithm and the adaptive polling algorithm proposed herein. In the illustrated example, the conventional polling results in a token rate of 12.03 and an energy expenditure of 320.1928512 Joules per token, as illustrated at 402. In contrast, as illustrated at 404, adaptive polling may result in an improved / greater token rate of 12.36 and a reduced energy expenditure of 317.815534 Joules per token. As an indirect effect, a greater NSP / DDR power may result from the higher token rate achieved by the adaptive polling techniques disclosed herein.
[0044] In some cases, previous inference time may be stored before a power down cycle and used for a subsequent power up. In this manner, rather than a “cold start” performing polling without a previous inference time, the stored value may be used.
[0045] In some cases, a device may have different types of profiles. For example, a device may have different profiles that bias performance over power savings or vice-versa. In such cases, the percentage value used to calculate the sleep time based on a previous inference time (e.g., a most recent or stored) may depend on the profile. Thus, in some cases, a time duration for exiting the low power state in a subsequent polling cycle may be based on a retrieved time and an operating profile of the processor.
[0046] Example Processing System for Adaptive Polling of Inference Results
[0047] FIG. 5 depicts an example processing system 500 in which the adaptive polling algorithm proposed herein may be utilized.
[0048] Processing system 500 includes a central processing unit (CPU) 501, which in some examples may be a multi-core CPU. Instructions executed at the CPU 501 may be loaded, for example, from a program memory associated with the CPU 501 or may be loaded from a partition in memory 524. As illustrated, CPU 501 includes a first memory component 502 and a second memory component 503. The first memory component may be memory in which weight data for a machine learning model may be stored, and the second memory component 503 may be memory in which input data processed by the machine learning model may be stored.
[0049] Processing system 500 also includes additional processing components tailored to specific functions, such as a graphics processing unit (GPU) 504, a digital signal processor (DSP) 506, a neural processing unit (NPU) 508, a multimedia processing unit 510, a multimedia processing unit 510, and a wireless connectivity component 512.
[0050] An NPU, such as NPU 508, is generally a specialized circuit configured for implementing control and arithmetic logic for executing machine learning algorithms, such as algorithms for processing artificial neural networks (ANNs) , deep neural networks (DNNs) , random forests (RFs) , and the like. The NPU may sometimes alternatively be referred to as a neural signal processor (NSP) , tensor processing units (TPUs) , neural network processor (NNP) , intelligence processing unit (IPU) , vision processing unit (VPU) , or graph processing unit.
[0051] NPUs, such as NPU 508, are configured to accelerate the performance of common machine learning tasks, such as image classification, machine translation, object detection, and various other predictive models. In some examples, a plurality of NPUs may be instantiated on a single chip, such as a system on a chip (SoC) , while in other examples they may be part of a dedicated neural-network accelerator.
[0052] NPUs may be optimized for training or inference, or in some cases configured to balance performance between both. For NPUs that are capable of performing both training and inference, the two tasks may still generally be performed independently.
[0053] NPUs designed to accelerate training are generally configured to accelerate the optimization of new models, which is a highly compute-intensive operation that involves inputting an existing dataset (often labeled or tagged) , iterating over the dataset, and then adjusting model parameters, such as weights and biases, in order to improve model performance. Generally, optimizing based on a wrong prediction involves propagating back through the layers of the model and determining gradients to reduce the prediction error.
[0054] NPUs designed to accelerate inference are generally configured to operate on complete models. Such NPUs may thus be configured to input a new piece of data and rapidly process it through an already trained model to generate a model output (e.g., an inference) .
[0055] In some implementations, NPU 508 is a part of one or more of CPU 501, GPU 504, and / or DSP 506.
[0056] While not illustrated, it should be recognized that GPU 504, DSP 506, and / or NPU 508 may also include a first memory component in which weight data for a machine learning model may be stored and a second memory component in which input data for a machine learning model may be stored, similar to first memory component 502 and second memory component 503 illustrated with respect to CPU 501 and discussed above.
[0057] In some examples, wireless connectivity component 512 may include subcomponents, for example, for third generation (3G) connectivity, fourth generation (4G) connectivity (e.g., 4G LTE) , fifth generation connectivity (e.g., 5G or NR) , Wi-Fi connectivity, Bluetooth connectivity, and other wireless data transmission standards. Wireless connectivity component 512 is further connected to one or more antennas 514.
[0058] Processing system 500 may also include one or more sensor processing units 516 associated with any manner of sensor, one or more image signal processors (ISPs) 518 associated with any manner of image sensor, and / or a navigation processor 520, which may include satellite-based positioning system components (e.g., GPS or GLONASS) as well as inertial positioning system components.
[0059] Processing system 500 may also include one or more input and / or output devices 522, such as screens, touch-sensitive surfaces (including touch-sensitive displays) , physical buttons, speakers, microphones, and the like.
[0060] In some examples, one or more of the processors of processing system 500 may be based on an ARM or RISC-V instruction set.
[0061] Processing system 500 also includes memory 524, which is representative of one or more static and / or dynamic memories, such as a dynamic random access memory, a flash-based static memory, and the like. In this example, memory 524 includes computer-executable components, which may be executed by one or more of the aforementioned processors of processing system 500.
[0062] In particular, in this example, memory 524 includes a low power state time determining component 524A, inference polling component 524B, inference time storing component 524C, and machine learning model component 524D. The depicted components, and others not depicted, may be configured to perform various aspects of the methods described herein. The various components may correspond to means for performing various operations described herein.
[0063] Generally, processing system 500 and / or components thereof may be configured to perform the methods described herein.
[0064] Notably, in other embodiments, aspects of processing system 500 may be omitted, such as where processing system 500 is a server computer or the like. For example, multimedia processing unit 510, wireless connectivity component 512, sensor processing units 516, ISPs 518, and / or navigation processor 520 may be omitted in other embodiments. Further, aspects of processing system 500 may be distributed, such as training a model and using the model to generate inferences, such as user verification predictions.
[0065] Example Clauses
[0066] Implementation examples are described in the following numbered clauses:
[0067] Clause 1: A method for accessing inference results by a processor, comprising: entering a low power state; exiting the low power state after a time duration that is dependent on a time associated with a previous inference; and polling a memory for new inference results after exiting the low power state.
[0068] Clause 2: The method of Clause 1, wherein the memory comprises a shared memory accessible by the processor and another processor performing the inference.
[0069] Clause 3: The method of any one of Clauses 1-2, wherein the time duration is calculated as a percentage of the time associated with the previous inference time.
[0070] Clause 4: The method of Clause 3, wherein the percentage is configurable.
[0071] Clause 5: The method of Clause 3, wherein the percentage depends on at least one of a current performance mode or power mode.
[0072] Clause 6: The method of any one of Clauses 1-5, further comprising: storing a time associated with the new inference results; and using the stored time to determine a time duration for exiting the low power state in a subsequent polling cycle.
[0073] Clause 7: The method of Clause 6, wherein: the time associated with the new inference results are stored prior to powering down the processor, and the time associated with the new inference results are retrieved after powering the processor back up.
[0074] Clause 8: The method of Clause 7, wherein: the time duration for exiting the low power state in the subsequent polling cycle is based on the retrieved time and an operating profile of the processor.
[0075] Clause 9: The method of any one of Clauses 1-8, wherein the inference results comprise a token.
[0076] Clause 10: The method of Clause 9, wherein the token is generated by a language model in response to an input prompt.
[0077] Clause 11: The method of any one of Clauses 1-10, wherein the inference results relate to image or video creation.
[0078] Clause 12: The method of Clause 11, wherein the inference results relate to an image or video generated by a generative artificial intelligence model in response to an input prompt.
[0079] Clause 13: The method of any one of Clauses 1-12, wherein the inference results comprise a predicted classification of an input generated by a classification machine learning model.
[0080] Clause 14: An apparatus, comprising: at least one memory comprising executable instructions; and at least one processor configured to execute the executable instructions and cause the apparatus to perform a method in accordance with any combination of Clauses 1-13.
[0081] Clause 15: An apparatus, comprising means for performing a method in accordance with any combination of Clauses 1-13.
[0082] Clause 16: A non-transitory computer-readable medium comprising executable instructions that, when executed by at least one processor of an apparatus, cause the apparatus to perform a method in accordance with any combination of Clauses 1-13.
[0083] Clause 17: A computer program product embodied on a computer-readable storage medium comprising code for performing a method in accordance with any combination of Clauses 1-13.
[0084] Additional Considerations
[0085] The preceding description is provided to enable any person skilled in the art to practice the various embodiments described herein. The examples discussed herein are not limiting of the scope, applicability, or embodiments set forth in the claims. Various modifications to these embodiments will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other embodiments. For example, changes may be made in the function and arrangement of elements discussed without departing from the scope of the disclosure. Various examples may omit, substitute, or add various procedures or components as appropriate. For instance, the methods described may be performed in an order different from that described, and various steps may be added, omitted, or combined. Also, features described with respect to some examples may be combined in some other examples. For example, an apparatus may be implemented or a method may be practiced using any number of the aspects set forth herein. In addition, the scope of the disclosure is intended to cover such an apparatus or method that is practiced using other structure, functionality, or structure and functionality in addition to, or other than, the various aspects of the disclosure set forth herein. It should be understood that any aspect of the disclosure disclosed herein may be embodied by one or more elements of a claim.
[0086] As used herein, the word “exemplary” means “serving as an example, instance, or illustration. ” Any aspect described herein as “exemplary” is not necessarily to be construed as preferred or advantageous over other aspects.
[0087] Means for entering, means for exiting, means for polling, means for storing, and means for using may comprise one or more processors, such as one or more of the processors described above with reference to FIG. 5.
[0088] As used herein, a phrase referring to “at least one of” a list of items refers to any combination of those items, including single members. As an example, “at least one of: a, b, or c” is intended to cover a, b, c, a-b, a-c, b-c, and a-b-c, as well as any combination with multiples of the same element (e.g., a-a, a-a-a, a-a-b, a-a-c, a-b-b, a-c-c, b-b, b-b-b, b-b-c, c-c, and c-c-c or any other ordering of a, b, and c) .
[0089] As used herein, the term “determining” encompasses a wide variety of actions. For example, “determining” may include calculating, computing, processing, deriving, investigating, looking up (e.g., looking up in a table, a database or another data structure) , ascertaining, and the like. Also, “determining” may include receiving (e.g., receiving information) , accessing (e.g., accessing data in a memory) , and the like. Also, “determining” may include resolving, selecting, choosing, establishing, and the like.
[0090] The methods disclosed herein comprise one or more steps or actions for achieving the methods. The method steps and / or actions may be interchanged with one another without departing from the scope of the claims. In other words, unless a specific order of steps or actions is specified, the order and / or use of specific steps and / or actions may be modified without departing from the scope of the claims. Further, the various operations of methods described above may be performed by any suitable means capable of performing the corresponding functions. The means may include various hardware and / or software component (s) and / or module (s) , including, but not limited to a circuit, an application specific integrated circuit (ASIC) , or processor. Generally, where there are operations illustrated in figures, those operations may have corresponding counterpart means-plus-function components with similar numbering.
[0091] The following claims are not intended to be limited to the embodiments shown herein, but are to be accorded the full scope consistent with the language of the claims. Within a claim, reference to an element in the singular is not intended to mean “one and only one” unless specifically so stated, but rather “one or more. ” Unless specifically stated otherwise, the term “some” refers to one or more. No claim element is to be construed under the provisions of 35 U.S.C. §112 (f) unless the element is expressly recited using the phrase “means for” or, in the case of a method claim, the element is recited using the phrase “step for. ” All structural and functional equivalents to the elements of the various aspects described throughout this disclosure that are known or later come to be known to those of ordinary skill in the art are expressly incorporated herein by reference and are intended to be encompassed by the claims. Moreover, nothing disclosed herein is intended to be dedicated to the public regardless of whether such disclosure is explicitly recited in the claims.
Claims
1.A processing system, comprising:at least one memory comprising instructions; andone or more processors configured to execute the instructions and cause the processing system to:enter a low power state;exit the low power state after a time duration that is dependent on a time associated with a previous inference; andpoll a shared memory for new inference results after exiting the low power state.2.The processing system of claim 1, wherein the shared memory is accessible by the processing system and another processor performing the inference.3.The processing system of claim 1, wherein the time duration is calculated as a percentage of the time associated with the previous inference time.4.The processing system of claim 3, wherein the percentage is configurable.5.The processing system of claim 3, wherein the percentage depends on at least one of a current performance mode or power mode.6.The processing system of claim 1, wherein the one or more processors are further configured to cause the processing system to:store a time associated with the new inference results; anduse the stored time to determine a time duration for exiting the low power state in a subsequent polling cycle.7.The processing system of claim 6, wherein the time associated with the new inference results is stored prior to powering down the processing system.8.The processing system of claim 7, wherein the time duration for exiting the low power state in the subsequent polling cycle is based on the stored time and an operating profile of the processing system.9.The processing system of claim 1, wherein the inference results comprise a token.10.The processing system of claim 9, wherein the token is generated by a language model in response to an input prompt.11.The processing system of claim 1, wherein the inference results relate to image or video creation.12.The processing system of claim 11, wherein the inference results relate to an image or video generated by a generative artificial intelligence model in response to an input prompt.13.The processing system of claim 1, wherein the inference results comprise a predicted classification of an input generated by a classification machine learning model.14.A method for accessing inference results by a processor, comprising:entering a low power state;exiting the low power state after a time duration that is dependent on a time associated with a previous inference; andpolling a memory for new inference results after exiting the low power state.15.The method of claim 14, wherein the memory comprises a shared memory accessible by the processor and another processor performing the inference.16.The method of claim 14, wherein the time duration is calculated as a percentage of the time associated with the previous inference time.17.The method of claim 16, wherein the percentage is configurable.18.The method of claim 16, wherein the percentage depends on at least one of a current performance mode or power mode.19.The method of claim 14, further comprising:storing a time associated with the new inference results; andusing the stored time to determine a time duration for exiting the low power state in a subsequent polling cycle.20.A processing system, comprising:means for entering a low power state;means for exiting the low power state after a time duration that is dependent on a time associated with a previous inference; andmeans for polling a memory for new inference results after exiting the low power state.
Citation Information
Patent Citations
Storage device storing latency information processor and computing system
CN109284241A
Polling-driven device driver interface
US20120278819A1
Enhanced memory device architecture for machine learning
US20200310674A1
Adaptive Synchronization For Redo Writing to Persistent Memory Storage
US20210081242A1
Memory management for mathematical operations in computing systems with heterogeneous memory architectures
US20240095492A1