# US 2020/0401898 A1 · Optimizing machine learning model performance

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

- Number: US 2020/0401898 A1
- Document ID: US20200401898A1
- Status: Published application
- Kind: A1
- Application number: 16/905,541
- Filed: 2020-06-18
- Published: 2020-12-24
- Earliest claimed: 2019-06-18
- Assignees: QUALCOMM Incorporated
- Applicants: QUALCOMM Incorporated
- Inventors: Meghal VARIA
- Web page: https://patentgrep.com/patent/US20200401898A1

## CPC

- G06N 3/063: using electronic means
- G06N 3/084: Backpropagation, e.g. using gradient descent
- G06N 3/045: Combinations of networks
- G06N 3/0464: Convolutional networks [CNN, ConvNet]
- G06N 3/08: Learning methods
- G06N 3/09: Supervised learning
- G06N 5/01: Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
- G06N 5/046: Forward inferencing; Production systems
- G06N: COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS

## Abstract

Certain aspects of the present disclosure provide techniques for receiving data defining a neural network; analyzing the data to determine a depth-first cut point for a depth-first traversal portion of an overall network traversal; performing depth-first traversal for the depth-first portion of the overall network traversal; and performing layer-based traversal for a layer-based portion of the overall network traversal.

## Claims

### Claim 1

A method, comprising:
receiving data defining a neural network;
analyzing the data to determine a depth-first cut point for a depth-first traversal portion of an overall network traversal;
performing depth-first traversal for the depth-first traversal portion of the overall network traversal; and
performing layer-based traversal for a layer-based portion of the overall network traversal.

### Claim 2 (depends on 1)

The method of claim 1, further comprising: storing weight data and output data for the depth-first traversal portion in a local memory during the depth-first portion of the overall network traversal.

### Claim 3 (depends on 2)

The method of claim 2, further comprising: determining the depth-first cut point based at least in part on a sum of a weight data size and an output data size for the depth-first traversal portion being less than a capacity of the local memory.

### Claim 4 (depends on 3)

The method of claim 3, wherein the local memory is a tightly-coupled memory (TCM) associated with a processor configured to perform the depth-first traversal and the layer-based traversal.

### Claim 5 (depends on 1)

The method of claim 1, wherein performing layer-based traversal for the layer-based portion of the overall network traversal comprises:
storing weight values and input values from a non-local memory in a local memory;
performing processing of a first layer of the layer-based portion of the overall network traversal using the weight values and the input values in order to generate output values;
storing the output values in the local memory; and
performing processing of a second layer of the layer-based portion of the overall network traversal using the weight values and the output values.

### Claim 6 (depends on 3)

The method of claim 3, wherein the depth-first cut point is determined by a compiler based on the capacity of the local memory.

### Claim 7

A processing system, comprising:
a memory comprising computer-executable instructions; and
a processor configured to execute the computer-executable instructions and cause the processing system to:
receive data defining a neural network;
analyze the data to determine a depth-first cut point for a depth-first traversal portion of an overall network traversal;
perform depth-first traversal for the depth-first traversal portion of the overall network traversal; and
perform layer-based traversal for a layer-based portion of the overall network traversal.

### Claim 8 (depends on 7)

The processing system of claim 7, wherein the processor is further configured to: store weight data and output data for the depth-first traversal portion in a local memory during the depth-first portion of the overall network traversal.

### Claim 9 (depends on 8)

The processing system of claim 8, wherein the processor is further configured to determine the depth-first cut point based at least in part on a sum of a weight data size and an output data size for the depth-first traversal portion being less than a capacity of the local memory.

### Claim 10 (depends on 9)

The processing system of claim 9, wherein the local memory is a tightly-coupled memory (TCM) associated with a processor configured to perform the depth-first traversal and the layer-based traversal.

### Claim 11 (depends on 7)

The processing system of claim 7, wherein in order to perform the layer-based traversal for the layer-based portion of the overall network traversal, the processor is further configured to:
store weight values and input values from a non-local memory in a local memory;
perform processing of a first layer of the layer-based portion of the overall network traversal using the weight values and the input values in order to generate output values;
store the output values in the local memory; and
perform processing of a second layer of the layer-based portion of the overall network traversal using the weight values and the output values.

### Claim 12 (depends on 9)

The processing system of claim 9, wherein the depth-first cut point is determined by a compiler based on the capacity of the local memory.

### Claim 13

A method, comprising:
receiving data defining a neural network;
receiving hardware characteristic data defining a plurality of hardware resources, including a local memory capacity;
analyzing the data to determine a cut point for a depth-first traversal portion of an overall network traversal;
determining a first cut point based at least in part on the data and the local memory capacity, wherein the first cut point is at a maximum depth of the neural network given the local memory capacity;
determining a second cut point, wherein the second cut point is shallower than the first cut point, and wherein the second cut point increases hardware parallelism compared to the first cut point; and
performing depth-first traversal for the depth-first portion of the overall network traversal using two or more hardware resources of the plurality of hardware resource and the second cut point.

### Claim 14 (depends on 13)

The method of claim 13, further comprising: storing weight data and output data for the depth-first traversal portion in a local memory during the depth-first portion of the overall network traversal.

### Claim 15 (depends on 14)

The method of claim 14, wherein the local memory is a tightly-coupled memory (TCM).

### Claim 16 (depends on 13)

The method of claim 13, wherein performing depth-first traversal for the depth-first traversal portion of the overall network traversal does not require writing data to a non-local memory.

### Claim 17 (depends on 13)

The method of claim 13, wherein the second cut point enables cone parallelization during the depth-first traversal for the depth-first portion of the overall network traversal.

### Claim 18

A method, comprising:
performing, during a first time interval, a computational phase of a first inference on a first hardware resource;
performing, during a second time interval, a transport phase of the first inference on a second hardware resource;
performing, during the second time interval, a computational phase of a second inference on the first hardware resource; and
performing, during a third time interval, a transport phase of the second inference on the second hardware resource.

### Claim 19 (depends on 18)

The method of claim 18, wherein the first hardware resource is optimized for inference computation.

### Claim 20 (depends on 19)

The method of claim 19, wherein the second hardware resource is optimized for data transport.
