IP Library Granted Patent US 10,210,134
Granted Patent B2
US 10,210,134 · App. 15/439,777 · Granted Feb 19, 2019

General-purpose parallel computing architecture

Inventors: Paul Burchard (Jersey City, NJ); Ulrich Drepper (New York, NJ)
Assignee: Goldman Sachs & Co. LLC
G06F15/8023G06F9/50G06F9/5072G06F13/4068G06N99/005G06N3/063
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,210,134
App. No.
15/439,777
Granted
Feb 19, 2019
Kind
B2
Abstract

An apparatus includes multiple parallel computing cores, where each computing core is configured to perform one or more processing operations and generate input data. The apparatus also includes multiple parallel coprocessors associated with each computing core. The apparatus further includes multiple communication lines configured to transport the input data from each computing core to a designated one of the coprocessors associated with each of the computing cores, where the coprocessors are configured to process the input data and generate output data. In addition, the apparatus includes multiple reducer circuits, where each computing core is associated with one of the reducer circuits. Each reducer circuit is configured to receive the output data from each of the coprocessors of the associated computing core, to apply one or more functions to the output data, and to provide one or more results to the associated computing core.

Claims (74)

1. An apparatus comprising:

multiple parallel computing cores, each computing core configured to perform one or more processing operations and generate input data;

multiple sets of parallel coprocessors, each computing core associated with a different one of the sets, each computing core configured to provide the input data generated by that computing core to one of the coprocessors in each of the sets, the coprocessors in each set configured to process the input data and generate output data; and

multiple reducer circuits, each reducer circuit associated with a different one of the computing cores and a different one of the sets of coprocessors, each reducer circuit configured to receive the output data from each of the coprocessors of the associated set, to apply one or more functions to the output data, and to provide one or more results to the associated computing core.

2. The apparatus of claim 1 , wherein the computing cores, the coprocessors, and the reducer circuits are arranged laterally side-by-side in a two-dimensional layout.

3. The apparatus of claim 1 , wherein the coprocessors and reducer circuits are arranged in rows and columns, each column associated with a different one of the computing cores.

4. An apparatus comprising:

multiple parallel computing cores, each computing core configured to perform one or more processing operations and generate input data;

multiple parallel coprocessors associated with each computing core, each computing core configured to provide the input data generated by that computing core to one of the coprocessors associated with each of the computing cores, the coprocessors configured to process the input data and generate output data;

multiple reducer circuits, each computing core associated with one of the reducer circuits, each reducer circuit configured to receive the output data from each of the coprocessors of the associated computing core, to apply one or more functions to the output data, and to provide one or more results to the associated computing core, wherein the coprocessors and reducer circuits are arranged in rows and columns and each column is associated with a different one of the computing cores; and

signal lines that communicatively couple all of the computing cores to coprocessors in all of the columns.

5. An apparatus comprising:

multiple parallel computing cores, each computing core configured to perform one or more processing operations and generate input data;

multiple parallel coprocessors associated with each computing core, each computing core configured to provide the input data generated by that computing core to a designated one of the coprocessors associated with each of the computing cores, the coprocessors configured to process the input data and generate output data; and

multiple reducer circuits, each computing core associated with one of the reducer circuits, each reducer circuit configured to receive the output data from each of the coprocessors of the associated computing core, to apply one or more functions to the output data, and to provide one or more results to the associated computing core;

wherein:

the parallel computing cores comprise N computing cores; and

each computing core is associated with N parallel coprocessors.

6. An apparatus comprising:

multiple parallel computing cores, each computing core configured to perform one or more processing operations and generate input data;

multiple parallel coprocessors associated with each computing core, each computing core configured to provide the input data generated by that computing core to one of the coprocessors associated with each of the computing cores, the coprocessors configured to process the input data and generate output data; and

multiple reducer circuits, each computing core associated with one of the reducer circuits, each reducer circuit configured to receive the output data from each of the coprocessors of the associated computing core, to apply one or more functions to the output data, and to provide one or more results to the associated computing core;

wherein:

the parallel computing cores comprise at least 16 computing cores; and

each computing core is associated with at least 16 parallel coprocessors.

7. The apparatus of claim 1 , wherein:

the computing cores reside in a first integrated circuit chip; and

the coprocessors and the reducer circuits reside in a second integrated circuit chip.

8. The apparatus of claim 7 , further comprising:

at least one communication link coupling the first and second integrated circuit chips.

9. The apparatus of claim 7 , wherein at least one of:

the computing cores in the first integrated circuit chip are configured to communicate with different numbers or types of coprocessors in different second integrated circuit chips; and

the coprocessors in the second integrated circuit chip are configured to communicate with different numbers or types of computing cores in different first integrated circuit chips.

