NEURAL NETWORK PROCESSOR AND METHOD OF NEURAL NETWORK PROCESSING
A neural network processor is provided comprising a plurality of mutually succeeding neural network processor layers is provided. A neural network processor layer therein comprising a plurality of neural network processor elements ( 1 ) having a respective state register ( 2 ) for storing a state value (X) indicative for their state, as well as an additional state register ( 4 ) for storing a value (Q) of a state value change indicator that is indicative for a direction of a previous state change exceeding a threshold value. Neural network processor elements in a neural network processor layer are configured to selectively transmit differential event messages indicative for a change of their state, dependent both on the change of their state value and on the value of their state value change indicator.
1 . A method comprising:
receiving, by a neural network processor element, an input event message, the neural network processor element being associated with a first state value of the neural network processor element stored by a first state register and a state value change indicator stored by a second state register;
computing a second state value of the neural network processor element based on the input event message; and
generating an output event message based on a modified quantized difference between a first quantized value of the first state value and a second quantized value of the second state value, the modified quantized difference being equal to a sum of the quantized difference and a modification value dependent on a current polarity of the quantized difference and a previous polarity indicated by the state value change indicator, the modification value comprising:
0 based on a current polarity being equal to the previous polarity,
1 based on the current polarity being negative and the previous polarity being positive, or
−1 based on the current polarity being positive and the previous polarity being negative.
2 . The method of claim 1 , wherein the neural network processor element is a first neural network processor element included in a plurality of neural network processor elements within a neural network processor, the input event message being received from a second neural network processor element in the plurality of neural network processor elements.
3 . The method of claim 2 , wherein the plurality of neural network processor elements is organized in a cluster, and wherein the plurality of neural network processor elements shares a common message buffer.
4 . The method of claim 2 , wherein the plurality of neural network processor elements shares a common output unit.
5 . The method of claim 2 , wherein the plurality of neural network processor elements shares a common network interface.
6 . The method of claim 2 , wherein the plurality of neural network processor elements form a neural network processor layer in the neural network processor.
7 . The method of claim 2 , wherein the plurality of neural network processor elements shares a common computation unit that is provided as a partially or fully programmable processor.
8 . The method of claim 1 , wherein the neural network processor element comprises:
a first computation section to compute a control signal indicative of compliance with a first predetermined change condition related to the state value of the neural network processor element,
a second computation section to compute a modified control signal indicative of compliance with a second predetermined change condition that accounts for a previous predetermined change, and
a third computation section to generate the output event message.
9 . The method of claim 8 , wherein the third computation section is activated based on compliance with the first predetermined change condition and the second predetermined change condition.
10 . The method of claim 1 , wherein the neural network processor element is included in a convolutional layer in a neural network processor comprising multiple mutually succeeding neural network processor layers.
11 . A system comprising:
a neural network processor comprising a plurality of neural network processor elements,
each neural network processor element in the plurality of neural network processor elements performing operations comprising:
receiving an input event message, the neural network processor element being associated with a first state value of the neural network processor element stored by a first state register and a state value change indicator stored by a second state register;
computing a second state value of the neural network processor element based on the input event message; and
generating an output event message based on a modified quantized difference between a first quantized value of the first state value and a second quantized value of the second state value, the modified quantized difference being equal to a sum of the quantized difference and a modification value dependent on a current polarity of the quantized difference and a previous polarity indicated by the state value change indicator, the modification value comprising:
0 based on a current polarity being equal to the previous polarity,
1 based on the current polarity being negative and the previous polarity being positive, or
−1 based on the current polarity being positive and the previous polarity being negative.
12 . The system of claim 11 , wherein the plurality of neural network processor elements is organized in a cluster, and wherein the plurality of neural network processor elements shares a common message buffer.
13 . The system of claim 12 , wherein the input event message is received in the common message buffer, and wherein the input event message is provided as an internal message to each neural network processor element in a core.
14 . The system of claim 11 , wherein the plurality of neural network processor elements shares a common output unit.
15 . The system of claim 11 , wherein the plurality of neural network processor elements shares a common network interface.
16 . The system of claim 11 , wherein the plurality of neural network processor elements form a neural network processor layer in the neural network processor.
17 . The system of claim 11 , wherein the plurality of neural network processor elements shares a common computation unit that is provided as a partially or fully programmable processor.
18 . The system of claim 11 , wherein the neural network processor element comprises:
a first computation section to compute a control signal indicative of compliance with a first predetermined change condition related to the state value of the neural network processor element,
a second computation section to compute a modified control signal indicative of compliance with a second predetermined change condition that accounts for a previous predetermined change, and
a third computation section to generate the output event message.
19 . The system of claim 18 , wherein the third computation section is activated based on compliance with the first predetermined change condition and the second predetermined change condition.
20 . A controlled device comprising:
a system according to claim 11 ; and
at least one sensor unit to provide sensor data to the control system.