IP Library Granted Patent US 11,960,565
Granted Patent B2
US 11,960,565 · App. 16/977,282 · Granted Apr 16, 2024

Add-mulitply-add convolution computation for a convolutional neural network

Inventor: Seiya Shibata (Tokyo, JP)
Assignee: NEC CORPORATION
G06F17/153G06F17/10G06N3/04G06N5/04G06V10/70G06V10/82G06V10/28
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,960,565
App. No.
16/977,282
Granted
Apr 16, 2024
Kind
B2
Abstract

An inference device comprises a weight storage part that stores weights, an input data storage part that stores input data, and a PE (Processing Element) that executes convolution computation in convolutional neural network using the weights and input data. The PE adds up weight elements to be multiplied with elements of the input data for each of variable values of the elements of the input data. The PE multiplies each of the variable values of the elements of the input data with each cumulative sum value of weights corresponding to the variable values of the elements of the input data. The PE adds up a plurality of multiplication results obtained by the multiplications.

Claims (66)

1. An inference device, comprising:

a weight storage that stores weights,

an input data storage that stores input data, and

a PE (Processing Element) that executes convolution computation in a convolutional neural network using the weights and the input data, wherein

the PE comprises one or more processors that are configured to implement:

a selector into which the elements of the input data and the weight elements are input,

a plurality of accumulation processors each calculating and storing cumulative sum of the weights for each of the variable values of the input data elements,

a plurality of multipliers respectively associated with the plurality of accumulation processors and assigned to a value to be multiplied with the cumulative sum value of the weights, and

an add-up processor into which the multiplication results by the plurality of multipliers are input and that adds up the multiplication results,

wherein the selector determines an accumulation processor to be an output destination of the input weight elements among the plurality of accumulation processors,

wherein the accumulation processor adds up weight elements to be multiplied with elements of the input data for each of variable values of the elements of the input data,

wherein the multiplier multiplies each of the variable values of the elements of the input data with each cumulative sum value of weights corresponding to the variable values of the elements of the input data, and

wherein the add-up processor adds up a plurality of multiplication results obtained by the multiplication.

2. The inference device according to claim 1 , wherein

the input data storage stores quantized input data,

the one or more processors of the PE are further configured to implement a separation processor that factorizes the input data elements and separates the factorized input data to predetermined first factor group and second factor group, and a shifting processor which shifts the weight element values by the number of bits corresponding to the values of the second factor group, and

the selector determines the output destination of the weight elements according to the value of the first factor group.

3. The inference device according to claim 2 , wherein

the plurality of accumulation processors is arranged for each of variable values of the first factor group,

each of the plurality of multipliers is assigned to a value obtained by fixing the second factor group at zero and varying the first factor group in the input data separated to the first factor group and the second factor group as a value to be multiplied with the cumulative sum value of the weights.

4. The inference device according to claim 1 , comprising:

a weight processor that accesses to the weight storage and provides the weights to the selector, and

an input data processor that accesses to the input data storage and provides the input data to the selector,

wherein the weight processor and the input data processor do not provide to the selector the input data element whose element value is zero in the input data and a corresponding weight element.

5. The inference device according to claim 1 , wherein

the plurality of accumulation processors is respectively configured by comprising an add-up processor and a register.

6. The inference device according to claim 1 , wherein

the plurality of accumulation processors respectively comprises a register,

the PE comprises:

a cumulative sum value selector that selects one output of the accumulation processor among the plurality of accumulation processors based on the variable values of the input data element, and

a shared add-up processor that adds the value output by the cumulative sum value selector to the weight element value and outputs summation result to the selector.

7. The inference device according to claim 1 , wherein

the PE further comprises an input data restriction processor that restricts variable values of the input data obtained from the input data storage.

8. The inference device according to claim 1 , comprising:

a plurality of PEs,

wherein the plurality of PEs executes convolution computation in the convolutional neural network in parallel.

9. A convolution computation method for an inference device that comprises a weight storage that stores weights, an input data storage that stores input data, a plurality of accumulation processors each calculating and storing cumulative sum of the weights for each of the variable values of the input data elements, a plurality of multipliers respectively associated with the plurality of accumulation processors and assigned to a value to be multiplied with the cumulative sum value of the weights, and an add-up processor into which the multiplication results by the plurality of multipliers are input and that adds up the multiplication results, executes convolution computation in a convolutional neural network using the weights and the input data, wherein

the method comprises:

the accumulation processor adding up weight elements to be multiplied with elements of the input data for each of variable values of the elements of the input data,

the multiplier multiplying each of the variable values of the elements of the input data with each cumulative sum value of weights corresponding to the variable values of the elements of the input data, and

the add-up processor adding up a plurality of multiplication results obtained by the multiplication.

10. The convolution computation method according to claim 9 , comprising:

factorizing the input data elements,

separating the factorized input data to predetermined first factor group and second factor group, and

shifting the weight element values by the number of bits corresponding to the values of the second factor group.

11. The convolution computation method according to claim 10 , comprising:

fixing the second factor group at zero, and

varying the first factor group in the input data.

12. The convolution computation method according to claim 9 , comprising:

providing to the accumulation processor no input data element when element value is zero in the input data and a corresponding weight element.

13. A non-transitory computer readable medium storing a program executed by a computer implemented in an inference device that comprises a weight storage that stores weights, an input data storage that stores input data, a plurality of accumulation processors each calculating and storing cumulative sum of the weights for each of the variable values of the input data elements, a plurality of multipliers respectively associated with the plurality of accumulation processors and assigned to a value to be multiplied with the cumulative sum value of the weights, and an add-up processor into which the multiplication results by the plurality of multipliers are input and that adds up the multiplication results, executes convolution computation in a convolutional neural network using the weights and the input data,

wherein the program causes the computer to execute the following processes:

adding up weight elements to be multiplied with elements of the input data for each of variable values of the elements of the input data by the accumulation processor,

multiplying each of the variable values of the elements of the input data with each cumulative sum value of weights corresponding to the variable values of the elements of the input data by the multiplier, and

adding up a plurality of multiplication results obtained by the multiplication by the add-up processor.

14. The non-transitory computer readable medium storing a program executed by a computer implemented in an inference device according to claim 13 , comprising:

factorizing the input data elements,

separating the factorized input data to predetermined first factor group and second factor group, and

shifting the weight element values by the number of bits corresponding to the values of the second factor group.

15. The non-transitory computer readable medium storing a program executed by a computer implemented in an inference device according to claim 14 , comprising:

fixing the second factor group at zero, and

varying the first factor group in the input data.

16. The non-transitory computer readable medium storing a program executed by a computer implemented in an inference device according to claim 15 , comprising:

providing to the accumulation processor no input data element when element value is zero in the input data and a corresponding weight element.

17. The non-transitory computer readable medium storing a program executed by a computer implemented in an inference device according to claim 13 , wherein

the inference device executes convolution computation in the convolutional neural network in parallel.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 4, 2020
From: SHIBATA, SEIYA
To: NEC CORPORATION
Reel/Frame 054268/0789 →
Priority Claims (1)
JP 2018-038028 · Mar 2, 2018 · national
Continuity (1)
Related Publication 20210004701A1 · Jan 7, 2021
Cited By (3)
US 12,265,905 US 12,367,587 US 12,579,415