IP Library Granted Patent US 12,423,567
Granted Patent B2
US 12,423,567 · App. 17/485,073 · Granted Sep 23, 2025

Training convolution neural network on analog resistive processing unit system

Inventors: Swagath Venkataramani (White Plains, NY); Shubham Jain (Elmsford, NY); Leland Chang (New York, NY)
Assignee: International Business Machines Corporation
G06N3/065G06F17/16G06N3/084G06G7/16
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 12,423,567
App. No.
17/485,073
Granted
Sep 23, 2025
Kind
B2
Abstract

A system comprises an analog resistive processing unit (RPU) system, and one or more processors. The analog RPU system comprises an array of RPU cells. The one or more processors are configured to: configure the analog RPU system to implement a convolutional neural network comprising a convolutional layer comprising at least one kernel matrix; program the at least one array of RPU cells to store a transformed kernel matrix which is generated by applying a first transformation process to the kernel matrix using a first predefined transformation matrix; and utilize the analog RPU system to perform an analog convolution operation by performing analog matrix-vector multiplication operations using the transformed kernel matrix and input vectors of a transformed data matrix, to thereby generate a transformed convolution output matrix, wherein the transformed data matrix is generated by applying a second transformation process to a data matrix using a second predefined transformation matrix.

Claims (51)

1. A system, comprising:

an analog resistive processing unit system comprising at least one array of resistive processing unit cells; and

one or more processors configured to:

configure the analog resistive processing unit system to implement a convolutional neural network comprising a convolutional layer, wherein the convolutional layer comprises at least one kernel matrix;

program the at least one array of resistive processing unit cells to store a transformed kernel matrix, wherein the transformed kernel matrix is generated by applying a first transformation process to the at least one kernel matrix using a first predefined transformation matrix; and

utilize the analog resistive processing unit system to perform an analog convolution operation by performing analog matrix-vector multiplication operations using the transformed kernel matrix and input vectors of a transformed data matrix, to thereby generate a transformed convolution output matrix, wherein the transformed data matrix is generated by applying a second transformation process to a data matrix using a second predefined transformation matrix;

wherein the one or more processors are configured to generate the transformed data matrix by utilizing the analog resistive processing unit system to perform the second transformation process in an analog domain.

2. The system of claim 1 , wherein the analog convolution operation is performed as part of a model training process to train the convolutional neural network implemented on the analog resistive processing unit system.

3. The system of claim 1 , wherein the analog convolution operation is performed as part of an inference process that is performed using the convolutional neural network implemented on the analog resistive processing unit system.

4. The system of claim 1 , wherein the first and second transformation processes and the analog convolution operation are implemented according to a Winograd filtering function.

5. The system of claim 1 , wherein the one or more processors are configured to compute the transformed kernel matrix in a digital domain by a process which comprises multiplying the first predefined transformation matrix and the at least one kernel matrix to generate an intermediate matrix, and multiplying the intermediate matrix and a transpose of first predefined transformation matrix to thereby generate the transformed kernel matrix.

6. The system of claim 1 , wherein the convolutional layer comprises a plurality of kernel matrices, and wherein the one or more processors are configured to:

generate a corresponding transformed kernel matrix for each kernel matrix of the plurality of kernel matrices; and

store each transformed kernel matrix in a separately addressable region of the at least one array of resistive processing unit cells.

7. The system of claim 6 , wherein in utilizing the analog resistive processing unit system to perform the analog convolution operation, the one or more processors are configured perform a pipeline parallel process by applying each input vector of the transformed data matrix to a corresponding one of the transformed kernel matrices stored in the separately addressable regions of the at least one array of resistive processing unit cells.

8. The system of claim 1 , wherein in performing the second transformation process in the analog domain, the one or more processors are configured to:

program the at least one array of resistive processing unit cells to store the second predefined transformation matrix; and

perform analog matrix-vector multiplication operations by inputting vectors of the data matrix to the stored second predefined transformation matrix.

9. The system of claim 1 , wherein in performing the second transformation process in the analog domain, the one or more processors are configured to:

program the at least one array of resistive processing unit cells to store the second predefined transformation matrix;

program the at least one array of resistive processing unit cells to store a transpose of the second predefined transformation matrix;

perform analog matrix-vector multiplication operations by sequentially inputting vectors of the data matrix to the stored second predefined transformation matrix to generate a corresponding sequence of intermediate output vectors; and

