# US 2020/0401891 A1 · Methods and apparatus for hardware-aware machine learning model training

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

- Number: US 2020/0401891 A1
- Document ID: US20200401891A1
- Status: Published application
- Kind: A1
- Application number: 17/013,258
- Filed: 2020-09-04
- Published: 2020-12-24
- Earliest claimed: 2020-09-04
- Assignees: Intel Corporation
- Applicants: Intel Corporation
- Inventors: Xiaofan Xu; Cormac Brick; Zsolt Biro
- Web page: https://patentgrep.com/patent/US20200401891A1

## CPC

- G06N 3/08: Learning methods
- G06N 3/105: {Shells for specifying net layout}
- G06F 1/10: Distribution of clock signals {, e.g. skew}
- G06F 9/30036: {Instructions to perform operations on packed data, e.g. vector, tile or matrix operations}
- G06F 9/3877: {using a secondary processor, e.g. coprocessor (peripheral processor G06F13/12)}
- G06N 3/04: Architecture, e.g. interconnection topology
- G06N 3/045: Combinations of networks
- G06N 3/0464: Convolutional networks [CNN, ConvNet]
- G06N 3/0495: Quantised networks; Sparse networks; Compressed networks
- G06N 3/082: modifying the architecture, e.g. adding, deleting or silencing nodes or connections
- G06N 3/09: Supervised learning
- G06N 3/092: Reinforcement learning
- G06N 3/006: based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]
- G06N 3/044: Recurrent networks, e.g. Hopfield networks
- G06N 3/048: Activation functions
- G06N: COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Methods, apparatus, systems, and articles of manufacture are disclosed for hardware-aware machine learning model training. An example apparatus includes a configuration determiner to determine a hardware configuration of a target hardware platform on which the machine learning model is to be executed, a layer generator to assign sparsity configurations to layers of the machine learning model based on the hardware configuration, and a deployment controller to deploy the machine learning model to the target hardware platform in response to outputs of the machine learning model satisfying respective thresholds, the outputs including a quantity of clock cycles to execute the machine learning model with the layers having the assigned sparsity configurations.

## Claims

### Claim 1

An apparatus to train a machine learning model, the apparatus comprising:
a configuration determiner to determine a hardware configuration of a target hardware platform on which the machine learning model is to be executed;
a layer generator to assign sparsity configurations to layers of the machine learning model based on the hardware configuration; and
a deployment controller to deploy the machine learning model to the target hardware platform in response to outputs of the machine learning model satisfying respective thresholds, the outputs including a quantity of clock cycles to execute the machine learning model with the layers having the assigned sparsity configurations.

### Claim 2 (depends on 1)

The apparatus of claim 1, wherein the layer generator is to select a first layer of the layers and assign a zero to one or more values of a matrix of the first layer, and further including a model training handler to determine a first quantity of clock cycles to execute a convolution operation with the matrix.

### Claim 3 (depends on 1)

The apparatus of claim 1, wherein the outputs include an accuracy of the machine learning model, the respective thresholds are predetermined, the respective thresholds include an accuracy threshold and a clock cycle threshold, and further including:
a model training handler to:
determine whether the accuracy satisfies the accuracy threshold; and
determine whether the quantity of the clock cycles satisfies the clock cycle threshold; and
the deployment controller to:
retrain the machine learning model in response to at least one of: (a) the accuracy not satisfying the accuracy threshold, or (b) the quantity of the clock cycles not satisfying the clock cycle threshold; and
identify the machine learning model for deployment in response to: (a) the accuracy satisfying the accuracy threshold, and (b) the quantity of the clock cycles satisfying the clock cycle threshold.

### Claim 4 (depends on 1)

The apparatus of claim 1, wherein the hardware configuration includes at least one of memory configuration information, caching configuration information, or processing configuration information associated with the target hardware platform.

### Claim 5 (depends on 1)

The apparatus of claim 1, wherein the hardware configuration specifies at least one of a cache size or a cache operating frequency associated with cache memory of the target hardware platform.

### Claim 6 (depends on 1)

The apparatus of claim 1, wherein the hardware configuration specifies at least one of a memory type, a read memory bandwidth, a read bus width, a write memory bandwidth, a write bus width, a memory de-rate factor, or a number of memory ports associated with memory of the target hardware platform.

### Claim 7 (depends on 1)

The apparatus of claim 1, wherein the hardware configuration specifies at least one of a number of data processing units, a clock frequency, a fabric frequency, an activation precision, or a weight precision associated with one or more processors of the target hardware platform.

### Claim 8 (depends on 1)

The apparatus of claim 1, wherein the target hardware platform is a digital signal processor, a graphics processing unit, or a vision processing unit.

### Claim 9

An apparatus to train a machine learning model, the apparatus comprising:
means for determining a hardware configuration of a target hardware platform on which the machine learning model is to be executed;
means for assigning sparsity configurations to layers of the machine learning model based on the hardware configuration; and
means for deploying the machine learning model to the target hardware platform in response to outputs of the machine learning model satisfying respective thresholds, the outputs including a quantity of clock cycles to execute the machine learning model with the layers having the assigned sparsity configurations.

### Claim 10 (depends on 9)

The apparatus of claim 9, wherein the means for determining is first means for determining, the means for assigning is to select a first layer of the layers and assign a zero to one or more values of a matrix of the first layer, and further including second means for determining a first quantity of clock cycles to execute a convolution operation with the matrix.

### Claim 11 (depends on 9)

