IP Library Granted Patent US 12,379,933
Granted Patent B2
US 12,379,933 · App. 16/838,971 · Granted Aug 5, 2025

Ultra pipelined accelerator for machine learning inference

Inventors: Titash Rakshit (Austin, TX); Malik Aqeel Anwar (Atlanta, GA); Ryan Hatcher (Austin, TX)
Assignee: Samsung Electronics Co., Ltd.
G06F9/3867G06F17/16G06N3/02G06T1/20
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,379,933
App. No.
16/838,971
Granted
Aug 5, 2025
Kind
B2
Abstract

A method of pipelining inference of a neural network, which includes an i-th layer (i being an integer greater than zero), an (i+1)-th layer, and an (i+2)-th layer, includes processing a first set of i-th values of the i-th layer to generate (i+1)-th values for the (i+1)-th layer, determining a quantity of the (i+1)-th values as being sufficient for processing, and in response to the determining, processing the (i+1)-th values to generate an output value for the (i+2)-th layer while concurrently processing a second set of i-th values of the i-th layer.

Claims (42)

1. A method of pipelining inference of a neural network comprising a plurality of layers comprising an i-th layer (i being an integer greater than zero), an (i+1)-th layer, and an (i+2)-th layer, the method comprising:

processing, by a controller, a first set of i-th values of the i-th layer via an i-th composite filter to generate (i+1)-th values for the (i+1)-th layer;

determining, by the controller, a quantity of the (i+1)-th values as being sufficient for processing by an (i+1)-th filter associated with the (i+1)-th layer, based on generating the (i+1)-th values to correspond to each unit being operated on by the (i+1)-th filter, the i-th composite filter comprising a first i-th filter and a second i-th filter, and generating more than one (i+1)-th value per clock cycle based on the second i-th filter being offset from the first i-th filter on the i-th layer; and

in response to the determining, processing, by the controller, the (i+1)-th values via the (i+1)-th filter to generate an output value for the (i+2)-th layer while concurrently processing a second set of i-th values of the i-th layer via the i-th composite filter.

2. The method of claim 1 , wherein the first set of i-th values comprise pixel values of an image.

3. The method of claim 1 , wherein the first set of i-th values comprise values of a feature map generated by a previous layer of the neural network.

4. The method of claim 1 , wherein the processing of the first set of i-th values of the i-th layer comprises:

applying the i-th composite filter to the first set of i-th values of the i-th layer, such that the first i-th filter is offset from the second i-th filter by a stride length of the first i-th filter.

5. The method of claim 4 , wherein the first i-th filter is a sliding convolutional filter in a form of a p×q matrix, where p and q are integers greater than zero.

6. The method of claim 4 , wherein applying the i-th composite filter comprises:

performing a matrix multiplication operation between the i-th composite filter and ones of the first set of i-th values overlapping the i-th composite filter.

7. The method of claim 1 , wherein the determining the quantity of the (i+1)-th values as being sufficient for processing is based on a clock cycle determined by at least one of a size of the i-th composite filter, a size of an (i+1)-th filter associated with the (i+1)-th layer, a stride of the (i+1)-th filter, and a size of an image or feature map corresponding to the first and second set of i-th values of the i-th layer.

8. The method of claim 1 , wherein the processing of the first set of i-th values of the i-th layer comprises:

applying the first i-th filter to a first part of the first set of i-th values to generate a first one of the (i+1)-th values for the (i+1)-th layer; and

concurrently with applying the first i-th filter, applying the second i-th filter associated with the i-th layer to a second part of the first set of i-th values to generate a second one of the (i+1)-th values for the (i+1)-th layer.

9. The method of claim 8 , wherein the first and second parts of the first set of i-th values have overlapping values.

10. The method of claim 8 , wherein the first and second parts of the first set of i-th values do not have overlapping values.

11. The method of claim 8 , wherein the first and second i-th filters are sliding convolutional filters having a same stride and a same dimension.

12. The method of claim 8 , wherein the first and second i-th filters comprise the same weight values.

13. A system for pipelining inference of a neural network comprising a plurality of layers comprising an i-th layer (i being an integer greater than zero), an (i+1)-th layer, and an (i+2)-th layer, the system comprising:

a processor; and

a processor memory local to the processor, wherein the processor memory has stored thereon instructions that, when executed by the processor, cause the processor to perform:

processing a first set of i-th values of the i-th layer via an i-th composite filter to generate (i+1)-th values for the (i+1)-th layer;