10. The apparatus of claim 1 , wherein each reducer circuit comprises processing circuitry and a memory.

11. An apparatus comprising:

multiple parallel computing cores, each computing core configured to perform one or more processing operations and generate input data; and

multiple sets of parallel coprocessors, each computing core associated with a different one of the sets, each computing core configured to provide the input data generated by that computing core to one of the coprocessors in each of the sets, the coprocessors in each set configured to process the input data and generate output data;

wherein, for each set of coprocessors:

the coprocessors in a subset of the coprocessors in the set are also configured to collectively apply one or more functions to the output data generated by the coprocessors in the set; and

one of the coprocessors in the subset is further configured to provide one or more results to the associated computing core.

12. The apparatus of claim 11 , wherein the computing cores and the coprocessors are arranged laterally side-by-side in a two-dimensional layout.

13. The apparatus of claim 11 , wherein the coprocessors are arranged in rows and columns, each column associated with a different one of the computing cores.

14. An apparatus comprising:

multiple parallel computing cores, each computing core configured to perform one or more processing operations and generate input data;

multiple parallel coprocessors associated with each computing core, each computing core configured to provide the input data generated by that computing core to one of the coprocessors associated with each of the computing cores, the coprocessors configured to process the input data and generate output data, wherein the coprocessors are arranged in rows and columns and each column is associated with a different one of the computing cores; and

signal lines that communicatively couple all of the computing cores to coprocessors in all of the columns;

wherein the coprocessors in a subset of the coprocessors for each computing core are also configured to collectively apply one or more functions to the output data, one of the coprocessors in the subset further configured to provide one or more results to the associated computing core.

15. An apparatus comprising:

multiple parallel computing cores, each computing core configured to perform one or more processing operations and generate input data; and

multiple parallel coprocessors associated with each computing core, each computing core configured to provide the input data generated by that computing core to a designated one of the coprocessors associated with each of the computing cores, the coprocessors configured to process the input data and generate output data;

wherein:

the coprocessors in a subset of the coprocessors for each computing core are also configured to collectively apply one or more functions to the output data, one of the coprocessors in the subset further configured to provide one or more results to the associated computing core;

the parallel computing cores comprise N computing cores; and

each computing core is associated with N parallel coprocessors.

16. An apparatus comprising:

multiple parallel computing cores, each computing core configured to perform one or more processing operations and generate input data; and

multiple parallel coprocessors associated with each computing core, each computing core configured to provide the input data generated by that computing core to one of the coprocessors associated with each of the computing cores, the coprocessors configured to process the input data and generate output data;

wherein:

the coprocessors in a subset of the coprocessors for each computing core are also configured to collectively apply one or more functions to the output data, one of the coprocessors in the subset further configured to provide one or more results to the associated computing core;

the parallel computing cores comprise at least 16 computing cores; and

each computing core is associated with at least 16 parallel coprocessors.

17. The apparatus of claim 11 , wherein:

the computing cores reside in a first integrated circuit chip; and

the coprocessors reside in a second integrated circuit chip.

18. The apparatus of claim 17 , further comprising:

at least one communication link coupling the first and second integrated circuit chips.

19. The apparatus of claim 17 , wherein at least one of:

the computing cores in the first integrated circuit chip are configured to communicate with different numbers or types of coprocessors in different second integrated circuit chips; and

the coprocessors in the second integrated circuit chip are configured to communicate with different numbers or types of co g cores in different first integrated circuit chips.

20. An apparatus comprising:

N parallel computing cores, each computing core configured to perform one or more processing operations and generate input data;

N×N coprocessors, wherein each computing core is associated with N parallel coprocessors, each computing core configured to provide the input data generated by that computing core to a designated one of the coprocessors associated with each of the computing cores, the coprocessors configured to process the input data and generate output data; and

N reducer circuits, each computing core associated with one of the reducer circuits, each reducer circuit configured to receive the output data from each of the coprocessors of the associated computing core, to apply one or more functions to the output data, and to provide one or more results to the associated computing core;

wherein N is an integer having a value of at least sixteen.

Assignments (2)
CHANGE OF NAME Recorded Jul 12, 2017
From: GOLDMAN, SACHS & CO.
To: GOLDMAN SACHS & CO. LLC
Reel/Frame 043177/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 22, 2017
From: BURCHARD, PAUL; DREPPER, ULRICH
To: GOLDMAN, SACHS & CO.
Reel/Frame 041346/0917 →
Continuity (4)
Continuation In Part 15157218 · May 17, 2016
Provisional Application 62173866 · Jun 10, 2015
Provisional Application 62165052 · May 21, 2015
Related Publication 20170199844A1 · Jul 13, 2017