IP Library Granted Patent US 10,504,022
Granted Patent B2
US 10,504,022 · App. 16/059,686 · Granted Dec 10, 2019

Neural network accelerator with parameters resident on chip

Inventors: Olivier Temam (Antony, FR); Harshit Khaitan (San Jose, CA); Ravi Narayanaswami (San Jose, CA); Dong Hyuk Woo (San Jose, CA)
Assignee: Google LLC
G06N3/063G06F9/3887G06F9/3895G06F13/00G06F17/16G06N3/0454G06N3/0481
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 10,504,022
App. No.
16/059,686
Granted
Dec 10, 2019
Kind
B2
Abstract

One embodiment of an accelerator includes a computing unit; a first memory bank for storing input activations and a second memory bank for storing parameters used in performing computations, the second memory bank configured to store a sufficient amount of the neural network parameters on the computing unit to allow for latency below a specified level with throughput above a specified level. The computing unit includes at least one cell comprising at least one multiply accumulate (“MAC”) operator that receives parameters from the second memory bank and performs computations. The computing unit further includes a first traversal unit that provides a control signal to the first memory bank to cause an input activation to be provided to a data bus accessible by the MAC operator. The computing unit performs computations associated with at least one element of a data array, the one or more computations performed by the MAC operator.

Claims (40)

1. An accelerator for accelerating tensor computations, comprising:

a computing unit comprising:

a first memory bank comprising a first register, the first memory bank configured for storing at least one of input activations or output activations;

a second memory bank comprising a second register, the second memory bank configured for storing neural network parameters used in performing computations, the second memory bank configured to store a sufficient amount of the neural network parameters on the computing unit to allow for latency below a specified level with throughput above a specified level for a given neural network (“NN”) model and architecture;

at least one cell comprising at least one multiply accumulate (“MAC”) operator that receives parameters from the second memory bank and performs computations;

a first tensor traversal unit in data communication with at least the first memory bank, the first tensor traversal unit configured to provide a control signal to the first memory bank to cause an input activation to be provided to a data bus accessible by the MAC operator, and

wherein the accelerator performs one or more computations associated with at least one element of a data array, the one or more computations being performed by the MAC operator and comprising, in part, a multiply operation of the input activation received from the data bus and a parameter received from the second memory bank, and

wherein the first memory bank, the second memory bank, the first tensor traversal unit, and the at least one MAC operator are located on a same die.

2. The accelerator of claim 1 , wherein the second memory bank is configured to store more than 100,000 parameters.

3. The accelerator of claim 1 , wherein the second memory bank is configured to store more than 1,000,000 parameters.

4. The accelerator of claim 1 , wherein the second memory bank is configured to store more than 100,000,000 parameters.

5. The accelerator of claim 1 , wherein the second memory bank comprises SRAM.

6. The accelerator of claim 1 , wherein the accelerator comprises a plurality of computing units, each computing unit comprising:

a first memory bank for storing at least one of input activations or output activations;

a second memory bank for storing neural network parameters used in performing computations, the second memory bank configured to store a sufficient amount of the neural network parameters on the computing unit to allow for latency below a specified level with throughput above a specified level for a given neural network (NN) model and architecture;

at least one cell comprising at least one multiply accumulate (“MAC”) operator that receives parameters from the second memory bank and performs computations;

a first tensor traversal unit in data communication with at least the first memory bank, the first tensor traversal unit configured to provide a control signal to the first memory bank to cause an input activation to be provided to a data bus accessible by the MAC operator; and

wherein the computing unit performs one or more computations associated with at least one element of a data array, the one or more computations being performed by the MAC operator and comprising, in part, a multiply operation of the input activation received from the data bus and a parameter received from the second memory bank.

7. The accelerator of claim 1 , wherein the second memory bank comprises 3D SRAM.

8. A computer-implemented method for accelerating tensor computations, comprising:

sending, by a first memory bank comprising a first register, a first input activation in response to the first memory bank receiving a control signal from a first tensor traversal unit, the first memory bank being disposed in a computing unit, and wherein the first input activation is provided by a data bus that is accessible by at least one cell of the computing unit;

receiving, by the at least one cell, one or more parameters from a second memory bank comprising a second register, the second memory bank configured for storing neural network parameters used in performing computations, the second memory bank storing a sufficient amount of the neural network parameters on the computing unit to allow for latency below a specified threshold with throughput above a specified threshold for a given neural network (“NN”) model and architecture, and wherein the at least one cell comprises at least one multiply accumulate (“MAC”) operator; and

performing, by the MAC operator, one or more computations associated with at least one element of a data array, wherein the one or more computations comprise, in part, a multiply operation of at least the first input activation accessed from the data bus and at least one parameter received from the second memory bank,

wherein the first memory bank, the second memory bank, the first tensor traversal unit, and the at least one MAC operator are located on a same die.

9. The method of claim 8 wherein the second memory bank is configured to store more than 100,000 parameters.

10. The method of claim 8 wherein the second memory bank is configured to store more than 1,000,000 parameters.

11. The method of claim 8 wherein the second memory bank comprises SRAM.

12. The method of claim 8 wherein the second memory bank comprises 3D SRAM.

13. The method of claim 8 further comprising loading the neural network parameters used in performing computations into the second memory.

14. A computer-implemented method for accelerating tensor computations, comprising:

sending, by a first memory bank comprising a first register, a first input activation in response to the first memory bank receiving a control signal, wherein the first input activation is transmitted by a data bus;

receiving, by at least one multiply accumulate (“MAC”) operator, one or more parameters from a second memory bank comprising a second register, the second memory bank configured for storing neural network parameters used in performing computations, the second memory bank storing a sufficient amount of the neural network parameters on the computing unit to allow for latency below a specified threshold and throughput above a specified threshold for a given neural network (“NN”) model and architecture; and

performing, by the MAC operator, one or more computations associated with at least one element of a data array, wherein the one or more computations comprise, in part, a multiply operation of at least the first input activation accessed from the data bus and at least one parameter received from the second memory bank,

wherein the first memory bank, the second memory bank, and the at least one MAC operator are located on a same die.

15. The method of claim 14 , wherein the second memory bank is configured to store more than 100,000 parameters.

16. The method of claim 14 , wherein the second memory bank is configured to store more than 1,000,000 parameters.

17. The method of claim 14 , wherein the second memory bank is configured to store more than 100,000,000 parameters.

18. The method of claim 14 , wherein the second memory bank comprises SRAM.

19. The method of claim 14 , wherein the second memory bank comprises 3D SRAM.

20. The method of claim 14 , further comprising, loading the neural network parameters used in performing computations into the second memory.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 9, 2018
From: TEMAM, OLIVIER; KHAITAN, HARSHIT; NARAYANASWAMI, RAVI; WOO, DONG HYUK
To: GOOGLE INC.
Reel/Frame 046608/0995 →
CHANGE OF NAME Recorded Aug 9, 2018
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 046762/0864 →
Cited By (5)
US 12,314,837 US 12,361,259 US 12,406,176 US 12,423,558 US 12,505,330