IP Library Granted Patent US 11,551,064
Granted Patent B2
US 11,551,064 · App. 15/981,624 · Granted Jan 10, 2023

Systolic neural network engine capable of forward propagation

Inventor: Luiz M. Franca-Neto (Sunnyvale, CA)
Assignee: Western Digital Technologies, Inc.
G06N3/063G06F15/8046G06N3/04G06N3/0481G06N3/08G06N3/084G06N5/046
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,551,064
App. No.
15/981,624
Granted
Jan 10, 2023
Kind
B2
Abstract

A method of performing computations of a neural network is disclosed comprising assigning a first processing unit to perform computations of a first node of a first layer of the neural network and assigning a second processing unit to perform computations of a second node of a second layer of the neural network. Computations of the first node are performed using the first processing unit to generate a first activation output that is transmitted to a first output systolic element of the first processing unit. The first activation output is systolically pulsed to a first input systolic element of the second processing unit and computations of the second node are performed by using the second processing unit to process at least the first activation output.

Claims (50)

1. A device for performing computations of a neural network comprising at least a first layer and a second layer, the device comprising:

a first processing unit configured to perform computations of a first node of the first layer of the neural network, the first processing unit including:

a first input systolic element;

first processing circuitry configured to receive data from the first input systolic element and perform processing according to the first node to generate a first activation output; and

a first output systolic circuitry configured to receive the first activation output from the first processing circuitry;

a second processing unit configured to perform computations of a second node of the second layer of the neural network, wherein the second processing unit includes a second input systolic element,

wherein the first output systolic circuitry is further configured to systolically pulse the first activation output directly to the second input systolic element; and

a third processing unit configured to perform computations of a third node of the first layer of the neural network, the third processing unit including a second output systolic circuitry,

wherein the first output systolic circuitry is further configured to systolically pulse the first activation output directly to the second output systolic circuitry, and wherein the first output systolic circuitry and the second output systolic circuitry comprise separate circuitry included in their respective processing units.

2. The device of claim 1 , wherein the first output systolic circuitry is further configured to systolically pulse the first activation output to the second input systolic element during a first systolic pulse, and wherein the first output systolic circuitry is further configured to systolically pulse the first activation output to the second output systolic circuitry during the first systolic pulse.

3. The device of claim 2 , wherein the second output systolic circuitry is further configured to systolically pulse a second activation output to the first output systolic circuitry during the first systolic pulse.

4. The device of claim 1 , further comprising a fourth processing unit configured to perform computations of a fourth node of the second layer of the neural network, the fourth processing unit including a third input systolic element, wherein the first output systolic circuitry is further configured to systolically pulse the first activation output to the third input systolic element.

5. The device of claim 1 , further comprising:

a first arrangement of a first plurality of processing units including the first processing unit, wherein at least a subset of the first plurality of processing units is configured to perform computations of a corresponding number of nodes of the first layer of the neural network;

a second arrangement of a second plurality of processing units including the second processing unit, wherein at least a subset of the second plurality of processing units is configured to perform computations of a corresponding number of nodes of the second layer of the neural network; and

a crossover connection between an output systolic circuitry of one of the first plurality of processing units and an input systolic element of one of the second plurality of processing units.

6. The device of claim 1 , wherein the device further includes a systolic processor chip, and wherein the first and second processing units comprise circuitry embedded in the systolic processor chip.

7. The device of claim 1 , wherein the first output systolic circuitry is further configured to tag the first activation output with an identifier, wherein the identifier identifies that the first activation output was computed by the first processing unit.

8. The device of claim 7 , wherein the first activation output systolically pulsed to the second input systolic element includes the tag.

9. The device of claim 8 , wherein the second processing unit includes second processing circuitry configured to receive the first activation output and perform processing according to the second node to generate a second activation output, and wherein the second processing unit uses the tag to identify a weight to use for processing the first activation output.

10. A method for performing computations of a neural network comprising at least a first layer and a second layer, the method comprising:

assigning a first data processing unit (DPU) to perform computations of a first node of the first layer of the neural network;

assigning a second DPU to perform computations of a second node of the second layer of the neural network;

assigning a third DPU to perform computations of a third node of the first layer of the neural network;

performing computations of the first node of the first layer using the first DPU to generate a first activation output;

transmitting the first activation output to a first output systolic circuitry of the first DPU;

systolically pulsing the first activation output from the first output systolic circuitry directly to a first input systolic element of the second DPU during a first systolic pulse;

