IP Library Granted Patent US 11,501,138
Granted Patent B1
US 11,501,138 · App. 16/212,616 · Granted Nov 15, 2022

Control circuits for neural network inference circuit

Inventors: Kenneth Duong (San Jose, CA); Jung Ko (San Jose, CA); Steven L. Teig (Menlo Park, CA)
Assignee: PERCEIVE CORPORATION
G06N3/0481G06F9/30145G06N3/063G06N3/084G06N5/046G06N20/00
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,501,138
App. No.
16/212,616
Granted
Nov 15, 2022
Kind
B1
Abstract

Some embodiments provide a neural network inference circuit (NNIC) for executing a neural network that includes multiple computation nodes at multiple layers. The NNIC includes a set of clusters of core computation circuits and a channel, connecting the core computation circuits, that includes separate segments corresponding to each of the clusters. The NNIC includes a fabric controller circuit, a cluster controller circuit for each of the clusters, and a core controller circuit for each of the core computation circuits. The fabric controller circuit receives high-level neural network instructions from a microprocessor and parses the high-level neural network instructions.

Claims (39)

1. A neural network inference circuit for executing a neural network that comprises a plurality of computation nodes at a plurality of layers, the neural network inference circuit comprising:

a set of clusters of core computation circuits;

a channel connecting the core computation circuits, the channel comprising separate segments corresponding to each of the clusters;

a fabric controller circuit for receiving high-level neural network instructions from a microprocessor and parsing the high-level neural network instructions;

a cluster controller circuit for each of the clusters, the cluster controller circuit for a particular cluster for (i) receiving cluster configuration instructions from the fabric controller circuit, (ii) providing configuration data based on the cluster configuration instructions to circuits of the corresponding channel segment, and (iii) parsing the cluster configuration instructions to identify core configuration instructions for the cores of the particular cluster; and

a core controller circuit for each of the core computation circuits, the core controller circuit for a particular core computation circuit for (i) receiving core configuration instructions from the cluster controller of the cluster to which the particular core computation circuit belongs and (ii) providing configuration data based on the core configuration instructions to circuits of the particular core computation circuit,

wherein the fabric controller circuit (i) transmits a signal to the microprocessor to indicate completion of a first set of network instructions after the neural network inference circuit has completed execution of the first set of network instructions and (ii) receives a second set of network instructions from the microprocessor in response to the signal transmitted to the microprocessor.

2. The neural network inference circuit of claim 1 , wherein the fabric controller circuit receives the high-level neural network instructions for each input processed by the neural network inference circuit.

3. The neural network inference circuit of claim 1 , wherein the fabric controller circuit receives a set of high-level neural network instructions for each layer of the neural network.

4. The neural network inference circuit of claim 1 , wherein execution of the second set of network instructions uses output values generated from the first set of network instructions.

5. The neural network inference circuit of claim 1 , wherein the microprocessor executes a system controller program that provides the fabric controller circuit with the high-level neural network instructions.

6. The neural network inference circuit of claim 1 , wherein, based on a particular set of neural network instructions, first and second cluster controller circuits receive a same set of cluster configuration instructions from the fabric controller.

7. The neural network inference circuit of claim 6 , wherein the set of cluster configuration instructions comprises a first set of bits with specific instructions for the first cluster controller circuit and a second set of bits with specific instructions for the second cluster controller circuit.

8. The neural network inference circuit of claim 7 , wherein the first cluster controller circuit provides core configuration instructions to at least one core controller circuit based on the first set of bits and the second cluster controller circuit does not provide any core configuration instructions to any core controller circuits based on the second set of bits.

9. The neural network inference circuit of claim 7 , wherein the first cluster controller circuit provides core configuration instructions to the core controller circuits of all of the core computation circuits that belong to a first cluster based on the first set of bits and the second cluster controller circuit provides core configuration instructions to the core controller circuits of a subset of the core computation circuits that belong to a second cluster.

10. The neural network inference circuit of claim 6 , wherein the fabric controller circuit broadcasts the set of cluster configuration instructions to each of the cluster controller circuits.

11. A neural network inference circuit for executing a neural network that comprises a plurality of computation nodes at a plurality of layers, the neural network inference circuit comprising:

a set of clusters of core computation circuits;

a channel connecting the core computation circuits, the channel comprising separate segments corresponding to each of the clusters;

