IP Library Granted Patent US 10,515,303
Granted Patent B2
US 10,515,303 · App. 16/088,035 · Granted Dec 24, 2019

Wavelet representation for accelerated deep learning

Inventors: Sean Lie (Los Gatos, CA); Gary R. Lauterbach (Los Altos, CA); Michael Edwin James (San Carlos, CA); Michael Morrison (Sunnyvale, CA); Srikanth Arekapudi (Santa Clara, CA)
Assignee: Cerebras Systems Inc.
G06N3/063G06F9/30192G06F9/324G06F9/3836G06F9/3887G06F9/4881G06F17/16G06N3/0454
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,515,303
App. No.
16/088,035
Filed
Sep 24, 2018
Granted
Dec 24, 2019
Kind
B2
Art Unit
2121
USPC
706/43
Abstract

Techniques in advanced deep learning provide improvements in one or more of accuracy, performance, and energy efficiency. An array of processing elements performs flow-based computations on wavelets of data. Each processing element has a compute element with dedicated storage and a routing element. Each router enables communication with nearest neighbors in a 2D mesh. The communication is via wavelets in accordance with a representation comprising an index specifier, a virtual channel specifier, a task specifier, a data element specifier, and an optional control/data specifier. The virtual channel specifier and the task specifier are associated with one or more instructions. The index specifier and the data element are optionally associated with operands of the one or more instructions.

Claims (53)

1. A method comprising:

sending a wavelet from a sending processing element to a receiving processing element via a fabric coupling the sending processing element and the receiving processing element, the wavelet comprising a color field, a control field, an optional index field, and a data field, wherein the sending is in accordance with a virtual channel specified by the color field, and the control field is enabled to indicate a mutually exclusive one of a control state and a data state;

in the receiving processing element and responsive to the wavelet being chosen for processing, conditionally executing one or more instructions beginning at an instruction address;

in the receiving processing element and responsive to the control field indicating the control state, conditionally determining the instruction address based at least in part on the optional index field;

in the receiving processing element and responsive to the control field indicating the data state, conditionally determining the instruction address based at least in part on the color field; and

in the receiving processing element and responsive to the wavelet being chosen for processing, conditionally using information from the data field as an input operand to an operation performed by the receiving processing element.

2. The method of claim 1 , wherein the conditionally executing is dependent on a wavelet-indicator enabled to indicate a mutually exclusive one of a task-initiation state and a data-processing state, and further comprising, in the receiving processing element, setting the wavelet-indicator to the task-initiation state responsive to executing a terminate instruction and setting the wavelet-indicator to the data-processing state responsive to initiating a task.

3. The method of claim 2 , wherein the wavelet is a first wavelet, the instruction address is a first instruction address, and the initiating the task comprises determining a second instruction address based at least in part on a second wavelet received by the receiving processing element.

4. The method of claim 2 , wherein the wavelet is a first wavelet, the control field is a first control field; further comprising, in the receiving processing element, processing an operand descriptor comprising a field; and wherein the field indicates that receiving, associated with the operand descriptor, a second wavelet comprising a second color field indicating the control state, is to result in the wavelet-indicator being set to the task-initiation state.

5. The method of claim 1 , wherein the information is in accordance with one of a floating-point value and an integer value.

6. The method of claim 1 , wherein the wavelet is in accordance with one of a plurality of mutually exclusive formats comprising a sparse format and a dense format, the sparse format is in accordance with the wavelet comprising the optional index field and the data field comprising a single data element, the dense format is in accordance with the data field comprising a plurality of data elements;

and further comprising, in the receiving processing element, accessing a data-indicator to determine which of the formats the wavelet is in accordance with.

7. The method of claim 6 , wherein the data-indicator is enabled to indicate a mutually exclusive one of a single-instruction-single-data state and a single-instruction-multiple-data state.

8. The method of claim 7 , wherein the data-indicator is set in accordance with information from an operand descriptor of a particular instruction.

9. The method of claim 6 , further comprising, when the wavelet is in accordance with the sparse format, the conditionally using information from the data field comprises using the single data element as the input operand.

10. The method of claim 6 , further comprising, in the receiving processing element and when the wavelet is in accordance with the sparse format, using information from the optional index field at least in part to determine one or more of: an identifier of a neuron of a neural network, an identifier of a portion of a vector, and an identifier of a portion of a matrix.

11. The method of claim 10 , wherein the portion of the vector comprises an element of the vector.

12. The method of claim 10 , wherein the portion of the matrix comprises an element of the matrix.

13. The method of claim 6 , further comprising, when the wavelet is in accordance with the dense format, the conditionally using information from the data field comprises using the plurality of data elements as the input operand.

14. The method of claim 13 , wherein the operation is in accordance with SIMD processing.

15. The method of claim 1 , wherein the conditionally determining the instruction address based at least in part on the index field and the conditionally determining the instruction address based at least in part on the color field are based at least in part on a same base register.

16. The method of claim 1 , wherein the conditionally determining the instruction address based at least in part on the color field comprises interpreting contents of the color field as an integer and computing an integer multiple of the integer.

17. The method of claim 1 , wherein the wavelet comprises a data field and at least one of the one or more instructions uses at least a portion of the data field as an operand.

18. The method of claim 1 , further comprising, in the receiving processing element, receiving within a same clock cycle the color field, the control field, and the optional index field.

19. The method of claim 1 , wherein the sending processing element and the receiving processing element are fabricated via wafer-scale integration.

20. The method of claim 1 , wherein the sending processing element and the receiving processing element implement at least portions of a neuron of a neural network.

21. The method of claim 1 , wherein the virtual channel implements at least a portion of connectivity between neurons of a neural network.

22. A system comprising:

means for sending a wavelet from a sending processing element to a receiving processing element via a fabric coupling the sending processing element and the receiving processing element, the wavelet comprising a color field, a control field, an optional index field, and a data field, wherein the means for sending is operable in accordance with a virtual channel specified by the color field, and the control field is enabled to indicate a mutually exclusive one of a control state and a data state;

in the receiving processing element and responsive to the wavelet being chosen for processing, means for conditionally executing one or more instructions beginning at an instruction address;

in the receiving processing element and responsive to the control field indicating the control state, means for conditionally determining the instruction address based at least in part on the optional index field;

in the receiving processing element and responsive to the control field indicating the data state, means for conditionally determining the instruction address based at least in part on the color field; and

in the receiving processing element and responsive to the wavelet being chosen for processing, means for conditionally using information from the data field as an input operand to an operation performed by the receiving processing element.

23. The system of claim 22 , wherein the means for conditionally executing is dependent on a wavelet-indicator enabled to indicate a mutually exclusive one of a task-initiation state and a data-processing state, and further comprising, in the receiving processing element, means for setting the wavelet-indicator to the task-initiation state responsive to executing a terminate instruction and setting the wavelet-indicator to the data-processing state responsive to initiating a task.

24. The system of claim 23 , wherein the wavelet is a first wavelet, the instruction address is a first instruction address, and the means for initiating the task comprises means for determining a second instruction address based at least in part on a second wavelet received by the receiving processing element.

25. The system of claim 23 , wherein the wavelet is a first wavelet, the control field is a first control field; further comprising, in the receiving processing element, means for processing an operand descriptor comprising a field; and wherein the field indicates that receiving, associated with the operand descriptor, a second wavelet comprising a second color field indicating the control state, is to result in the wavelet-indicator being set to the task-initiation state.

26. The system of claim 22 , wherein the information is in accordance with one of a floating-point value and an integer value.

27. The system of claim 22 , wherein the wavelet is in accordance with one of a plurality of mutually exclusive formats comprising a sparse format and a dense format, the sparse format is in accordance with the wavelet comprising the optional index field and the data field comprising a single data element, the dense format is in accordance with the data field comprising a plurality of data elements; and further comprising, in the receiving processing element, means for accessing a data-indicator to determine which of the formats the wavelet is in accordance with.

28. The system of claim 27 , wherein the data-indicator is enabled to indicate a mutually exclusive one of a single-instruction-single-data state and a single-instruction-multiple-data state.

29. The system of claim 28 , wherein the data-indicator is set in accordance with information from an operand descriptor of a particular instruction.

30. The system of claim 27 , wherein when the wavelet is in accordance with the sparse format, the means for conditionally using information from the data field uses the single data element as the input operand.

31. The system of claim 27 , further comprising, in the receiving processing element and when the wavelet is in accordance with the sparse format, means for using information from the optional index field at least in part to determine one or more of: an identifier of a neuron of a neural network, an identifier of a portion of a vector, and an identifier of a portion of a matrix.

32. The system of claim 31 , wherein the portion of the vector comprises an element of the vector.

33. The system of claim 31 , wherein the portion of the matrix comprises an element of the matrix.

34. The system of claim 27 , wherein when the wavelet is in accordance with the dense format, the means for conditionally using information from the data field uses the plurality of data elements as the input operand.

35. The system of claim 34 , wherein the operation is in accordance with SIMD processing.

36. The system of claim 22 , wherein the means for conditionally determining the instruction address based at least in part on the index field and the means for conditionally determining the instruction address based at least in part on the color field are based at least in part on a same base register.

37. The system of claim 22 , wherein the means for conditionally determining the instruction address based at least in part on the color field comprises means for interpreting contents of the color field as an integer and means for computing an integer multiple of the integer.

38. The system of claim 22 , wherein the wavelet comprises a data field and at least one of the one or more instructions uses at least a portion of the data field as an operand.

39. The system of claim 22 , further comprising, in the receiving processing element, means for receiving within a same clock cycle the color field, the control field, and the optional index field.

40. The system of claim 22 , wherein the sending processing element and the receiving processing element are fabricated via wafer-scale integration.

41. The system of claim 22 , wherein the sending processing element and the receiving processing element implement at least portions of a neuron of a neural network.

42. The system of claim 22 , wherein the virtual channel implements at least a portion of connectivity between neurons of a neural network.

Assignments (2)
SECURITY INTEREST Recorded Jun 18, 2026
From: CEREBRAS SYSTEMS INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS THE COLLATERAL AGENT
Reel/Frame 075845/0844 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 9, 2019
From: LIE, SEAN; LAUTERBACH, GARY R.; JAMES, MICHAEL EDWIN; MORRISON, MICHAEL; AREKAPUDI, SRIKANTH
To: CEREBRAS SYSTEMS INC.
Reel/Frame 049703/0542 →
Continuity (13)
Provisional Application 62486372 · Apr 17, 2017
Provisional Application 62517949 · Jun 11, 2017
Provisional Application 62520433 · Jun 15, 2017
Provisional Application 62522065 · Jun 19, 2017
Provisional Application 62522081 · Jun 19, 2017
Provisional Application 62542645 · Aug 8, 2017
Provisional Application 62542657 · Aug 8, 2017
Provisional Application 62580207 · Nov 1, 2017
Provisional Application 62628773 · Feb 9, 2018
Provisional Application 62628784 · Feb 9, 2018
Provisional Application 62652933 · Apr 5, 2018
Provisional Application 62655210 · Apr 9, 2018
Related Publication 20190258919A1 · Aug 22, 2019
Cited By (12)
US 12,217,147 US 12,217,160 US 12,260,317 US 12,265,905 US 12,299,068 US 12,299,555 US 12,518,146 US 12,579,416 US 12,639,557 US 12,670,369 US 12,675,678 US 12,699,873