perform analog matrix-vector multiplication operations by inputting the sequence of intermediate output vectors to the stored transpose of the second predefined transformation matrix to thereby generate plurality of output vectors which are combined to generate the transformed data matrix.

10. The system of claim 1 , wherein the one or more processors are configured to utilize the analog resistive processing unit system to perform an analog inverse transformation process using a third transformation matrix stored in the at least one array of resistive processing unit cells to thereby convert the transformed convolution output matrix to a convolution output matrix in a spatial domain.

11. The system of claim 1 , wherein the one or more processors are configured to utilize the analog resistive processing unit system to generate a transformed error gradient matrix which is backpropagated through layers of the convolutional neural network implemented on the analog resistive processing unit system, wherein the transformed error gradient matrix is utilized to update transformed kernel weight of the transformed kernel matrix stored in the at least one array of resistive processing unit cells.

12. A computer program product, comprising:

one or more computer readable storage media, and program instructions collectively stored on the one or more computer readable storage media, the program instructions comprising:

program instructions to configure an analog resistive processing unit system to implement a convolutional neural network comprising a convolutional layer, wherein the convolutional layer comprises at least one kernel matrix, wherein the analog resistive processing unit system comprises at least one array of resistive processing unit cells; and

program instructions to program the at least one array of resistive processing unit cells to store a transformed kernel matrix, wherein the transformed kernel matrix is generated by applying a first transformation process to the at least one kernel matrix using a first predefined transformation matrix;

program instructions to utilize the analog resistive processing unit system to perform an analog convolution operation by performing analog matrix-vector multiplication operations using the transformed kernel matrix and input vectors of a transformed data matrix, to thereby generate a transformed convolution output matrix, wherein the transformed data matrix is generated by applying a second transformation process to a data matrix using a second predefined transformation matrix; and

program instructions to generate the transformed data matrix by utilizing the analog resistive processing unit system to perform the second transformation process in an analog domain.

13. The computer program product of claim 12 , wherein the first and second transformation processes and the analog convolution operation are implemented according to a Winograd filtering function.

14. The computer program product of claim 12 , wherein the convolutional layer comprises a plurality of kernel matrices, and further comprising:

program instructions to generate a corresponding transformed kernel matrix for each kernel matrix of the plurality of kernel matrices; and

program instructions to store each transformed kernel matrix in a separately addressable region of the at least one array of resistive processing unit cells.

15. The computer program product of claim 14 , wherein the program instructions to utilize the analog resistive processing unit system to perform the analog convolution operation, comprise program instructions to perform a pipeline parallel process by applying each input vector of the transformed data matrix to a corresponding one of the transformed kernel matrices stored in the separately addressable regions of the at least one array of resistive processing unit cells.

16. The computer program product of claim 12 , wherein the program instructions to generate the transformed data matrix by utilizing the analog resistive processing unit system to perform the second transformation process in the analog domain, comprise:

program instructions to program the at least one array of resistive processing unit cells to store the second predefined transformation matrix; and

program instructions to perform analog matrix-vector multiplication operations by inputting vectors of the data matrix to the stored second predefined transformation matrix.

17. The computer program product of claim 12 , further comprising program instructions to utilize the analog resistive processing unit system to perform an analog inverse transformation process using a third transformation matrix stored in the at least one array of resistive processing unit cells to thereby convert the transformed convolution output matrix to a convolution output matrix in a spatial domain.

18. A neuromorphic computing system, comprising:

an analog resistive processing unit system comprising at least one array of resistive processing unit cells;

wherein the analog resistive processing unit system implements a convolutional neural network comprising a convolutional layer, wherein the convolutional layer comprises at least one kernel matrix;

wherein the at least one array of resistive processing unit cells stores a transformed kernel matrix, wherein the transformed kernel matrix is generated by applying a first transformation process to the at least one kernel matrix using a first predefined transformation matrix;

wherein the analog resistive processing unit system is configured to perform an analog convolution operation by performing analog matrix-vector multiplication operations using the transformed kernel matrix and input vectors of a transformed data matrix, to thereby generate a transformed convolution output matrix, wherein the transformed data matrix is generated by applying a second transformation process to a data matrix using a second predefined transformation matrix; and

wherein the at least one array of resistive processing unit cells stores the second predefined transformation matrix, and the transformed data matrix is generated by utilizing the analog resistive processing unit system performing the second transformation process in an analog domain.

