# US 2021/0334643 A1 · Processing unit for performing operations of a neural network

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

- Number: US 2021/0334643 A1
- Document ID: US20210334643A1
- Status: Published application
- Kind: A1
- Application number: 16/859,062
- Filed: 2020-04-27
- Published: 2021-10-28
- Earliest claimed: 2020-04-27
- Assignees: Arm Limited
- Applicants: Arm Limited
- Inventors: Dominic Hugo SYMES; John Wakefield BROTHERS, III; Fredrik Peter STOLT
- Web page: https://patentgrep.com/patent/US20210334643A1

## CPC

- G06N 3/063: using electronic means
- G06N 3/08: Learning methods
- G06N 3/04: Architecture, e.g. interconnection topology
- G06N 3/045: Combinations of networks
- G06N 3/0464: Convolutional networks [CNN, ConvNet]
- G06N: COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS

## Abstract

A processing unit is described that receives an instruction to perform a first operation on a first layer of a neural network, block dependency data, and an instruction to perform a second operation on a second layer of the neural network. The processing unit performs the first operation, which includes dividing the first layer into a plurality of input blocks, and operating on the input blocks to generate a plurality of output blocks. The processing unit then performs the second operation after the first operation has generated a set number of output blocks defined by the block dependency data.

## Claims

### Claim 1

A processing unit configured to:
receive an instruction to perform a first operation on a first layer of a neural network;
receive block dependency data;
receive an instruction to perform a second operation on a second layer of the neural network;
perform the first operation comprising dividing the first layer into a plurality of input blocks, and operating on the input blocks to generate a plurality of output blocks; and
perform the second operation after the first operation has generated a set number of output blocks, the set number being defined by the block dependency data.

### Claim 2 (depends on 1)

A processing unit as claimed in claim 1, wherein the second operation comprises dividing the second layer into a plurality of further input blocks, and operating on the further input blocks to generate a plurality of further output blocks, and wherein the second operation operates on the further input blocks to generate further output block X after the first operation has generated output block Y, where Y is a function of X and is defined by the block dependency data.

### Claim 3 (depends on 2)

A processing unit as claimed in claim 2, wherein the second operation operates on the further input blocks to generate further output block X after the first operation has generated all but max(D−X,0) of the output blocks, where D is defined by the block dependency data.

### Claim 4 (depends on 1)

A processing unit as claimed claim 1, wherein the first operation generates N output blocks, and the processing unit performs the second operation after the first operation has generated N−Y output blocks, where Y is non-zero and is defined by the block dependency data.

### Claim 5 (depends on 1)

A processing unit as claimed in claim 1, wherein the first operation comprises generating the second layer using the output blocks.

### Claim 6 (depends on 1)

A processing unit as claimed in claim 1, wherein the first operation comprises accumulating output blocks to generate an accumulated block, and the accumulated block forms part or all of the second layer.

### Claim 7

A method comprising:
receiving an instruction to perform a first operation on a first layer of a neural network;
receiving block dependency data;
receiving an instruction to perform a second operation on a second layer of the neural network;
performing the first operation comprising dividing the first layer into a plurality of input blocks, and operating on the input blocks to generate a plurality of output blocks; and
performing the second operation after the first operation has generated a set number of output blocks, the set number being defined by the block dependency data.

### Claim 8

A system comprising a first processing unit, and a second processing unit, wherein:
the first processing unit outputs a command stream to the second processing unit;
the command stream comprises an instruction to perform a first operation on a first layer of a neural network, block dependency data, and an instruction to perform a second operation on a second layer of the neural network; and
in response to the command stream, the second processing unit:
performs the first operation comprising dividing the first layer into a plurality of input blocks, and operating on the input blocks to generate a plurality of output blocks; and
performs the second operation after the first operation has generated a set number of output blocks, the set number being defined by the block dependency data.
