IP Library Granted Patent US 12,626,121
Granted Patent B1
US 12,626,121 · App. 17/199,220 · Granted May 12, 2026

Execution of machine-trained network

Inventors: Justin Tantiongloc (San Jose, CA); Brian Thomas (Vancouver, CA); Steven L. Teig (Menlo Park, CA)
Assignee: AMAZON TECHNOLOGIES, INC.
G06N3/08G06N3/04
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,626,121
App. No.
17/199,220
Granted
May 12, 2026
Kind
B1
Abstract

Some embodiments provide a method for executing a machine-trained (MT) network that includes multiple layers. For an input set for the network divided into at least two blocks of input data, the method propagates each respective block of the input data separately through a first set of the layers of the MT network to generate respective blocks of intermediate data. The method combines the blocks of intermediate data into a set of intermediate data. The method propagates the set of intermediate data together through a second set of the layers of the MT network to generate output data for the input set.

Claims (51)

1 . A method for executing a machine-trained (MT) network comprising a plurality of layers, the method comprising:

receiving and storing input data for the MT network comprising a plurality of input channels;

storing, by a first dot product core, a first activation value for a first layer of the MT network in a first memory address of the first dot product core, the first activation value associated with a first coordinate and a first input channel, and

storing, by a second dot product core, a second activation value for the first layer of the MT network in a second memory address of the second dot product core, where the second memory address is the same as the first memory address, the second activation value associated with the first coordinate and a second input channel, wherein the first activation value and the second activation value are associated with a first block of the input data;

computing, by the first dot product core and the second dot product core and based on the first activation value and the second activation value, a first intermediate value by propagating the first block of input data through a first set of layers of the MT network, wherein the first set of layers comprises a plurality of convolutional layers;

computing, by the first dot product core and the second dot product core, a second intermediate value by propagating a second block of input data through the first set of layers of the MT network, wherein the second block of input data is distinct from the first block of input data;

combining the first intermediate value and the second intermediate value into a set of intermediate data; and

propagating the set of intermediate data together through a second set of layers of the MT network to generate output data for the input data.

2 . The method of claim 1 , wherein the MT network is trained by propagating training input sets together through the entire network without dividing the training input sets into blocks of the input data.

3 . The method of claim 1 , wherein:

each of the first set of layers and the second set of layers comprises at least one convolutional layer; and

at least one of the first set of layers and the second set of layers comprises a pooling layer.

4 . The method of claim 1 , wherein:

the MT network is executed by a neural network inference circuit comprising a fixed amount of memory for weight values and intermediate activation values; and

separately propagating blocks of the input data reduces a portion of the memory allocated to the intermediate activation values, thereby increasing a portion of the memory available to the weight values.

5 . The method of claim 4 , wherein the weight values are ternary weight values such that each weight is stored in the memory as one of {0, 1, −1}, wherein increasing the portion of the memory available to the weight values enables an increase in a percentage of the weight values that are non-zero, thereby increasing accuracy of the output data generated by the MT network.

6 . The method of claim 4 , wherein the first set of layers comprises layers with the largest numbers of intermediate activation values in the MT network.

7 . The method of claim 4 , wherein:

a block of intermediate data comprising the first intermediate value and the second intermediate value is stored in one or more contiguous blocks of the memory comprising a second block of intermediate data; and

combining the first block of intermediate data and the second block of intermediate data comprises moving at least a subset of each block of intermediate data within the memory.

8 . The method of claim 4 , wherein a subset of the fixed amount of the memory of the neural network inference circuit is reused for propagation of each block of the input data through the first set of layers of the MT network.

9 . The method of claim 1 , wherein each channel comprises an equally-sized grid of input values arranged in rows and columns.

10 . The method of claim 9 , wherein each respective block of the input data comprises respective input values from a respective block of rows of the respective input values across all channels.

11 . The method of claim 10 , wherein the respective block of rows overlaps a second block of rows such that a subset of rows belongs to two different input blocks.

12 . The method of claim 11 , wherein the overlap is based on a receptive field within the input values of kernels of a final layer in the first set of layers.

13 . The method of claim 1 , wherein computing the first intermediate value comprises:

propagating the first block of the input data through the first set of layers to generate the first block of intermediate data and storing the first block of intermediate data in memory;