determining a quantity of the (i+1)-th values as being sufficient for processing by an (i+1)-th filter associated with the (i+1)-th layer, based on generating the (i+1)-th values to correspond to each unit being operated on by the (i+1)-th filter, the i-th composite filter comprising a first i-th filter and a second i-th filter, and generating more than one (i+1)-th value per clock cycle based on the second i-th filter being offset from the first i-th filter on the i-th layer; and

in response to the determining, processing the (i+1)-th values via the (i+1)-th filter to generate an output value for the (i+2)-th layer while concurrently processing a second set of i-th values of the i-th layer via the i-th composite filter.

14. The system of claim 13 , wherein the processing of the first set of i-th values of the i-th layer comprises:

applying the i-th composite filter to the first set of i-th values of the i-th layer to generate the (i+1)-th values for the (i+1)-th layer, such that the first i-th filter is offset from the second i-th filter by a stride length of the first i-th filter.

15. The system of claim 13 , wherein the determining the quantity of the (i+1)-th values as being sufficient for processing is based on a clock cycle determined by at least one of a size of the i-th composite filter, a size of an (i+1)-th filter associated with the (i+1)-th layer, a stride of the (i+1)-th filter, and a size of an image or feature map corresponding to the first and second set of i-th values of the i-th layer.

16. The system of claim 13 , wherein the processing of the first set of i-th values of the i-th layer comprises:

applying the first i-th filter to a first part of the first set of i-th values to generate a first one of the (i+1)-th values for the (i+1)-th layer; and

concurrently with applying the first i-th filter, applying the second i-th filter associated with the i-th layer to a second part of the first set of i-th values to generate a second one of the (i+1)-th values for the (i+1)-th layer.

17. A configurable processing-in-memory (PIM) system configured to implement a neural network, the system comprising:

a first at least one PIM subarray configured to perform a filtering operation of an i-th composite filter of an i-th layer of the neural network (i being an integer greater than zero);

a second at least one PIM subarray configured to perform a filtering operation of an (i+1)-th filter of an (i+1)-th layer of the neural network; and

a controller configured to control the first and second at least one PIM subarrays, the controller being configured to perform:

supplying a first set of i-th values of the i-th layer to the first at least one PIM subarray and processing the first set of i-th values via an i-th composite filter to generate (i+1)-th values for the (i+1)-th layer;

determining a quantity of the (i+1)-th values as being a sufficient quantity for processing by the second at least one PIM subarray, based on generating the (i+1)-th values to correspond to each unit being operated on by the second at least one PIM subarray, the i-th composite filter comprising a first i-th filter and a second i-th filter, and generating more than one (i+1)-th value per clock cycle based on the second i-th filter being offset from the first i-th filter on the i-th layer; and

in response to the determining, supplying the (i+1)-th values to the second at least one PIM subarray to generate an output value for a subsequent layer of the neural network while concurrently supplying a second set of i-th values of the i-th layer to the first at least one PIM subarray for processing.

18. The system of claim 17 , wherein a PIM subarray of the first and second at least one PIM subarrays comprises:

a plurality of bitcells for storing a plurality of weights corresponding to a respective one of the i-th composite filter or the (i+1)-th filter.

19. The system of claim 17 , wherein the neural network comprises a convolutional neural network, and

