Configurable neural network integrated circuit
First Claim
1. A neural network integrated circuit (IC) having a programmable architecture, comprising:
- a plurality of processing elements (PEs) that generate output values at successive computation cycles, each PE comprising;
a data memory,an input weight memory,an output weight memory,a processing circuit that computes an intermediate value that is a function of the contents of said data and input weight memories, the contents of the output weight memory and the PEs'"'"' output values from a previous cycle, andan activation circuit that maps the intermediate value into said output value in accordance with a desired activation function;
an output memory for storing said output values so that said stored output values are accessible to each PE'"'"'s processing circuit at the next computation cycle;
a data bus for writing input into the data memory;
a timing circuit that is enabled when data is written into said data memories, counts a fixed amount of time per subcycle, and outputs an interrupt when p+1 subcycles have been completed; and
an output circuit that reads out L of said PEs'"'"' output values in response to said interrupt,the input and output weight memories being programmed with arrays of respective input and output weights configuring the PEs to include and compute in p+1 computation subcycles p hidden layers that extract features from the input data, and an output layer that weights the respective features.
4 Assignments
0 Petitions
Accused Products
Abstract
A neural network IC 31 includes n dedicated processing elements (PEs) 62, an output register 66 for storing the PEs'"'"' outputs so that they are immediately accessible to all of the PEs, a number of output circuits 78 that are connected to selected PEs to provide binary outputs, and a timing circuit 74. Each of the PEs includes a weight memory 90 for storing input, output and bias weight arrays, a first in first out (FIFO) memory 88 for storing input data, a dot product circuit 92 and an activation circuit 94. The dot product circuit computes a dot product of the input weight array and the contents of the FIFO memory, a dot product of the output weight array and the contents of the output register, a dot product of the bias value and a constant, and sums the three results. The activation circuit maps the output of the dot product circuit through an activation function to produce the PE'"'"'s output. The inclusion of a memory 90 that stores both input and output weight arrays in conjunction with the output register 66 allows the PEs to be configured to implement arbitrary feed-forward and recurrent neural network architectures.
124 Citations
5 Claims
-
1. A neural network integrated circuit (IC) having a programmable architecture, comprising:
-
a plurality of processing elements (PEs) that generate output values at successive computation cycles, each PE comprising; a data memory, an input weight memory, an output weight memory, a processing circuit that computes an intermediate value that is a function of the contents of said data and input weight memories, the contents of the output weight memory and the PEs'"'"' output values from a previous cycle, and an activation circuit that maps the intermediate value into said output value in accordance with a desired activation function; an output memory for storing said output values so that said stored output values are accessible to each PE'"'"'s processing circuit at the next computation cycle; a data bus for writing input into the data memory; a timing circuit that is enabled when data is written into said data memories, counts a fixed amount of time per subcycle, and outputs an interrupt when p+1 subcycles have been completed; and an output circuit that reads out L of said PEs'"'"' output values in response to said interrupt, the input and output weight memories being programmed with arrays of respective input and output weights configuring the PEs to include and compute in p+1 computation subcycles p hidden layers that extract features from the input data, and an output layer that weights the respective features. - View Dependent Claims (2)
-
-
3. A neural network integrated circuit (IC) having a programmable architecture, comprising:
-
a plurality of processing elements (PEs), including a plurality of PEs arranged in n layers, that generate output values at successive computation cycles, said computation cycles having n subcycles, one for each layer, each PE comprising; a data memory, an input weight memory, an output weight memory, a processing circuit that computes an intermediate value that is a function of the contents of said data and input weight memories, the contents of the output weight memory and the PE'"'"'s output values from a previous cycle, and an activation circuit that maps the intermediate value into said output value in accordance with a desired activation function; an output memory for storing said output values so that said stored output values are accessible to each PE'"'"'s processing circuit at the next computation cycle; and a PE selection circuit that stores an execution subcycle for each PE and controls said output memory so that the PE'"'"'s output values are only written into said output memory during their respective execution subcycles, the input and output weight memories being programmable so that the PEs can be interconnected to provide a desired neural network architecture. - View Dependent Claims (4)
-
-
5. A neural network processor, comprising:
-
a neural network integrated circuit that includes a plurality of processing elements (PEs), including a plurality of PEs arranged in n layers, which generate output values at successive computation cycles, said computation cycle having n subcycles, one for each layer, and an output memory that stores the output values so that they are accessible to the PE'"'"'s at the next computation cycle, each PE comprising; a data memory for storing the input data values, an input weight memory for storing input weights, an output weight memory for storing output weights, said input and output weights configuring the PEs to provide a desired neural network architecture, and a processing circuit that computes said output value as a function of the input data values and input weights, and the output weights and PEs'"'"' output values from a previous cycle; a microprocessor that writes input data into the PEs'"'"' data memories, and controls a start cycle to initiate the computation of said output values, and an output enable to read the output values; a timing circuit that receives a clock signal, initiates computation of the PEs in response to said start cycle, counts a fixed number of clock cycles per subcycle, increments a count at the end of each subcycle and generates an interrupt at the end of said computation cycle; and a PE selection circuit that stores an execution subcycle for each PE and controls said output memory so that the PE'"'"'s output values are only written into said output memory when their respective execution subcycles are the same as the said count.
-
Specification