The apparatus of claim 9, wherein the means for determining is first means for determining, the outputs include an accuracy of the machine learning model, the respective thresholds are predetermined, the respective thresholds include an accuracy threshold and a clock cycle threshold, and further including:
second means for determining to:
determine whether the accuracy satisfies the accuracy threshold; and
determine whether the quantity of the clock cycles satisfies the clock cycle threshold; and
the means for deploying to:
retrain the machine learning model in response to at least one of: (a) the accuracy not satisfying the accuracy threshold, or (b) the quantity of the clock cycles not satisfying the clock cycle threshold; and
identify the machine learning model for deployment in response to: (a) the accuracy satisfying the accuracy threshold, and (b) the quantity of the clock cycles satisfying the clock cycle threshold.

### Claim 12 (depends on 9)

The apparatus of claim 9, wherein the hardware configuration includes at least one of memory configuration information, caching configuration information, or processing configuration information associated with the target hardware platform.

### Claim 13

(canceled)

### Claim 14

(canceled)

### Claim 15 (depends on 9)

The apparatus of claim 9, wherein the hardware configuration specifies at least one of a number of data processing units, a clock frequency, a fabric frequency, an activation precision, or a weight precision associated with one or more processors of the target hardware platform.

### Claim 16 (depends on 9)

The apparatus of claim 9, wherein the target hardware platform is a digital signal processor, a graphics processing unit, or a vision processing unit.

### Claim 17

A non-transitory computer readable storage medium comprising instructions that, when executed, cause a machine to at least:
determine a hardware configuration of a target hardware platform on which a machine learning model is to be executed;
assign sparsity configurations to layers of the machine learning model based on the hardware configuration; and
deploy the machine learning model to the target hardware platform in response to outputs of the machine learning model satisfying respective thresholds, the outputs including a quantity of clock cycles to execute the machine learning model with the layers having the assigned sparsity configurations.

### Claim 18 (depends on 17)

The non-transitory computer readable storage medium of claim 17, wherein the instructions, when executed, cause the machine to select a first layer of the layers, assign a zero to one or more values of a matrix of the first layer, and determine a first quantity of clock cycles to execute a convolution operation with the matrix.

### Claim 19 (depends on 17)

The non-transitory computer readable storage medium of claim 17, wherein the outputs include an accuracy of the machine learning model, the respective thresholds are predetermined, the respective thresholds include an accuracy threshold and a clock cycle threshold, and the instructions, when executed, cause the machine to:
determine whether the accuracy satisfies the accuracy threshold;
determine whether the quantity of the clock cycles satisfies the clock cycle threshold;
retrain the machine learning model in response to at least one of: (a) the accuracy not satisfying the accuracy threshold, or (b) the quantity of the clock cycles not satisfying the clock cycle threshold; and
identify the machine learning model for deployment in response to: (a) the accuracy satisfying the accuracy threshold, and (b) the quantity of the clock cycles satisfying the clock cycle threshold.

### Claim 20

(canceled)

### Claim 21 (depends on 17)

The non-transitory computer readable storage medium of claim 17, wherein the hardware configuration specifies at least one of a cache size or a cache operating frequency associated with cache memory of the target hardware platform.

### Claim 22

(canceled)

### Claim 23 (depends on 17)

The non-transitory computer readable storage medium of claim 17, wherein the hardware configuration specifies at least one of a number of data processing units, a clock frequency, a fabric frequency, an activation precision, or a weight precision associated with one or more processors of the target hardware platform.

### Claim 24 (depends on 17)

The non-transitory computer readable storage medium of claim 17, wherein the target hardware platform is a digital signal processor, a graphics processing unit, or a vision processing unit.

### Claim 25

A method to train a machine learning model, the method comprising:
determining a hardware configuration of a target hardware platform on which the machine learning model is to be executed;
assigning sparsity configurations to layers of the machine learning model based on the hardware configuration; and
deploying the machine learning model to the target hardware platform in response to outputs of the machine learning model satisfying respective thresholds, the outputs including a quantity of clock cycles to execute the machine learning model with the layers having the assigned sparsity configurations.

### Claim 26 (depends on 25)

The method of claim 25, further including:
selecting a first layer of the layers;
assigning a zero to one or more values of a matrix of the first layer; and
determining a first quantity of clock cycles to execute a convolution operation with the matrix.

### Claim 27 (depends on 25)

The method of claim 25, wherein the outputs include an accuracy of the machine learning model, the respective thresholds are predetermined, the respective thresholds include an accuracy threshold and a clock cycle threshold, and further including:
determining whether the accuracy satisfies the accuracy threshold;
determining whether the quantity of the clock cycles satisfies the clock cycle threshold;
retraining the machine learning model in response to at least one of: (a) the accuracy not satisfying the accuracy threshold, or (b) the quantity of the clock cycles not satisfying the clock cycle threshold; and
identifying the machine learning model for deployment in response to: (a) the accuracy satisfying the accuracy threshold, and (b) the quantity of the clock cycles satisfying the clock cycle threshold.

### Claim 28

(canceled)

### Claim 29

(canceled)

### Claim 30 (depends on 25)

The method of claim 25, wherein the hardware configuration specifies at least one of a memory type, a read memory bandwidth, a read bus width, a write memory bandwidth, a write bus width, a memory de-rate factor, or a number of memory ports associated with memory of the target hardware platform.

### Claim 31 (depends on 25)

The method of claim 25, wherein the hardware configuration specifies at least one of a number of data processing units, a clock frequency, a fabric frequency, an activation precision, or a weight precision associated with one or more processors of the target hardware platform.

### Claim 32

(canceled)