systolically pulsing the first activation output from the first output systolic circuitry directly to a second output systolic circuitry of the third DPU during the first systolic pulse; and

performing computations of the second node of the second layer by using the second DPU to process at least the first activation output,

wherein the method is performed by at least one processor, and wherein the first output systolic circuitry and the second output systolic circuitry comprise separate circuitry included in their respective DPUs.

11. The method of claim 10 , further comprising systolically pulsing the first activation output through a plurality of input systolic elements of a corresponding plurality of DPUs assigned to perform computations of the second layer.

12. The method of claim 10 , further comprising:

systolically pulsing the first activation output from the second output systolic circuitry of the third DPU over a crossover connection to an input systolic element of a second additional DPU assigned to perform computations of the second layer.

13. The method of claim 10 , wherein the computations of the second node include a multiplication of the first activation output pulsed to the first input systolic element with a weight.

14. The method of claim 13 , wherein the weight is stored locally at the second DPU.

15. The method of claim 13 , wherein the weight is retrieved from a memory external to the second DPU.

16. The method of claim 13 , wherein the multiplication is performed by a feedback convolution engine, the method further comprising feeding the multiplied first activation output back into the feedback convolution engine during processing of another activation output.

17. The method of claim 16 , further comprising identifying the weight from among a plurality of weights based on information indicative of an origin address of the first activation output.

18. A non-transitory computer-readable medium storing computer-executable instructions that, when executed by a processor, cause the processor to perform operations comprising:

performing, using a first processing unit, computations of a first node of a neural network to generate a first activation output, the first node included in a first layer of the neural network;

systolically pulsing the first activation output from the first processing unit directly to an input systolic element of a second processing unit assigned to perform computations of a second node of the neural network, the second node included in a second layer of the neural network;

systolically pulsing the first activation output from a first output systolic circuitry of the first processing unit directly to a second output systolic circuitry of a third processing unit assigned to perform computations of a third node of the neural network, the third node included in the first layer of the neural network, wherein the first output systolic circuitry and the second output systolic circuitry comprise separate circuitry included in their respective processing units; and

performing computations of the second node by using the second processing unit to process at least the first activation output to generate a second activation output.

19. The non-transitory computer-readable medium of claim 18 , the operations further comprising, by the first processing unit, tagging the first activation output with an origin address identifying its origin as the first processing unit.

20. The non-transitory computer-readable medium of claim 19 , the operations further comprising, by the second processing unit, identifying a weight with which to multiply the first activation output based on the origin address.

21. A device for performing computations of a neural network comprising at least first, second, and third layers, the device comprising:

a first systolic processing chip including at least:

a first arrangement of first processing units, wherein at least a subset of the first processing units is assigned to perform computations of corresponding nodes of the first layer of the neural network, and

a second arrangement of second processing units, wherein at least a subset of the second processing units is assigned to perform computations of corresponding nodes of the second layer of the neural network, and

wherein the first arrangement of first processing units is configured to systolically pulse data directly to the second arrangement of second processing units and a processing unit of the at least a subset of the first processing units is configured to systolically pulse data from a first output systolic circuitry of the processing unit directly to a second systolic output circuitry of another processing unit of the at least a subset of the first processing units, wherein the first output systolic circuitry and the second output systolic circuitry comprise separate circuitry included in their respective processing units.

Assignments (10)
SECURITY AGREEMENT Recorded Apr 25, 2025
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 071050/0001 →
PARTIAL RELEASE OF SECURITY INTERESTS Recorded Apr 25, 2025
From: JPMORGAN CHASE BANK, N.A., AS AGENT
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 071382/0001 →
PATENT COLLATERAL AGREEMENT Recorded Aug 23, 2024
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS THE AGENT
Reel/Frame 068762/0494 →
CHANGE OF NAME Recorded Jun 27, 2024
From: SANDISK TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067982/0032 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 29, 2024
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067567/0682 →
PATENT COLLATERAL AGREEMENT - A&R LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 064715/0001 →
PATENT COLLATERAL AGREEMENT - DDTL LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 067045/0156 →
RELEASE OF SECURITY INTEREST AT REEL 052915 FRAME 0566 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 059127/0001 →
SECURITY INTEREST Recorded Feb 6, 2020
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS AGENT
Reel/Frame 052915/0566 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 1, 2018
From: FRANCA-NETO, LUIZ M.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 047024/0927 →
Continuity (3)
Provisional Application 62627957 · Feb 8, 2018
Provisional Application 62628076 · Feb 8, 2018
Related Publication 20190244077A1 · Aug 8, 2019