Neural network processor
First Claim
1. A system for performing neural network computations for a neural network having a plurality of neural network layers, the system comprising:
- a hardware circuit comprising at least a first circuit portion that includes a matrix computation unit comprising M ×
N cells, wherein M and N are positive integers that are greater than one, andwherein each cell of the M ×
N cells of the first circuit portion includes respective circuitry configured to;
obtain, from an adjacent cell along a first dimension of the matrix computation unit, a respective weight input the respective weight input being a weight input for a neural network layer of the plurality of neural network layers;
obtain, from an adjacent cell along a second dimension of the matrix computation unit, a respective activation input for the neural network layer;
determine a respective multiplication product based on the respective weight input and the respective activation input;
determine a respective accumulated value based at least on the respective multiplication product;
provide, to another adjacent cell along the first dimension of the matrix computation unit, the respective accumulated value for determining an output for the neural network layer; and
provide, to an adjacent cell along the second dimension of the matrix computation unit, the respective activation input for the neural network layer.
2 Assignments
0 Petitions
Accused Products
Abstract
A circuit for performing neural network computations for a neural network comprising a plurality of neural network layers, the circuit comprising: a matrix computation unit configured to, for each of the plurality of neural network layers: receive a plurality of weight inputs and a plurality of activation inputs for the neural network layer, and generate a plurality of accumulated values based on the plurality of weight inputs and the plurality of activation inputs; and a vector computation unit communicatively coupled to the matrix computation unit and configured to, for each of the plurality of neural network layers: apply an activation function to each accumulated value generated by the matrix computation unit to generate a plurality of activated values for the neural network layer.
-
Citations
21 Claims
-
1. A system for performing neural network computations for a neural network having a plurality of neural network layers, the system comprising:
-
a hardware circuit comprising at least a first circuit portion that includes a matrix computation unit comprising M ×
N cells, wherein M and N are positive integers that are greater than one, andwherein each cell of the M ×
N cells of the first circuit portion includes respective circuitry configured to;obtain, from an adjacent cell along a first dimension of the matrix computation unit, a respective weight input the respective weight input being a weight input for a neural network layer of the plurality of neural network layers; obtain, from an adjacent cell along a second dimension of the matrix computation unit, a respective activation input for the neural network layer; determine a respective multiplication product based on the respective weight input and the respective activation input; determine a respective accumulated value based at least on the respective multiplication product; provide, to another adjacent cell along the first dimension of the matrix computation unit, the respective accumulated value for determining an output for the neural network layer; and provide, to an adjacent cell along the second dimension of the matrix computation unit, the respective activation input for the neural network layer. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 16)
-
-
13. A method for performing neural network computations for a neural network having a plurality of neural network layers, the method comprising:
for each cell of M ×
N cells of a matrix computation unit that is disposed within at least a first circuit portion of a hardware circuit comprising the neural network;obtaining, from an adjacent cell along a first dimension of the matrix computation unit, a respective weight input for a neural network layer of the plurality of neural network layers; obtaining, from an adjacent cell along a second dimension of the matrix computation unit, a respective activation input for the neural network layer; determining a respective multiplication product based on the respective weight input and the respective activation input; determining a respective accumulated value based at least on the respective multiplication product; providing, to another adjacent cell along the first dimension of the matrix computation unit, the respective accumulated value for determining an output for the neural network layer, wherein M and N are positive integers that are greater than one; and providing, to an adjacent cell along the second dimension of the matrix computation unit, the respective activation input for the neural network layer. - View Dependent Claims (14, 15, 17)
-
18. A matrix computation unit configured to be disposed within at least a first circuit portion of a hardware circuit, the matrix computation unit for performing neural network computations for a neural network having a plurality of neural network layers, the matrix computation unit comprising
M× - N cells, wherein M and N are positive integers that are greater than one, and
wherein each cell of the M×
N cells of the first circuit portion includes respective circuitry configured to;obtain, from an adjacent cell along a first dimension of the matrix computation unit, a respective weight input for a neural network layer of the plurality of neural network layers; obtain, from an adjacent cell along a second dimension of the matrix computation unit, a respective activation input for the neural network layer; determine a respective multiplication product based on the respective weight input and the respective activation input; determine a respective accumulated value based at least on the respective multiplication product; provide, to another adjacent cell along the second dimension of the matrix computation unit, the respective accumulated value for determining an output for the neural network layer; and provide, to an adjacent cell along the second dimension of the matrix computation unit, the respective activation input for the neural network layer. - View Dependent Claims (19, 20, 21)
- N cells, wherein M and N are positive integers that are greater than one, and
Specification