19. The neuromorphic computing system of claim 18 , wherein the second transformation process is performed in the analog domain by performing analog matrix-vector multiplication operations by inputting vectors of the data matrix to the stored second predefined transformation matrix.

20. The neuromorphic computing system of claim 18 , wherein the second transformation process is performed in the analog domain by:

storing a transpose of the second predefined transformation matrix in the at least one array of resistive processing unit cells;

performing analog matrix-vector multiplication operations by sequentially inputting vectors of the data matrix to the stored second predefined transformation matrix to generate a corresponding sequence of intermediate output vectors; and

performing analog matrix-vector multiplication operations by inputting the sequence of intermediate output vectors to the stored transpose of the second predefined transformation matrix to thereby generate plurality of output vectors which are combined to generate the transformed data matrix.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 24, 2021
From: VENKATARAMANI, SWAGATH; JAIN, SHUBHAM; CHANG, LELAND
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 057596/0332 →
Continuity (1)
Related Publication 20230099608A1 · Mar 30, 2023
References Cited (27)
US 10073816B1 · Lu et al. · 2018 [cited by applicant]
US 10482155B2 · Werner et al. · 2019 [cited by applicant]
US 20170316828A1 · Hu · 2017 [cited by examiner]
US 20170344876A1 · Brothers · 2017 [cited by examiner]
US 20180075338A1 · Gokmen · 2018 [cited by examiner]
US 20190114536A1 · Tsung et al. · 2019 [cited by applicant]
US 20190130250A1 · Park et al. · 2019 [cited by applicant]
US 20190179869A1 · Park · 2019 [cited by examiner]
US 20190205741A1 · Gupta · 2019 [cited by examiner]
US 20190392297A1 · Lau et al. · 2019 [cited by applicant]
US 20200019851A1 · Mehrabian · 2020 [cited by examiner]
US 20200151541A1 · Meng et al. · 2020 [cited by applicant]
US 20200234124A1 · Park · 2020 [cited by examiner]
US 20210073650A1 · Reisser · 2021 [cited by examiner]
US 20210089610A1 · Kwon · 2021 [cited by examiner]
US 20220414183A1 · Zhang · 2022 [cited by examiner]
Lin, Jilan. “CNNWire: Boosting Convolutional Neural Network with Winograd on ReRAM Based Accelerators.” ACM Conferences, May 13, 2019, dl.acm.org/doi/10.1145/3299874.3318018. (Year: 2019). [cited by examiner]
P. Chi et al., “Prime: A Novel Processing-in-Memory Architecture for Neural Network Computation in ReRAM-Based Main Memory,”2016 ACM/IEEE 43rd Annual International Symposium on Computer Architecture (ISCA), Seoul, Korea… [cited by examiner]
T. Gokem et al., “Acceleration of Deep Neural Network Training with Resistive Cross-Point Devices: Design Considerations,” Frontiers in Neuroscience, vol. 10, No. 333, Jul. 2016, 13 pages. [cited by applicant]
T. Gokem et al., “Training Deep Convolutional Neural Networks with Resistive Cross-Point Devices,” Frontiers in Neuroscience, vol. 11, No. 538, Oct. 2017, 13 pages. [cited by applicant]
X. Liu et al., “Efficient Sparse-Winograd Convolutional Neural Networks,” arXiv:1802.06367v1, Feb. 18, 2018, 10 pages. [cited by applicant]
A. Lavin et al., “Fast Algorithms for Convolutional Neural Networks,” arXiv:1509.09308v2, Nov. 10, 2015, 9 pages. [cited by applicant]
M. Mathieu et al., “Fast Training of Convolutional Networks through FFTs,” arXiv:1312.5851v5, Mar. 6, 2014, 9 pages. [cited by applicant]
N. Vasilache et al., “Fast Convolutional Nets with fbfft: A GPU Performance Evaluation,” arXiv:1412.7580v3, Apr. 10, 2015, 17 pages. [cited by applicant]
M. Rasch et al. “Efficient ConvNets for Analog Arrays,” arXiv:1807.01356v1, Jul. 3, 2018, 12 pages. [cited by applicant]
P. Mell et al., “The NIST Definition of Cloud Computing,” Recommendations of the National Institute of Standards and Technology, Special Publication 800-145, Sep. 2011, 7 pages. [cited by applicant]
S. Winograd, “Arithmetic Complexity of Computations,” vol. 33, Society for Industrial and Applied Mathematics, Third Printing 1990, 100 pages. [cited by applicant]