COMPUTER ARCHITECTURE FOR MULTIPLIER-LESS MACHINE LEARNING
First Claim
1. A neural network apparatus, the apparatus comprising:
- processing circuitry and memory;
the processing circuitry to;
access a plurality of weights for a neural network layer, each weight being associated with a weight sign;
access an input vector for the neural network layer, the input vector comprising a plurality of data values, each data value being associated with a data value sign;
provide the plurality of weights and the input vector to an addition layer, the addition layer generating data value-weight pairs and, for each data value-weight pair, creating an input block comprising a sum of the data value and the weight, and a xor (exclusive or) of the data value sign and the weight sign;
sort the input blocks generated by the addition layer;
cancel any opposite signed input blocks having a same magnitude from the sorted input blocks to generate a set of blocks; and
output a Kth largest value from the set of blocks, wherein K is a positive integer.
1 Assignment
0 Petitions
Accused Products
Abstract
A computer architecture for multiplier-less machine learning is disclosed. According to some aspects, a neural network apparatus include processing circuitry and memory. The processing circuitry accesses a plurality of weights for a neural network layer and an input vector for the neural network layer, the input vector comprising a plurality of data values. The processing circuitry provides the plurality of weights and the input vector to an addition layer. The addition layer generates data value-weight pairs and, for each data value-weight pair, creates an input block comprising a sum of the data value and the weight. The processing circuitry sorts the input blocks generated by the addition layer. The processing circuitry cancels any opposite signed input blocks from the sorted input blocks to generate a set of blocks. The processing circuitry outputs a Kth largest value from the set of blocks. K is a positive integer.
3 Citations
20 Claims
-
1. A neural network apparatus, the apparatus comprising:
-
processing circuitry and memory;
the processing circuitry to;access a plurality of weights for a neural network layer, each weight being associated with a weight sign; access an input vector for the neural network layer, the input vector comprising a plurality of data values, each data value being associated with a data value sign; provide the plurality of weights and the input vector to an addition layer, the addition layer generating data value-weight pairs and, for each data value-weight pair, creating an input block comprising a sum of the data value and the weight, and a xor (exclusive or) of the data value sign and the weight sign; sort the input blocks generated by the addition layer; cancel any opposite signed input blocks having a same magnitude from the sorted input blocks to generate a set of blocks; and output a Kth largest value from the set of blocks, wherein K is a positive integer. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A non-transitory machine-readable medium for executing a neural network, the machine-readable medium storing instructions which, when executed by processing circuitry of one or more machines, cause the processing circuitry to:
-
access a plurality of weights for a neural network layer, each weight being associated with a weight sign; access an input vector for the neural network layer, the input vector comprising a plurality of data values, each data value being associated with a data value sign; provide the plurality of weights and the input vector to an addition layer, the addition layer generating data value-weight pairs and, for each data value-weight pair, creating an input block comprising a sum of the data value and the weight, and a xor (exclusive or) of the data value sign and the weight sign; sort the input blocks generated by the addition layer; cancel any opposite signed input blocks having a same magnitude from the sorted input blocks to generate a set of blocks; and output a Kth largest value from the set of blocks, wherein K is a positive integer. - View Dependent Claims (10, 11, 12, 13, 14)
-
-
15. A neural network method implemented at processing circuitry of one or more machines, the method comprising:
-
access a plurality of weights for a neural network layer, each weight being associated with a weight sign; access an input vector for the neural network layer, the input vector comprising a plurality of data values, each data value being associated with a data value sign; provide the plurality of weights and the input vector to an addition layer, the addition layer generating data value-weight pairs and, for each data value-weight pair, creating an input block comprising a sum of the data value and the weight, and a xor (exclusive or) of the data value sign and the weight sign; sort the input blocks generated by the addition layer; cancel any opposite signed input blocks having a same magnitude from the sorted input blocks to generate a set of blocks; and output a Kth largest value from the set of blocks, wherein K is a positive integer. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification