Convolutional neural networks using resistive processing unit array

US9646243B1 · US · B1

Patent metadata
FieldValue
Publication numberUS-9646243-B1
Application numberUS-201615262606-A
CountryUS
Kind codeB1
Filing dateSep 12, 2016
Priority dateSep 12, 2016
Publication dateMay 9, 2017
Grant dateMay 9, 2017

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Technical solutions are described for implementing a convolutional neural network (CNN) using resistive processing unit (RPU) array. An example method includes configuring an RPU array corresponding to a convolution layer in the CNN based on convolution kernels of the layer. The method further includes performing forward pass computations via the RPU array by transmitting voltage pulses corresponding to input data to the RPU array, and storing values corresponding to output currents from the RPU arrays as output maps. The method further includes performing backward pass computations via the RPU array by transmitting voltage pulses corresponding to error of the output maps, and storing the output currents from the RPU arrays as backward error maps. The method further includes performing update pass computations via the RPU array by transmitting voltage pulses corresponding to the input data of the convolution layer and the error of the output maps to the RPU array.

First claim

Opening claim text (preview).

What is claimed is: 1. A computer implemented method for implementing a convolutional neural network (CNN) using resistive processing unit (RPU) array, the method comprising: configuring an RPU array corresponding to a convolution layer in the CNN based on convolution kernels of the convolution layer; performing forward pass computations for the CNN via the RPU array by: transmitting voltage pulses corresponding to input data of the convolution layer to the RPU array; and storing values corresponding to output currents from the RPU arrays as output maps; performing backward pass computations for the CNN via the RPU array by: transmitting voltage pulses corresponding to error of the output maps of the convolution layer to the RPU array; and storing values corresponding to the output currents from the RPU arrays as backward error maps; performing update pass computations for the CNN via the RPU array by: transmitting voltage pulses corresponding to the input data of the convolution layer and the error of the output maps to the RPU array. 2. The computer implemented method of claim 1 , wherein the RPU array comprises a plurality of RPU devices. 3. The computer implemented method of claim 1 , wherein an RPU device from the RPU array comprises: a first terminal; a second terminal; and an active region having a conduction state; wherein the active region is configured to locally perform a data storage operation to store weights of the CNN; and wherein the active region is further configured to locally perform a data processing operation to update the weights of the CNN. 4. The computer implemented method of claim 3 , wherein a change in the conduction state comprises a non-linear change based on at least one first encoded signal applied to a first terminal and at least one second encoded signal applied to the second terminal of the RPU device. 5. The computer implemented method of claim 1 , wherein the RPU array sums currents from an entire row or column of resistive processing units to form an output current. 6. The computer implemented method of claim 1 , wherein configuring the RPU array for the convolution layer comprises: initiating the RPU to include M columns and k 2 N rows, wherein M is a number of convolution kernel banks, k is a number of rows in a convolution kernels, and N is a number of convolution kernels in each convolution kernel bank. 7. The computer implemented method of claim 1 , further comprising: converting the input data to column vectors based on dimensions of the convolution kernel. 8. The computer implemented method of claim 1 , further comprising: transmitting the results of the forward pass and backward pass computations from the RPU array to another RPU array that implements a subsequent convolution layer of the CNN. 9. A system facilitating training a convolution layer of a convolutional neural network (CNN) using resistive processing unit (RPU) arrays, the system comprising: an RPU array, which comprises a plurality of RPUs; and a processor configured to control electric voltage across the RPUs from the RPU array, wherein the processor is configured to: configure the RPU array corresponding to the convolution layer based on dimensions associated with convolution kernels of the convolution layer; perform forward pass computations for the CNN via the RPU array by: transmitting voltage pulses corresponding to input data of the convolution layer to the RPU array; and storing values corresponding to output currents from the RPU arrays as output maps; perform backward pass computations for the CNN via the RPU array by: transmitting voltage pulses corresponding to error of the output maps of the convolution layer to the RPU array; and storing values corresponding to the output currents from the RPU array as backward error maps; perform update pass computations for the CNN via the RPU array by: transmitting voltage pulses corresponding to the input data of the convolution layer and the error of the output maps to the RPU array; and update weights of RPU devices of the RPU array. 10. The system of claim 9 , wherein the RPU array comprises: a set of conductive row wires; a set of conductive column wires configured to form a plurality of crosspoints at intersections between the set of conductive row wires and the set of conductive column wires; and a two-terminal RPU at each of the plurality of crosspoints. 11. The system of claim 10 , wherein the two-terminal RPU comprises: a first terminal; a second terminal; and an active region having a conduction state; and wherein the active region is configured to effect a non-linear change in the conduction state based on at least one first encoded signal applied to the first terminal and at least one second encoded signal applied to the second terminal. 12. The system of claim 11 , wherein the non-linear change comprises a rectifying non-linear change or a saturating non-linear change. 13. The system of claim 11 , wherein the non-linear change comprises an exponential non-linear change. 14. The system of claim 10 , wherein the RPU array sums currents from an entire row or column of resistive processing units to form an output current. 15. The system of claim 9 , wherein the processor configures the RPU array for the convolution layer by initiating the RPU to include M columns and k 2 N rows, wherein M is a number of convolution kernel banks, k is a number of rows and columns in a convolution kernels, and N is a number of convolution kernels in each convolution kernel bank. 16. A computer program product for training a convolution layer of a convolutional neural network (CNN) using resistive processing unit (RPU) arrays, the computer program product comprising a computer readable storage medium, the computer readable storage medium comprising computer executable instructions, wherein the computer readable storage medium comprises instructions to: configure an RPU array corresponding to the convolution layer based on dimensions associated with convolution kernels of the convolution layer; perform forward pass computations for the CNN via the RPU array by: transmitting voltage pulses corresponding to input data of the convolution layer to the RPU array; and storing values corresponding to output currents from the RPU arrays as output maps; perform backward pass computations for the CNN via the RPU array by: transmitting voltage pulses corresponding to error of the output maps of the convolution layer to the RPU array; and storing values corresponding to the output currents from the RPU array as backward error maps; perform update pass computations for the CNN via the RPU array by: transmitting voltage pulses corresponding to the input data of the convolution layer and the error of the output maps to the RPU array; and update weights of RPU devices from the RPU array. 17. The computer program product of claim 16 , wherein configuring the RPU array for the convolution layer comprises initiating the RPU to include M columns and k 2 N rows, wherein M is a number of convolution kernel banks, k is a number of rows and the columns in a convolution kernels, and N is a number of convolution kernels in each convolution kernel bank. 18. The computer program product of claim 16 , wherein the computer readable storage medium further comprises instructions to convert the input data to column vectors based on dimensions of the convolution kernel. 19. The non-transitory computer program product of claim 16 , wherein the

Assignees

Inventors

Classifications

  • Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons · CPC title

  • using electronic means · CPC title

  • G06N3/065Primary

    Analogue means · CPC title

  • Combinations of networks · CPC title

  • Learning methods · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9646243B1 cover?
Technical solutions are described for implementing a convolutional neural network (CNN) using resistive processing unit (RPU) array. An example method includes configuring an RPU array corresponding to a convolution layer in the CNN based on convolution kernels of the layer. The method further includes performing forward pass computations via the RPU array by transmitting voltage pulses corresp…
Who is the assignee on this patent?
IBM
What technology area does this patent fall under?
Primary CPC classification G06N3/065. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue May 09 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (B1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 7 related publications on this page (citations in our corpus or others sharing the same primary CPC).