IP Library Granted Patent US 11,868,871
Granted Patent B1
US 11,868,871 · App. 16/584,891 · Granted Jan 9, 2024

Circuit for executing stateful neural network

Inventors: Andrew C. Mihal (San Jose, CA); Steven L Teig (Menlo Park, CA); Eric A. Sather (Palo Alto, CA)
Assignee: PERCEIVE CORPORATION
G06N3/063G06N3/044G06N3/049
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 11,868,871
App. No.
16/584,891
Granted
Jan 9, 2024
Kind
B1
Abstract

Some embodiments provide a neural network inference circuit for executing a neural network that includes multiple nodes that use state data from previous executions of the neural network. The neural network inference circuit includes (i) a set of computation circuits configured to execute the nodes of the neural network and (ii) a set of memories configured to implement a set of one or more registers to store, while executing the neural network for a particular input, state data generated during at least two executions of the network for previous inputs. The state data is for use by the set of computation circuits when executing a set of the nodes of the neural network for the particular input.

Claims (50)

1. A neural network inference circuit for executing a neural network that comprises a plurality of nodes that use state data from previous executions of the neural network, the neural network inference circuit comprising:

a set of computation circuits that executes the nodes of the neural network; and

a set of non-transitory machine-readable memories that implements a set of one or more registers to store, while executing the neural network for a particular input, state data generated during at least two executions of the network for previous inputs, the state data for use by the set of computation circuits when executing a set of the nodes of the neural network for the particular input,

wherein the set of one or more registers comprises a plurality of periodic registers, each periodic register comprising a different set of memory locations of the set of memories.

2. The neural network inference circuit of claim 1 , wherein each periodic register stores state data with a different temporal resolution and is updated at a different rate.

3. The neural network inference circuit of claim 2 , wherein a first periodic register is updated during each execution of the neural network, a second periodic register is updated during every other execution of the neural network, and a third periodic register is updated during every fourth execution of the neural network.

4. The neural network inference circuit of claim 1 , wherein the periodic registers are in phase such that every particular number of executions of the neural network all of the periodic registers are updated.

5. The neural network inference circuit of claim 1 , wherein the periodic registers are out of phase such that there is not an execution of the neural network during which all of the periodic registers are updated.

6. The neural network inference circuit of claim 1 , wherein during a particular execution of the neural network, (i) the set of computation circuits generates state data for each of the periodic registers and (ii) only a subset of the periodic registers are updated with the state data generated during the particular execution of the neural network.

7. The neural network inference circuit of claim 1 further comprising a plurality of cores, wherein each core comprises a subset of the computation circuits and a subset of the memories.

8. The neural network inference circuit of claim 7 , wherein:

the nodes of the neural network are divided into a plurality of layers;

each layer of a subset of the layers uses a subset of the state data; and

each layer of the subset is executed by the computation circuits of a subset of the cores.

9. A neural network inference circuit for executing a neural network that comprises a plurality of nodes that use state data from previous executions of the neural network, the neural network inference circuit comprising:

a set of computation circuits that executes the nodes of the neural network; and

a set of memories that implements a shift register comprising a particular number of sets of memory locations to store, while executing the neural network for a particular input, state data generated during at least two executions of the network for previous inputs, the state data for use by the set of computation circuits when executing a set of the nodes of the neural network for the particular input,

wherein:

stored state data generated during a particular execution of the neural network is stored in a first set of memory locations of the shift register during the particular execution;

a pointer is changed during successive executions of the neural network that identifies the stored state data as having been generated during different relative previous executions; and

state data generated during each of the particular number of previous executions of the neural network is stored in a different one of the sets of memory locations of the shift register.

10. The neural network inference circuit of claim 9 , wherein after the particular number of executions of the neural network, state data generated during a next execution of the neural network overwrites the data generated from the oldest of the particular number of previous executions.

11. The neural network inference circuit of claim 9 , wherein the state data stored in a subset of the sets of memory locations of the register are accessed for each execution of the neural network, wherein which of the sets of memory locations of the register are accessed for a particular execution of the neural network is determined based on the pointer.

12. A neural network inference circuit for executing a neural network that comprises a plurality of nodes that use state data from previous executions of the neural network, the neural network inference circuit comprising:

