Add-mulitply-add convolution computation for a convolutional neural network
AssigneeNEC Corporation
InventorSeiya Shibata
Life of this patent
Estimating the term…
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.
Claims17
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.
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.
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.
Dependencies are inferred from the claim text.