Neural network processor
First Claim
1. 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, andgenerate a plurality of accumulated values based on the plurality of weight inputs and the plurality of activation inputs,wherein the matrix computation unit is configured as a two dimensional systolic array comprising a plurality of cells, wherein the plurality of weight inputs is shifted through a first plurality of cells along a first dimension of the systolic array, and wherein the plurality of activation inputs is shifted through a second plurality of cells along a second dimension of the systolic array; 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 of the plurality of accumulated values for the neural network layer generated by the matrix computation unit to generate a plurality of activated values 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
26 Claims
-
1. 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, wherein the matrix computation unit is configured as a two dimensional systolic array comprising a plurality of cells, wherein the plurality of weight inputs is shifted through a first plurality of cells along a first dimension of the systolic array, and wherein the plurality of activation inputs is shifted through a second plurality of cells along a second dimension of the systolic array; 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 of the plurality of accumulated values for the neural network layer generated by the matrix computation unit to generate a plurality of activated values for the neural network layer. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A method for performing neural network computations for a neural network comprising a plurality of neural network layers using a circuit comprising a matrix computation unit and a vector computation unit coupled to the matrix computation unit, where the matrix computation unit is configured as a two dimensional systolic array comprising a plurality of cells, and wherein the method comprises, for each of the plurality of neural network layers:
-
providing a plurality of weight inputs and a plurality of activation inputs for the neural network layer to the matrix computation unit, comprising; shifting the plurality of weight inputs through a first plurality of cells along a first dimension of the systolic array, and shifting the plurality of activation inputs through a second plurality of cells along a second dimension of the systolic array; generating, using the matrix computation unit, a plurality of accumulated values, wherein the matrix computation unit is configured to receive the plurality of weight inputs and the plurality of activation inputs for the neural network layer and generate the plurality of accumulated values based on the plurality of weight inputs and the plurality of activation inputs; and generating, using the vector computation unit, a plurality of activated values for the neural network layer, wherein the matrix computation unit is configured to 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. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26)
-
Specification