after storing the first block of intermediate data in memory and prior to combining the first intermediate value and the second intermediate value or propagating the set of intermediate data through the second set of the layers of the MT network, propagating a second block of the input data through the first set of layers to generate the second block of intermediate data and storing the second block of intermediate data in the memory.

14 . A non-transitory machine-readable medium storing a program which when executed by a neural network inference circuit causes the neural network inference circuit to execute a machine-trained (MT) network comprising a plurality of layers, the program comprising sets of instructions for:

receiving and storing input data for the MT network comprising a plurality of input channels;

storing, by a first dot product core, a first activation value for a first layer of the MT network in a first memory address of the first dot product core, the first activation value associated with a first coordinate and a first input channel, and

storing, by a second dot product core, a second activation value for the first layer of the MT network in a second memory address of the second dot product core, where the second memory address is the same as the first memory address, the second activation value associated with the first coordinate and a second input channel, wherein the first activation value and the second activation value are associated with a first block of the input data;

computing, by the first dot product core and the second dot product core and based on the first activation value and the second activation value, a first intermediate value by propagating the first block of input data through a first set of layers of the MT network, wherein the first set of layers comprises a plurality of convolutional layers;

computing, by the first dot product core and the second dot product core, a second intermediate value by propagating a second block of input data through the first set of layers of the MT network, wherein the second block of input data is distinct from the first block of input data;

combining the first intermediate value and the second intermediate value into a set of intermediate data; and

propagating the set of intermediate data together through a second set of layers of the MT network to generate output data for the input data.

15 . The non-transitory machine-readable medium of claim 14 , wherein the MT network is trained by propagating training input sets together through the entire network without dividing the training input sets into blocks of the input data.

16 . The non-transitory machine-readable medium of claim 14 , wherein the neural network inference circuit comprises a fixed amount of memory for weight values and intermediate activation values.

17 . The non-transitory machine-readable medium of claim 16 , wherein:

separately propagating blocks of the input data reduces a portion of the memory allocated to the intermediate activation values, thereby increasing a portion of the memory available to the weight values;

the weight values are ternary weight values such that each weight is stored in the memory as one of {0, 1, −1}; and

increasing the portion of the memory available to the weight values enables an increase in a percentage of the weight values that are non-zero thereby increasing accuracy of the output data generated by the MT network.

18 . The non-transitory machine-readable medium of claim 16 , wherein:

a block of intermediate data comprising the first intermediate value and the second intermediate value is stored in one or more contiguous blocks of the memory comprising a second block of intermediate data; and

the set of instructions for combining each block of intermediate data comprises a set of instructions for moving at least a subset of each block of intermediate data within the memory.

19 . The non-transitory machine-readable medium of claim 14 , wherein:

each channel comprises an equally-sized grid of input values arranged in rows and columns; and

each respective block of the input data comprises respective input values from a respective block of rows of the respective input values across all channels.

20 . The non-transitory machine-readable medium of claim 19 , wherein:

the respective block of rows overlaps a second block of rows such that a subset of rows belongs to two different input blocks; and

the overlap is based on a receptive field within the input values of kernels of a final layer in the first set of the plurality of layers.

