# US 10,769,527 B2 · Accelerating artificial neural network computations by skipping input values

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

- Number: US 10,769,527 B2
- Document ID: US10769527B2
- Status: Granted
- Kind: B2
- Application number: 16/215,685
- Filed: 2018-12-11
- Published: 2020-06-11
- Granted: 2020-09-08
- Earliest claimed: 2018-12-11
- Assignees: Mipsology SAS
- Applicants: Mipsology SAS
- Inventors: Sebastien Delerse; Ludovic Larzul; Benoit Chappet de Vangel; Taoufik Chouta
- Web page: https://patentgrep.com/patent/US10769527B2

## CPC

- G06N 3/08: Learning methods
- G06F 7/575: Basic arithmetic logic units, i.e. devices selectable to perform either addition, subtraction or one of several logical operations, using, at least partially, the same circuitry
- G06N 3/04: Architecture, e.g. interconnection topology
- G06N 3/0464: Convolutional networks [CNN, ConvNet]
- G06N 3/063: using electronic means
- G06F 2207/4824: Neural networks
- G06N 3/044: Recurrent networks, e.g. Hopfield networks
- G06N 3/045: Combinations of networks
- G06N: COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Systems and methods for accelerating artificial neural network computation are disclosed. An example may comprise selecting, by a controller communicatively coupled to a selector and an arithmetic unit and based on a criterion, an input value from the stream of input values of a neuron, configuring, by the controller, the selector to provide, dynamically, the selected input value to the arithmetic unit, providing, by the controller to the arithmetic unit, an information of the selected input value, acquiring, by the arithmetic unit and based on the information, a weight from a set of weights, and performing, by the arithmetic unit a mathematical operation on the selected input value and the weight to obtain a result, wherein the result is to be used to compute an output of the neuron. The criterion may include a comparison between the input value and a reference value. The reference value may include zero.

## Claims

### Claim 1

A system for accelerating artificial neural network (ANN) computations, the system comprising:
a controller;
a selector communicatively coupled to the controller; and
an arithmetic unit communicatively coupled to the controller and the selector; and wherein:
the controller is configured to:
select an input value, based on a criterion, from a subset of input values of a neuron, wherein the criterion is based on a comparison of the input value to a further value, the further value being different from the input value and being dynamically provided to the controller, the further value being related to one of the following: the neuron, a layer of the ANN, the ANN, weights of the ANN, and an operation carried by the arithmetic unit;
cause, based on the further value, the selector to provide dynamically the selected input value to the arithmetic unit; and
provide, to the arithmetic unit, an offset of an index of the selected input value in the subset of input values, wherein the offset is based on the further value, the further value being indeterminable based on the offset; and
the arithmetic unit is configured to:
acquire, based on the offset of the index of the selected input value, a weight from a set of weights, the weight corresponding to the selected input value; and
perform a mathematical operation on the selected input value and the weight to obtain a result, wherein the result is to be used to compute an output of the neuron.

### Claim 2 (depends on 1)

The system of claim 1, wherein the mathematical operation includes a multiplication product.

### Claim 3 (depends on 1)

The system of claim 1, wherein the criterion includes a comparison between an input value and a reference value.

### Claim 4 (depends on 3)

The system of claim 3, wherein the reference value is zero.

### Claim 5 (depends on 1)

The system of claim 1, wherein the selector includes a multiplexor.

### Claim 6 (depends on 1)

The system of claim 1, wherein the selector includes information associated with a memory address of the selected input value.

### Claim 7 (depends on 1)

The system of claim 1, wherein:
input values unselected from the subset of input values are not provided to the arithmetic unit.

### Claim 8 (depends on 1)

The system of claim 1, wherein a count of mathematical operations performed by the arithmetic unit on selected input values from the subset of input values is less than a count of mathematical operations required to be performed by the arithmetic unit on all input values from the subset of the input values.

### Claim 9 (depends on 1)

The system of claim 1, wherein the selecting the input value is based on a value of at least one weight from the set of weights.

### Claim 10

A method for accelerating artificial neural network (ANN) computation, the method comprising:
selecting, by a controller communicatively coupled to a selector and an arithmetic unit and based on a criterion, an input value from a subset of input values of a neuron, wherein the criterion is based on a comparison of the input value to a further value, the further value being different from the input value and being dynamically provided to the controller, the further value being related to one of the following: the neuron, a layer of the ANN, the ANN, weights of the ANN, and an operation carried by the arithmetic unit;
causing, by the controller, based on the further value, the selector to provide dynamically the selected input value to the arithmetic unit; and
providing, by the controller to the arithmetic unit, an offset of an index of the selected input value in the subset of input values, wherein the offset is based on the further value, the further value being indeterminable based on the offset;
acquiring, by the arithmetic unit and based on the offset of the index of the selected input value, a weight from a set of weights, the weight corresponding to the selected input value; and
performing, by the arithmetic unit, a mathematical operation on the selected input value and the weight to obtain a result, wherein the result is to be used to compute an output of the neuron.

### Claim 11 (depends on 10)

The method of claim 10, wherein the mathematical operation includes a multiplication product.

### Claim 12 (depends on 10)

The method of claim 10, wherein the criterion includes a comparison between the input value and a reference value.

### Claim 13 (depends on 12)

The method of claim 12, wherein the reference value is zero.

### Claim 14 (depends on 10)

The method of claim 10, wherein:
input values unselected from the subset of input values are not provided to the arithmetic unit.

### Claim 15 (depends on 10)

The method of claim 10, wherein the selector includes a multiplexor.

### Claim 16 (depends on 10)

The method of claim 10, wherein the selector includes information associated with a memory address of the selected input value.

### Claim 17 (depends on 10)

The method of claim 10, wherein a count of mathematical operations performed by the arithmetic unit on selected input values from the subset of input values is less than a count of mathematical operations required to be performed by the arithmetic unit on all input values from the subset of the input values.

### Claim 18 (depends on 10)

The method of claim 10, wherein the selecting the input value is based on a value of at least one weight from the set of weights.
