# US 11,030,012 B2 · Methods and apparatus for allocating a workload to an accelerator using machine learning

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 11,030,012 B2
- Document ID: US11030012B2
- Status: Granted
- Kind: B2
- Application number: 16/146,845
- Filed: 2018-09-28
- Published: 2019-02-14
- Granted: 2021-06-08
- Earliest claimed: 2018-09-28
- Assignees: Intel Corporation
- Applicants: Intel Corporation
- Inventors: Divya Vijayaraghavan; Denica Larsen; Kooi Chi Ooi; Lady Nataly Pinilla Pico; Min Suet Lim
- Web page: https://patentgrep.com/patent/US11030012B2

## CPC

- G06F 9/5027: {the resource being a machine, e.g. CPUs, Servers, Terminals}
- G06F 9/5044: {considering hardware capabilities}
- G06F 11/3024: {where the computing system component is a central processing unit [CPU]}
- G06F 18/214: Generating training patterns; Bootstrap methods, e.g. bagging or boosting
- G06N 3/0464: Convolutional networks [CNN, ConvNet]
- G06N 3/09: Supervised learning
- G06N 20/00: Machine learning
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G06N: COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS

## Abstract

Methods, apparatus, systems, and articles of manufacture for allocating a workload to an accelerator using machine learning are disclosed. An example apparatus includes a workload attribute determiner to identify a first attribute of a first workload and a second attribute of a second workload. An accelerator selection processor causes at least a portion of the first workload to be executed by at least two accelerators, accesses respective performance metrics corresponding to execution of the first workload by the at least two accelerators, and selects a first accelerator of the at least two accelerators based on the performance metrics. A neural network trainer trains a machine learning model based on an association between the first accelerator and the first attribute of the first workload. A neural network processor processes, using the machine learning model, the second attribute to select one of the at least two accelerators to execute the second workload.

## Claims

### Claim 1

An apparatus for executing a workload, the apparatus comprising:
a workload attribute determiner to identify a first attribute of a first workload, the first attribute representing whether the first workload would cause an accelerator to use at least a threshold amount of memory, the workload attribute determiner to identify a second attribute of a second workload;
an accelerator selection processor to:
in response to the first attribute representing that the first workload would not cause the accelerator to use at least the threshold amount of memory, cause at least a portion of the first workload to be executed by a first accelerator and a second accelerator;
in response to the first attribute representing that the first workload would cause the accelerator to use at least the threshold amount of memory, cause at least the portion of the first workload to be executed by the first accelerator and cause at least the portion of the first workload to not be executed by the second accelerator; and
access respective performance metrics corresponding to execution of the first workload by the first accelerator and the second accelerator;
a neural network trainer to train a machine learning model based on an association between the first attribute and the performance metrics; and
a neural network processor to process, using the machine learning model, the second attribute to select one of the at least two accelerators to execute the second workload.

### Claim 2 (depends on 1)

The apparatus of claim 1, further including an accelerator interface to provide the second workload to the selected one of the at least two accelerators for execution.

### Claim 3 (depends on 2)

The apparatus of claim 2, further including a workload interface to provide a result of the execution of the second workload to a workload provider.

### Claim 4 (depends on 2)

The apparatus of claim 2, wherein the accelerator selection processor is to access a performance metric associated with execution of the second workload at the selected one of the at least two accelerators, and subsequent training of the machine learning model is further based on the performance metric and the second attribute of the second workload.

### Claim 5 (depends on 1)

The apparatus of claim 1, wherein the respective performance metrics represent execution times of the first workload at the corresponding one of the at least two accelerators.

### Claim 6 (depends on 1)

The apparatus of claim 1, wherein the first attribute represents whether the first workload is parallelizable.

### Claim 7 (depends on 1)

The apparatus of claim 1, wherein a first accelerator of the at least two accelerators is a central processing unit based accelerator and a second accelerator of the at least two accelerators is a field programmable gate array based accelerator.

### Claim 8

At least one non-transitory machine-readable medium comprising instructions that, when executed, cause at least one processor to at least:
identify a first attribute of a first workload, the first attribute representing whether the first workload would cause an accelerator to use at least a threshold amount of memory;
in response to the first attribute representing that the first workload would not cause the accelerator to use at least the threshold amount of memory, cause at least a portion of the first workload to be executed by a first accelerator and a second accelerator;
in response to the first attribute representing that the first workload would cause the accelerator to use at least the threshold amount of memory, cause at least the portion of the first workload to be executed by the first accelerator and cause at least the portion of the first workload to not be executed by the second accelerator;
access respective performance metrics corresponding to execution of the first workload by the first accelerator and the second accelerator;
train a machine learning model based on an association between the first attribute and the performance metrics;
identify a second attribute of a second workload; and
process, using the machine learning model, the second attribute to select one of the at least two accelerators to execute the second workload.

### Claim 9 (depends on 8)

The at least one non-transitory machine-readable medium of claim 8, wherein the instructions, when executed, further cause the at least one processor to provide the second workload to the selected one of the at least two accelerators for execution.

### Claim 10 (depends on 9)

The at least one non-transitory machine-readable medium of claim 9, wherein the instructions, when executed, further cause the at least one processor to provide a result of the execution of the second workload to a workload provider.

### Claim 11 (depends on 9)

The at least one non-transitory machine-readable medium of claim 9, wherein the instructions, when executed, further cause the at least one processor to:
access a performance metric associated with execution of the second workload at the selected one of the at least two accelerators; and
re-train the machine learning model based on the performance metric and the second attribute of the second workload.

### Claim 12 (depends on 8)

The at least one non-transitory machine-readable medium of claim 8, wherein the respective performance metrics represent execution times of the first workload at the corresponding one of the at least two accelerators.

### Claim 13 (depends on 8)

The at least one non-transitory machine-readable medium of claim 8, wherein the first attribute represents whether the first workload is parallelizable.

### Claim 14

An apparatus for allocation of workloads to an accelerator, the apparatus comprising:
means for identifying a first attribute of a first workload, the first attribute representing whether the first workload would cause an accelerator to use at least a threshold amount of memory;
means for causing, in response to the first attribute representing that the first workload would not cause the accelerator to use at least the threshold amount of memory, at least a portion of the first workload to be executed by a first accelerator and a second accelerator;
means for causing, in response to the first attribute representing that the first workload would cause the accelerator to use at least the threshold amount of memory, at least the portion of the first workload to be executed by the first accelerator and at least the portion of the first workload to not be executed by the second accelerator;
means for accessing respective performance metrics corresponding to execution of the first workload by the first accelerator and the second accelerator;
means for training a machine learning model based on an association between the first attribute and the performance metrics;
means for identifying a second attribute of a second workload; and
means for processing the second attribute of the second workload to select one of the at least two accelerators to execute the second workload.

### Claim 15 (depends on 14)

The apparatus of claim 14, further including means for providing the second workload to the selected one of the at least two accelerators for execution.

### Claim 16 (depends on 15)

The apparatus of claim 15, further including means for interfacing to provide a result of the execution of the second workload to a workload provider.

### Claim 17 (depends on 15)

The apparatus of claim 15, wherein the means for causing is to access a performance metric associated with execution of the second workload at the selected one of the at least two accelerators, subsequent training of the machine learning model to be based on the performance metric and the second attribute of the second workload.
