Dynamic resource allocation based on quality-of-service prediction
Apparatuses, methods, and systems for dynamic resource allocation based on quality-of-service prediction are disclosed. In embodiments, an apparatus includes quality-of-service prediction circuitry and a resource controller. The quality-of-service prediction circuitry is to make quality-of-service predictions using a model based at least in part on at least one performance counter measurements and at least one quality-of-service measurement. The resource controller is to allocate one or more shared resources based on the quality-of-service predictions and architectural performance counter measurements.
1 . An apparatus comprising:
at least one architectural performance counter;
quality-of-service prediction circuitry to make quality-of-service predictions using a model based at least in part on at least one architectural performance counter measurement collected during a first phase of execution of a workload and at least one quality-of-service measurement collected during the first phase of execution of the workload; and
a resource controller to allocate one or more shared resources based on the quality-of-service predictions, instead of quality-of-service measurements collected during a second phase of execution of the workload, and at least one architectural performance counter measurement collected during the second phase of execution of the workload.
2 . The apparatus of claim 1 , wherein the first phase is a model training phase.
3 . The apparatus of claim 1 , wherein the second phase is a model update phase in which the model is to be updated.
4 . The apparatus of claim 1 , wherein the resource controller is to allocate the one or more shared resources based on a first control loop and the model is to be updated based on a second control loop separate from the first control loop.
5 . The apparatus of claim 1 , wherein the one or more shared resources includes memory bandwidth.
6 . The apparatus of claim 1 , wherein the one or more shared resources includes core frequency.
7 . The apparatus of claim 1 , wherein the model is a reinforcement learning model.
8 . A method comprising:
collecting, by an architectural performance counter in a hardware processor during a first phase of execution of a workload, at least one architectural performance counter measurement and at least one quality-of-service measurement;
predicting, by quality-of-service prediction circuitry in the hardware processor, quality-of-service using a model based at least in part on the at least one architectural performance counter measurement and the at least one quality-of-service measurement; and
allocating, by a resource controller in the hardware processor, one or more shared resources based on the quality-of-service predictions, instead of quality-of-service measurements collected during a second phase of execution of the workload, and at least one architectural performance counter measurement collected during a second phase of execution of the workload.
9 . The method of claim 8 , wherein the first phase is a model training phase.
10 . The method of claim 8 , wherein the second phase is a model update phase, the method further comprising:
collecting performance counter measurements and quality-of-service measurements during the model update phase; and
updating the model during the model update phase using the performance counter measurements and quality-of-service measurements collected during the model update phase.
11 . The method of claim 8 , wherein allocating the one or more shared resources is based on a first control loop and updating the model is based on a second control loop separate from the first control loop.
12 . The method of claim 8 , wherein the one or more shared resources includes memory bandwidth.
13 . The method of claim 8 , wherein the one or more shared resources includes core frequency.
14 . The method of claim 8 , wherein the model is a reinforcement learning model.
15 . A system to execute a high-priority workload and a best-effort workload, the system comprising:
at least one architectural performance counter;
quality-of-service prediction circuitry to make quality-of-service predictions using a model based at least in part on at least one architectural performance counter measurement to be collected during a first phase of execution of the high-priority workload and at least one quality-of-service measurement to be collected during execution of the first phase of the high-priority workload; and
a resource controller to allocate one or more shared resources based on the quality-of-service predictions, instead of quality-of-service measurements collected during a second phase of execution of the workload, and at least one architectural performance counter measurement collected during the second phase of execution of the workload.
16 . The system of claim 15 , wherein the one or more shared resources includes memory bandwidth.
17 . The system of claim 15 , wherein the one or more shared resources includes core frequency.