IP Library › Granted Patent US 11,853,156
Granted Patent B2
US 11,853,156 · App. 17/961,623 · Granted Dec 26, 2023

Error checking for systolic array computation

Inventors: Doe Hyun Yoon (Foster City, CA); Norman Paul Jouppi (Palo Alto, CA)
Assignee: Google LLC
G06F11/1004G06F15/8046
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,853,156
App. No.
17/961,623
Granted
Dec 26, 2023
Kind
B2
Abstract

Aspects of the disclosure are directed to a computation unit implementing a systolic array and configured for detecting errors while processing data on the systolic array. Checksum circuit in communication with a systolic array is configured to compute checksums and perform error detection while the systolic array processes input data. Instead of pre-generating checksums in input matrices, input matrices can be directly fed into the systolic array through the checksum circuit. On the output side, the checksum circuit can generate and compare checksums with checksums in an output matrix generated by the systolic array. Error checking the operations to generate the output matrix can be performed without delaying the operations of the systolic array, and without preprocessing the input matrices.

Claims (55)

1. A computation unit comprising:

a systolic array of processing elements, the processing elements configured to receive first input elements from a first input matrix along a first direction of the systolic array, and receive second input elements from a second input matrix along a second direction of the systolic array;

a checksum circuit configured to generate one or more groups of checksums from the first input elements while the systolic array receives the first input elements;

the processing elements further configured to generate an output matrix from the first input matrix, the second input matrix, and the one or more groups of checksums; and

an output checksum circuit configured to receive the output matrix, and determine, from the output matrix, an occurrence of one or more errors in the generation of the output matrix.

2. The computation unit of claim 1 , wherein, to determine the occurrence of one or more errors in the generation of the output matrix, the output checksum circuit is further configured to:

generate, from at least one row of the output matrix, a row checksum;

compare the row checksum with a checksum in an output checksum column; and

determine, from the comparison, whether the row checksum matches with the checksum in the output checksum column within a predetermined threshold.

3. The computation unit of claim 2 , wherein, to determine whether the row checksum matches with the checksum in the output checksum column within a predetermined threshold, the output checksum circuit is further configured to determine whether an absolute difference between the row checksum and the checksum in the output checksum column are within a predetermined threshold.

4. The computation unit of claim 1 , wherein to determine the occurrence of one or more errors in the generation of the output matrix, the output checksum circuit is further configured to:

generate, from at least one column of the output matrix, a column checksum;

compare the column checksum with a checksum in an output checksum row; and

determine, from the comparison, whether the column checksum matches with the checksum in the output checksum row within a predetermined threshold.

5. The computation unit of claim 1 , wherein the computation unit further comprises one or more checksum processing elements configured to receive checksums from the checksum circuit.

6. The computation unit of claim 1 , wherein the checksum circuit is configured to send checksums to the systolic array for processing based on receiving a control signal.

7. The computation unit of claim 6 , wherein a timing of the control signal to the checksum circuit is based on a number of time steps to load input values across the systolic array.

8. The computation unit of claim 1 , wherein, in response to the determination of the occurrence of one or more errors in the generation of the output matrix, the output checksum circuit is further configured to send an indication of the occurrence of one or more errors to one or more devices.

9. The computation unit of claim 8 , wherein the processing elements are further configured to, in response to sending the indication of the occurrence of one or more errors to the one or more devices, receive an adjusted voltage higher than a critical voltage for the computation unit.

10. The computation unit of claim 9 , wherein the processing elements are further configured to receive a first voltage lower than the critical voltage for the computation unit until receiving the adjusted voltage.

11. The computation unit of claim 1 , wherein the checksum circuit comprises 2-input 2-stage pipelined adder circuits configured to delay the generation of the checksums.

12. The computation unit of claim 1 , wherein the checksum circuit comprises:

one or more 2-cycle adder circuits; and

a plurality of registers configured to receive and send data according to respective clock frequencies.

13. A method for data processing by a computation unit, the method comprising:

receiving, by a systolic array of processing elements, first input elements from a first input matrix along a first direction of the systolic array;

receiving, by the processing elements, second input elements from a second input matrix along a second direction of the systolic array;

generating, by a checksum circuit, one or more groups of checksums from the first input elements while the systolic array receives the first input elements;

generating, by the processing elements, an output matrix from the first input matrix, the second input matrix, and the one or more groups of checksums;

receiving, by an output checksum circuit, the output matrix; and

determining, by the output checksum circuit, from the output matrix, an occurrence of one or more errors in the generation of the output matrix.

14. The method of claim 13 , wherein determining the occurrence of one or more errors in the generation of the output matrix further comprises:

generating, from at least one row of the output matrix, a row checksum;

comparing the row checksum with a checksum in an output checksum column; and

determining, from the comparison, whether the row checksum matches with the checksum in the output checksum column within a predetermined threshold.

15. The method of claim 14 , wherein determining whether the row checksum matches with the checksum in the output checksum column within a predetermined threshold further comprises determining whether an absolute difference between the row checksum and the checksum in the output checksum column are within a predetermined threshold.

16. The method of claim 13 , wherein determining the occurrence of one or more errors in the generation of the output matrix further comprises:

generating, from at least one column of the output matrix, a column checksum;

comparing the column checksum with a checksum in an output checksum row; and

determining, from the comparison, whether the column checksum matches with the checksum in the output checksum row within a predetermined threshold.

17. The method of claim 13 , further comprising:

sending, by the output checksum circuit, an indication of the occurrence of one or more errors to one or more devices; and

receiving, by the processing elements, in response to sending the indication, an adjusted voltage higher than a critical voltage for the data processing.

18. A non-transitory computer readable medium for storing instructions that, when executed by one or more processors, cause the one or more processors to performing operations for data processing by a computation unit, the operations comprising:

receiving, by a systolic array of processing elements, first input elements from a first input matrix along a first direction of the systolic array;

receiving, by the processing elements, second input elements from a second input matrix along a second direction of the systolic array;

generating, by a checksum circuit, one or more groups of checksums from the first input elements while the systolic array receives the first input elements;

generating, by the processing elements, an output matrix from the first input matrix, the second input matrix, and the one or more groups of checksums;

receiving, by an output checksum circuit, the output matrix; and

determining, by the output checksum circuit, from the output matrix, an occurrence of one or more errors in the generation of the output matrix.

19. The non-transitory computer readable medium of claim 18 , wherein determining the occurrence of one or more errors in the generation of the output matrix further comprises:

generating, from at least one row of the output matrix, a row checksum;

comparing the row checksum with a checksum in an output checksum column; and

determining, from the comparison, whether the row checksum matches with the checksum in the output checksum column within a predetermined threshold.

20. The non-transitory computer readable medium of claim 19 , wherein determining whether the row checksum matches with the checksum in the output checksum column within a predetermined threshold further comprises determining whether an absolute difference between the row checksum and the checksum in the output checksum column are within a predetermined threshold.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 7, 2022
From: YOON, DOE HYUN; JOUPPI, NORMAN PAUL
To: GOOGLE LLC
Reel/Frame 061343/0930 →
Continuity (3)
Continuation 17410558 · Aug 24, 2021
Provisional Application 63222549 · Jul 16, 2021
Related Publication 20230036421A1 · Feb 2, 2023