a set of computation circuits that executes the nodes of the neural network; and

a set of memories that implements a shift register comprising a plurality of memory locations to store, while executing the neural network for a particular input, state data generated during at least two executions of the network for previous inputs, the state data for use by the set of computation circuits when executing a set of the nodes of the neural network for the particular input,

wherein:

stored state data generated during a particular execution of the neural network is stored in a first set of memory locations of the shift register during the particular execution;

a pointer is changed during successive executions of the neural network that identifies the stored state data as having been generated during different relative previous executions; and

the pointer specifies which set of memory locations stores data generated during a most recent execution of the neural network.

13. The neural network inference circuit of claim 12 , wherein the set of one or more registers comprises a plurality of periodic registers, each periodic register comprising a different set of memory locations of the set of memories.

14. The neural network inference circuit of claim 12 further comprising a plurality of cores, wherein:

each core comprises a subset of the computation circuits and a subset of the memories,

the nodes of the neural network are divided into a plurality of layers;

each layer of a subset of the layers uses a subset of the state data; and

each layer of the subset is executed by the computation circuits of a subset of the cores.

15. A neural network inference circuit for executing a neural network that comprises a plurality of nodes that use state data from previous executions of the neural network, the neural network inference circuit comprising:

a set of computation circuits that executes the nodes of the neural network; and

a set of memories that implements a set of one or more registers to store, while executing the neural network for a particular input, state data generated during at least two executions of the network for previous inputs, the state data for use by the set of computation circuits when executing a set of the nodes of the neural network for the particular input,

wherein:

the neural network inference circuit comprises a plurality of cores, each core comprising a subset of the computation circuits and a subset of the memories;

the nodes of the neural network are divided into a plurality of layers;

each layer of a subset of the layers uses a subset of the state data;

each layer of the subset of layers is executed by the computation circuits of a subset of the cores; and

the state data generated during a particular execution for use by a particular layer in subsequent executions is stored in the memories of each core in a particular subset of the cores the computation circuits of which execute the particular layer.

16. The neural network inference circuit of claim 15 , wherein the data generated during a particular execution of the network for storage in the set of one or more registers is generated by a plurality of different nodes of the neural network.

17. The neural network inference circuit of claim 15 , wherein the state data for use by the particular layer in subsequent executions of the neural network is generated by a different layer during the particular execution of the neural network.

18. The neural network inference circuit of claim 15 , wherein the set of registers is a shift register comprising a plurality of memory locations.

19. The neural network inference circuit of claim 18 , wherein stored state data generated during the particular execution of the neural network is stored in a first set of memory locations of the shift register during the particular execution and shifted to different sets of memory locations of the shift register during successive executions of the neural network.

20. The neural network inference circuit of claim 18 , wherein stored state data generated during the particular execution of the neural network is stored in a first set of memory locations of the shift register during the particular execution, wherein a pointer is changed during successive executions of the neural network that identifies the stored state data as having been generated during different relative previous executions.

Assignments (5)
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE FROM AMAZON TECHNOLOGIES, INC. TO AMAZON.COM SERVICES LLC PREVIOUSLY RECORDED ON REEL 69713 FRAME 157. ASSIGNOR(S) HEREBY CONFIRMS THE CORRECTIVE ASSIGNMENT. Recorded Aug 20, 2025
From: PERCEIVE CORPORATION
To: AMAZON.COM SERVICES LLC
Reel/Frame 072489/0329 →
CORRECTIVE ASSIGNMENT TO CORRECT THE APPLICATIONS 16854891, 17982488, 18151581 PREVIOUSLY RECORDED AT REEL: 69288 FRAME: 731. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT . Recorded Dec 16, 2024
From: PERCEIVE CORPORATION
To: AMAZON TECHNOLOGIES, INC.
Reel/Frame 069713/0157 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 4, 2019
From: MIHAL, ANDREW C.; TEIG, STEVEN L.; SATHER, ERIC A.
To: PERCEIVE CORPORATION
Reel/Frame 050627/0182 →
Continuity (2)
Provisional Application 62901740 · Sep 17, 2019
Provisional Application 62888413 · Aug 16, 2019
Cited By (1)
US 12,462,350