BINARY NEURAL NETWORK ACCELERATOR ENGINE METHODS AND SYSTEMS
First Claim
1. A logic circuit for computing a dot product in a binary neural network, the logic circuit comprising:
- a first set of exclusive nor (XNOR) gates, each XNOR gate configured to receive one bit of a first vector of length N bits and one bit of a second vector of length N bits, to generate a product vector of length N bits at the output of the first set of XNOR gates;
a first buffer and a second buffer each having a length N/2 bits to store the product vector in two portions, each of the first and the second buffers coupled to inputs of a second set of XNOR gates and to inputs of a first set of NOR gates;
a third buffer and a fourth buffer each having a length N/2 bits, wherein the third buffer is configured to store output results of the first set of NOR gates, and the fourth buffer is configured to store output results of the second set of XNOR gates; and
a plurality of adders having inputs that are coupled to the third and the fourth buffers and configured to add binary values stored in the third and the fourth buffers to generate the dot product of the first and second bit vectors.
3 Assignments
0 Petitions
Accused Products
Abstract
Disclosed are methods, apparatus and systems for a binary neural network accelerator engine. One example circuit is designed to perform a multiply-and-accumulate (MAC) operation using logic circuits that include a first set of exclusive nor (XNOR) gates to generate a product vector based on a bit-wise XNOR operation two vectors. The result is folded and operated on by another set of logic circuits that provide an output for a series of adder circuits. The MAC circuit can be implemented as part of binary neural network at a small footprint to effect power and cost savings.
18 Citations
20 Claims
-
1. A logic circuit for computing a dot product in a binary neural network, the logic circuit comprising:
-
a first set of exclusive nor (XNOR) gates, each XNOR gate configured to receive one bit of a first vector of length N bits and one bit of a second vector of length N bits, to generate a product vector of length N bits at the output of the first set of XNOR gates; a first buffer and a second buffer each having a length N/2 bits to store the product vector in two portions, each of the first and the second buffers coupled to inputs of a second set of XNOR gates and to inputs of a first set of NOR gates; a third buffer and a fourth buffer each having a length N/2 bits, wherein the third buffer is configured to store output results of the first set of NOR gates, and the fourth buffer is configured to store output results of the second set of XNOR gates; and a plurality of adders having inputs that are coupled to the third and the fourth buffers and configured to add binary values stored in the third and the fourth buffers to generate the dot product of the first and second bit vectors. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A circuit for implementing a binary neural network, comprising:
-
a plurality of convolutional layers configured to implement at least a dot product of two-bit vectors, each vector having length N, based on a logic circuit; a plurality of pooling layers; and a plurality of fully connected layers, wherein a first layer of the plurality of convolutional layers is configured to receive an input signal, wherein a last layer of the plurality of fully connected layers is configured to provide a recognition value for the input signal in each of a plurality of classes, and wherein the logic circuit comprises; a first set of logic gates configured to compute a bit-wise exclusive nor (XNOR) operation on the two bit vectors, a second set of logic gates configured to perform at least two distinct binary operations on a folded output of the bit-wise XNOR operation, and a third set of logic gates configured to add results of the at least two distinct binary operations. - View Dependent Claims (7, 8, 9, 10, 11, 12)
-
-
13. A logic circuit for computing a dot product in a binary neural network, the logic circuit comprising:
-
a first set of logic gates configured to receive two bit vectors and compute a first bit-wise exclusive nor (XNOR) operation on the two bit vectors; a second set of logic gates configured to perform a second bit-wise XNOR operation and a bit-wise NOR operation on a folded output of the first bit-wise XNOR operation; and a third set of logic gates configured to add results of the second bit-wise XNOR operation and the bit-wise NOR operation.
-
-
14. A neural network system for signal classification, comprising:
-
a first neural network comprising; a first input to receive an input signal, a second input to receive a wakeup signal, a first processor to perform, upon receiving the wakeup signal, a first classification of the input signal to produce a first classification result, and an output to provide the first classification result; and a second neural network comprising; an input to receive the input signal, a second processor to continuously perform a second classification of the input signal to produce a second classification result, and an output coupled to the second input of the first neural network to provide the wake-up signal based on the second classification result, wherein; the first neural network is configured to operate intermittently to remain in an off mode of operation and to only switch to an on mode of operation upon receiving the wake-up signal from the second neural network, the second neural network is configured to continually process the input signal in an always-on mode of operation and to generate the wake-up signal upon a determination of the second classification result. - View Dependent Claims (15, 16, 17, 18, 19, 20)
-
Specification