wherein the first i-th filter is a sliding convolutional filter.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 6, 2020
From: RAKSHIT, TITASH; AQEEL, MALIK AQEEL; HATCHER, RYAN
To: SAMSUNG ELECTRONICS CO., LTD.
Reel/Frame 053121/0719 →
Continuity (4)
Provisional Application 62934355 · Nov 12, 2019
Provisional Application 62927544 · Oct 29, 2019
Provisional Application 62926292 · Oct 25, 2019
Related Publication 20210124588A1 · Apr 29, 2021
References Cited (37)
US 8941653B2 · Molnar et al. · 2015 [cited by applicant]
US 10353618B2 · Lea et al. · 2019 [cited by applicant]
US 10452578B2 · Lea · 2019 [cited by applicant]
US 10460773B2 · La Fratta · 2019 [cited by applicant]
US 20160224465A1 · Morad et al. · 2016 [cited by applicant]
US 20180260612A1 · Richards · 2018 [cited by applicant]
US 20190042411A1 · Muralimanohar et al. · 2019 [cited by applicant]
US 20190079886A1 · Malladi et al. · 2019 [cited by applicant]
US 20190164046A1 · Song et al. · 2019 [cited by applicant]
US 20190205244A1 · Smith · 2019 [cited by applicant]
US 20190324856A1 · Zhao et al. · 2019 [cited by applicant]
US 20190340508A1 · Liu et al. · 2019 [cited by applicant]
JP 201979505A · 2019 [cited by applicant]
JP 2019185784A · 2019 [cited by applicant]
WO 2018130029A1 · 2018 [cited by applicant]
Linghao Song, “PipeLayer: A Pipelined ReRAM-Based Accelerator for Deep Learning” (Year: 2017). [cited by examiner]
Kamel Abdelouahab, “Accelerating CNN inference on FPGAs: A Survey” (Year: 2018). [cited by examiner]
Liu, “Semantic Image Segmentation via Deep Parsing Network” (Year: 2015). [cited by examiner]
Alwani, “Fused-Layer CNN Accelerators”, IEEE (Year: 2016). [cited by examiner]
US Notice of Allowance dated May 23, 2023, issued in U.S. Appl. No. 16/839,043 (10 pages). [cited by applicant]
Alwani, Manoj, et al., “Fused-Layer CNN Accelerators,” 2016 49th Annual IEEE/ACM International Symposium on Microarchitecture (MICRO), Oct. 2016, 12 pages. [cited by applicant]
EPO Office Action dated Mar. 16, 2023, issued in corresponding European Patent Application No. 20187893.1 (7 pages). [cited by applicant]
EPO Extended Search Report dated Mar. 5, 2021, issued in corresponding European Patent Application No. 20187893.1 (8 pages). [cited by applicant]
Abdelouahab, K., et al. “Accelerating CNN inference on FPGAs: A Survey”, arXiv preprint arXiv:1806.01683v1, May 26, 2018, 30 pages. [cited by applicant]
Office Action for U.S. Appl. No. 16/839,043 dated Mar. 17, 2022, 26 pages. [cited by applicant]
Song, L., et al. “PipeLayer: A Pipelined ReRAM-Based Accelerator for Deep Learning”, 2017 IEEE International Symposium on High Performance Computer Architecture (HPCA), pp. 541-552, 2017. [cited by applicant]
Abdelouahab, Kamel, et al., “Accelerating CNN inference on FPGAs: A Survey,” Jan. 2018, XP055717619, 31 pages, Retrieved from the Internet: URL:https://hal.archives-ouvertes.fr/hal-01695375v1/document [retrieved on Jul.… [cited by applicant]
Shafiee, Ali, et al., “Isaac: A Convolutional Neural Network Accelerator with In-Situ Analog Arithmetic in Crossbars,” 2016 ACM/IEEE 43rd Annual International Symposium on Computer Architecture, Jun. 2016, pp. 14-26. [cited by applicant]
EPO Extended Search Report dated Apr. 7, 2021, issued in European Patent Application No. 20193354.6 (11 pages). [cited by applicant]
Liu, J., et al. Processing-in-Memory for Energy-efficient Neural Network Training: A Heterogeneous Approach, 2018 51st Annual IEEE/ACM International Symposium on Microarchitecture (MICRO), 2018, pp. 655-668. [cited by applicant]
Mittal, S., “A Survey of ReRAM-Based Architectures for Processing-In-Memory and Neural Networks,” Machine Learning & Knowledge Extraction, Apr. 30, 2018, 40 pages. [cited by applicant]
Song, L., et al., “PipeLayer: A Pipelined ReRAM-Based Accelerator for Deep Learning,” 10353 2017 IEEE International Symposium on High Performance Computer Architecture (HPCA), Austin, TX, 2017, pp. 541-552. doi: 10.1109… [cited by applicant]
Long, Y., et al. ReRam based Processing memory Architecture for Recurrent Neural Network Acceleration, IEEE, 12 pages. [cited by applicant]
Geng et al. “LP-BNN: Ultra-low-Latency BNN Interference with Layer Paralellism,” IEEE 30 [cited by applicant]
Office Action for U.S. Appl. No. 16/839,043 dated Nov. 2, 2022, 29 pages. [cited by applicant]
U.S. Final Office Action dated Jul. 29, 2022, issued in U.S. Appl. No. 16/839,043 (28 pages). [cited by applicant]
Japanese Office Action dated Sep. 24, 2024, issued in Japanese Patent Application No. 2020-178413, 7 pages. [cited by applicant]