Assignments (2)
BILL OF SALE Recorded Oct 31, 2024
From: AMAZON.COM SERVICES LLC
To: AMAZON TECHNOLOGIES, INC.
Reel/Frame 069288/0490 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 31, 2024
From: PERCEIVE CORPORATION
To: AMAZON.COM SERVICES LLC
Reel/Frame 069288/0731 →
Continuity (1)
Provisional Application 63117976 · Nov 24, 2020
References Cited (78)
US 5956703A · Turner et al. · 1999 [cited by applicant]
US 9904874B2 · Shoaib et al. · 2018 [cited by applicant]
US 10664310B2 · Bokhari · 2020 [cited by applicant]
US 11210586B1 · Duong · 2021 [cited by applicant]
US 11468145B1 · Duong · 2022 [cited by applicant]
US 11481612B1 · Duong · 2022 [cited by examiner]
US 11537853B1 · Afzal · 2022 [cited by applicant]
US 11568227B1 · Ko · 2023 [cited by applicant]
US 11868867B1 · Afzal · 2024 [cited by applicant]
US 11977916B2 · Kim · 2024 [cited by applicant]
US 11995533B1 · Sather · 2024 [cited by applicant]
US 20140180987A1 · Arthur et al. · 2014 [cited by applicant]
US 20160342893A1 · Ross et al. · 2016 [cited by applicant]
US 20170011006A1 · Saber et al. · 2017 [cited by applicant]
US 20180032846A1 · Yang et al. · 2018 [cited by applicant]
US 20180293691A1 · Nurvitadhi · 2018 [cited by examiner]
US 20180307950A1 · Nealis et al. · 2018 [cited by applicant]
US 20190095776A1 · Kfir et al. · 2019 [cited by applicant]
US 20190114499A1 · Delaye et al. · 2019 [cited by applicant]
US 20190130265A1 · Ling · 2019 [cited by applicant]
US 20190180176A1 · Yudanov et al. · 2019 [cited by applicant]
US 20190205780A1 · Sakaguchi · 2019 [cited by applicant]
US 20190294968A1 · Vantrease et al. · 2019 [cited by applicant]
US 20190354868A1 · Wierstra et al. · 2019 [cited by applicant]
US 20200005128A1 · Temam · 2020 [cited by applicant]
US 20200042856A1 · Datta et al. · 2020 [cited by applicant]
US 20200125926A1 · Choudhury · 2020 [cited by applicant]
US 20200272907A1 · Jin · 2020 [cited by applicant]
US 20200301739A1 · Xu · 2020 [cited by applicant]
US 20210182684A1 · Zappi · 2021 [cited by applicant]
US 20210232897A1 · Bichler · 2021 [cited by applicant]
US 20210287074A1 · Coenen · 2021 [cited by applicant]
US 20220004854A1 · Lee · 2022 [cited by applicant]
US 20220335272A1 · Elsen · 2022 [cited by applicant]
US 20220414437A1 · Liu · 2022 [cited by applicant]
Subramaniam, Arulkumar, Vismay Patel, Ashish Mishra, Prashanth Balasubramanian, and Anurag Mittal. n.d. “Bi-Modal First Impressions Recognition Using Temporally Ordered Deep Audio and Stochastic Visual Features.” Access… [cited by examiner]
Renzo Andri, Lukas Cavigelli, Davide Rossi, and Luca Benini. 2018. “YodaNN: An Architecture for Ultralow Power Binary-Weight CNN Acceleration.” IEEE Transactions on Computer-Aided Design of Integrated Circuits and Syste… [cited by examiner]
Nguyen (“A High-Throughput and Power-Efficient FPGA Implementation of YOLO CNN for Object Detection”) IEEE Transactions on Very Large Scale Integration (VLSI) Systems, vol. 27, No. 8, Aug. 2019 (Year: 2019). [cited by examiner]
Zhang (“Frequency Domain Acceleration of Convolutional Neural Networks on CPU-FPGA Shared Memory System”) FPGA '17, Feb. 22-24, 2017, Monterey, CA, USA (Year: 2017). [cited by examiner]
Wi (“Compressing sparse ternary weight convolutional neural networks for efficient hardware acceleration”) 978-1-7281-2954-9/19/$31.00 © 2019 IEEE (Year: 2019). [cited by examiner]
Cho (“MEC: Memory-efficient Convolution for Deep Neural Network”) Proceedings of the 34 th International Conference on Machine Learning, Sydney, Australia, PMLR 70, 2017. (Year: 2017). [cited by examiner]
Fan (“RED: A ReRAM-based Deconvolution Accelerator”) 978-3-9819263-2-3/Date19/c 2019 EDAA (Year: 2019). [cited by examiner]
Alwani (“Fused-layer CNN accelerators”) 2016 49th Annual IEEE/ACM International Symposium on Microarchitecture (MICRO) (Year: 2016). [cited by examiner]
Zheng (“Efficient Scheduling of Irregular Network Structures on CNN Accelerators”) IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, vol. 39, No. 11, Nov. 2020, Date of publication Oct. 2, 2… [cited by examiner]
Szegedy (“Inception-v4, Inception-ResNet and the Impact of Residual Connections on Learning”) Proceedings of the Thirty-First AAAI Conference on Artificial Intelligence (AAAI-17) (Year: 2017). [cited by examiner]
Han (“CNN-MERP: An FPGA-based memory-efficient reconfigurable processor for forward and backward propagation of convolutional neural networks”) 2016 IEEE 34th International Conference on Computer Design (ICCD) (Year: 20… [cited by examiner]
Andri, Renzo, et al., “YodaNN: An Architecture for Ultra-Low Power Binary-Weight CNN Acceleration,” IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, Mar. 14, 2017, 14 pages, IEEE, New York,… [cited by applicant]
Ardakani, Arash, et al., “Sparsely-Connected Neural Networks: Towards Efficient VLSI Implementation of Deep Neural Networks,” Proceedings of the 5th International Conference on Learning Representations (ICLR 2017), Apr.… [cited by applicant]
Bong, Kyeongryeol, et al., “A 0.62mW Ultra-Low-Power Convolutional-Neural-Network Face-Recognition Processor and a CIS Integrated with Always-On Haar-Like Face Detector,” Proceedings of 2017 IEEE International Solid-Sta… [cited by applicant]
Chen, Tianqi, et al., “Training Deep Nets with Sublinear Memory Cost,” Apr. 22, 2016, 12 pages, arXiv:1604.06174v2, Computer Research Repository (CoRR)—Cornell University, Ithaca, NY, USA. [cited by applicant]
Chen, Yu-Hsin, et al., “Eyeriss: A Spatial Architecture for Energy-Efficient Dataflow for Convolutional Neural Networks,” Proceedings of 2016 ACM/IEEE 43rd Annual International Symposium on Computer Architecture (ISCA 2… [cited by applicant]
Chen, Yu-Hsin, et al., “Using Dataflow to Optimize Energy Efficiency of Deep Neural Network Accelerators,” IEEE Micro, Jun. 14, 2017, 10 pages, vol. 37, Issue 3, IEEE, New York, NY, USA. [cited by applicant]
Cho, Minsik, et al., “MEC: Memory-Efficient Convolution for Deep Neural Network,” Jun. 21, 2017, 10 pages, arXiv:1706.06873v1, Computer Research Repository (CoRR)—Cornell University, Ithaca, NY, USA. [cited by applicant]
Courbariaux, Matthieu, et al., “Binarized Neural Networks: Training Neural Networks with Weights and Activations Constrained to +1 or −1,” Mar. 17, 2016, 11 pages, arXiv:1602.02830v3, Computing Research Repository (CoRR… [cited by applicant]
Courbariaux, Matthieu, et al., “BinaryConnect: Training Deep Neural Networks with Binary Weights during Propagations,” Proceedings of the 28th International Conference on Neural Information Processing Systems (NIPS 15),… [cited by applicant]
Emer, Joel, et al., “Hardware Architectures for Deep Neural Networks,” CICS/MTL Tutorial, Mar. 27, 2017, 258 pages, Massachusetts Institute of Technology, Cambridge, MA, USA, retrieved from http://www.rle.mit.edu/eems/w… [cited by applicant]
Fu, Yao, et al., “Embedded Vision with INT8 Optimization on Xilinx Devices,” WP490 (v1.0.1), Apr. 19, 2017, 15 pages, Xilinx, Inc., San Jose, CA, USA. [cited by applicant]
Gao, Mingyu, et al., “Tetris: Scalable and Efficient Neural Network Acceleration with 3D Memory,” Proceedings of the 22nd International Conference on Architectural Support for Programming Languages and Operating Systems… [cited by applicant]
Guo, Yiwen, et al., “Network Sketching: Exploring Binary Structure in Deep CNNs,” 2017 IEEE Conference on Computer Vision and Pattern Recognition (CVPR 2017), Jul. 21-26, 2017, 9 pages, IEEE, Honolulu, HI. [cited by applicant]
Hanlon, Jamie, “Why is So Much Memory Needed for Deep Neural Networks?,” Jan. 31, 2017, 6 pages, Graphcore, Bristol, United Kingdom, retrieved from https://www.graphcore.ai/posts/why-is-so-much-memory-needed-for-deep-ne… [cited by applicant]
He, Zhezhi, et al., “Optimize Deep Convolutional Neural Network with Ternarized Weights and High Accuracy,” Jul. 20, 2018, 8 pages, arXiv:1807.07948v1, Computing Research Repository (CoRR)—Cornell University, Ithaca, NY… [cited by applicant]
Jain, Anil K., et al., “Artificial Neural Networks: A Tutorial,” Computer, Mar. 1996, 14 pages, vol. 29, Issue 3, IEEE. [cited by applicant]
Jouppi, Norman, P., et al., “In-Datacenter Performance Analysis of a Tensor Processing Unit,” Proceedings of the 44th Annual International Symposium on Computer Architecture (ISCA '17), Jun. 24-28, 2017, 17 pages, ACM, … [cited by applicant]
Judd, Patrick, et al., “Cnvlutin2: Ineffectual-Activation-and-Weight-Free Deep Neural Network Computing,” Apr. 29, 2017, 6 pages, arXiv:1705.00125v1, Computer Research Repository (CoRR)—Cornell University, Ithaca, NY, U… [cited by applicant]
Kong, Chen, et al., “Take it in your stride: Do we need striding in CNNs?,” Dec. 7, 2017, 9 pages, arXiv:1712.02502v1, Computer Research Repository (CoRR)—Cornell University, Ithaca, NY, USA. [cited by applicant]
Moons, Bert, et al., “Envision: A 0.26-to-10TOPS/W Subword-Parallel Dynamic-Voltage-Accuracy-Frequency-Scalable Convolutional Neural Network Processor in 28nm FDSOI,” Proceedings of 2017 IEEE International Solid-State C… [cited by applicant]
Moshovos, Andreas, et al., “Exploiting Typical Values to Accelerate Deep Learning,” Computer, May 24, 2018, 13 pages, vol. 51—Issue 5, IEEE Computer Society, Washington, D.C. [cited by applicant]
Non-Published Commonly Owned Related U.S. Appl. No. 17/199,221 with similar specification, filed Mar. 11, 2021, 92 pages, Perceive Corporation. [cited by applicant]
Park, Jongsoo, et al., “Faster CNNs with Direct Sparse Convolutions and Guided Pruning,” Jul. 28, 2017, 12 pages, arXiv:1608.01409v5, Computer Research Repository (CoRR)—Cornell University, Ithaca, NY, USA. [cited by applicant]
Pedram, Ardavan, et al., “Dark Memory and Accelerator-Rich System Optimization in the Dark Silicon Era,” Apr. 27, 2016, 8 pages, arXiv:1602.04183v3, Computer Research Repository (CoRR)—Cornell University, Ithaca, Ny, Js… [cited by applicant]
Shin, Dongjoo, et al., “DNPU: An 8.1TOPS/W Reconfigurable CNN-RNN Processor for General-Purpose Deep Neural Networks,” Proceedings of 2017 IEEE International Solid-State Circuits Conference (ISSCC 2017), Feb. 5-7, 2017,… [cited by applicant]
Sim, Jaehyeong, et al., “A 1.42TOPS/W Deep Convolutional Neural Network Recognition Processor for Intelligent IoE Systems,” Proceedings of 2016 IEEE International Solid-State Circuits Conference (ISSCC 2016), Jan. 31-Fe… [cited by applicant]
Srivastava, Rupesh Kumar, et al., “Highway Networks,” Nov. 3, 2015, 6 pages, arXiv:1505.00387v2, Computer Research Repository (CoRR)—Cornell University, Ithaca, NY, USA. [cited by applicant]
Sze, Vivienne, et al., “Efficient Processing of Deep Neural Networks: A Tutorial and Survey,” Aug. 13, 2017, 32 pages, arXiv:1703.09039v2, Computer Research Repository (CoRR)—Cornell University, Ithaca, NY, USA. [cited by applicant]
Wang, Min, et al., “Factorized Convolutional Neural Networks,” 2017 IEEE International Conference on Computer Vision Workshops (ICCVW '17), Oct. 22-29, 2017, 9 pages, IEEE, Venice, Italy. [cited by applicant]
Yang, Xuan, et al., “DNN Dataflow Choice Is Overrated,” Sep. 10, 2018, 13 pages, arXiv:1809.04070v1, Computer Research Repository (CoRR)—Cornell University, Ithaca, NY, USA. [cited by applicant]
Zilly, Julian Georg, et al., “Recurrent Highway Networks,” Jul. 4, 2017, 12 pages, arXiv:1607.03474v5, Computer Research Repository (CoRR)—Cornell University, Ithaca, NY, USA. [cited by applicant]
Ardakani, Arash, et al., “An Architecture to Accelerate Convolution in Deep Neural Networks,” IEEE Transactions on Circuits and Systems I: Regular Papers, Oct. 17, 2017, 14 pages, vol. 65, No. 4, IEEE. [cited by applicant]