a fabric controller circuit for receiving high-level neural network instructions from a microprocessor and parsing the high-level neural network instructions;

a cluster controller circuit for each of the clusters, the cluster controller circuit for a particular cluster for (i) receiving cluster configuration instructions from the fabric controller circuit, (ii) providing configuration data based on the cluster configuration instructions to circuits of the corresponding channel segment, and (iii) parsing the cluster configuration instructions to identify core configuration instructions for the cores of the particular cluster; and

a core controller circuit for each of the core computation circuits, the core controller circuit for a particular core computation circuit for (i) receiving core configuration instructions from the cluster controller of the cluster to which the particular core computation circuit belongs and (ii) providing configuration data based on the core configuration instructions to circuits of the particular core computation circuit,

wherein the channel comprises (i) a dot product bus for aggregating partial dot products from the core computation circuits and from, (ii) a set of post-processing units for receiving aggregated partial dot products and performing post-processing operations to generate output values for computation nodes of the neural network, and (iii) an output bus for carrying the output values to the core computation circuits for storage.

12. The neural network inference circuit of claim 11 , wherein the cluster controller circuits provide configuration data to the dot product bus that specifies how to aggregate the partial dot products and to which post-processing units to provide the aggregated partial dot products.

13. The neural network inference circuit of claim 11 , wherein the cluster controller circuits provide configuration data to the post-processing units that specifies variable factors for the post-processing operations.

14. The neural network inference circuit of claim 11 , wherein the cluster controller circuits provide configuration data to the output bus that specifies to which one or more of the core computation circuits each output value is carried.

15. The neural network inference circuit of claim 11 , wherein the core computation circuits comprise adder trees that compute partial dot products, wherein the core controller circuits receive the partial dot products from the adder trees and provide the partial dot products to the dot product bus.

16. The neural network inference circuit of claim 15 , wherein the core controller circuits receive the output values from the output bus and store the output values in memories of the core computation circuits.

17. The neural network inference circuit of claim 16 , wherein the core configuration instructions specify memory locations for storing the output values.

18. The neural network inference circuit of claim 16 , wherein the core configuration instructions specify memory locations for reading weight values and input values for the partial dot products computed by the adder trees.

19. A neural network inference circuit for executing a neural network that comprises a plurality of computation nodes at a plurality of layers, the neural network inference circuit comprising:

a set of clusters of core computation circuits;

a channel connecting the core computation circuits, the channel comprising separate segments corresponding to each of the clusters;

a fabric controller circuit for receiving high-level neural network instructions from a microprocessor and parsing the high-level neural network instructions;

a cluster controller circuit for each of the clusters, the cluster controller circuit for a particular cluster for (i) receiving cluster configuration instructions from the fabric controller circuit, (ii) providing configuration data based on the cluster configuration instructions to circuits of the corresponding channel segment, and (iii) parsing the cluster configuration instructions to identify core configuration instructions for the cores of the particular cluster; and

a core controller circuit for each of the core computation circuits, the core controller circuit for a particular core computation circuit for (i) receiving core configuration instructions from the cluster controller of the cluster to which the particular core computation circuit belongs and (ii) providing configuration data based on the core configuration instructions to circuits of the particular core computation circuit,

wherein the core controller circuits of a particular cluster transmit signals to the cluster controller circuit of the particular cluster upon completion of a set of core configuration instructions.

20. The neural network inference circuit of claim 19 , wherein the cluster controller circuit of a particular cluster transmits a signal to the fabric controller when the cluster configuration instructions for the particular cluster are completed and the completion signals have been received from each of the core controller circuits of the particular cluster.

21. The neural network inference circuit of claim 20 , wherein the fabric controller transmits a completion signal to the microprocessor when the completion signals have been received from each of the cluster controller circuits.

Assignments (3)
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 Jan 23, 2019
From: DUONG, KENNETH; KO, JUNG; TEIG, STEVEN L.
To: PERCEIVE CORPORATION
Reel/Frame 048107/0366 →
Continuity (6)
Provisional Application 62773162 · Nov 29, 2018
Provisional Application 62773164 · Nov 29, 2018
Provisional Application 62753878 · Oct 31, 2018
Provisional Application 62742802 · Oct 8, 2018
Provisional Application 62724589 · Aug 29, 2018
Provisional Application 62660914 · Apr 20, 2018
Cited By (2)
US 12,190,230 US 12,326,914