IP Library Granted Patent US 10,810,156
Granted Patent B2
US 10,810,156 · App. 16/138,590 · Granted Oct 20, 2020

General-purpose parallel computing architecture

Inventors: Paul Burchard (Jersey City, NJ); Ulrich Drepper (New York, NY)
Assignee: Goldman Sachs & Co. LLC
G06F15/80G06F9/5072G06F15/17318G06F15/8023G06N3/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,810,156
App. No.
16/138,590
Granted
Oct 20, 2020
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 sets of parallel coprocessors, where each computing core is associated with a different one of the sets of parallel coprocessors. The coprocessors in each set of parallel coprocessors are configured to process the input data and generate output data. Each of the computing cores is configured to generate additional input data based on the output data generated by the associated set of parallel coprocessors.

Claims (55)

1. 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 of parallel coprocessors, the coprocessors in each set of parallel coprocessors configured to process at least some of the input data from at least some of the computing cores and generate output data;

wherein each of the computing cores is further configured to receive and process one or more results of at least one function applied to the output data generated by the associated set of parallel coprocessors in order to generate additional input data.

2. The apparatus of claim 1 , wherein:

a number of computing cores matches a number of coprocessors in each set of parallel coprocessors; and

each computing core is configured to provide its input data to one of the coprocessors in each set of parallel coprocessors.

3. The apparatus of claim 1 , wherein each of the computing cores is configured to communicate directly with all of the computing cores including itself via the sets of parallel coprocessors.

4. 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 of parallel coprocessors, the coprocessors in each set of parallel coprocessors configured to process at least some of the input data from at least some of the computing cores and generate output data; and

multiple reducer circuits, each computing core associated with a different one of the reducer circuits;

wherein each reducer circuit is configured to receive the output data from the coprocessors in a different one of the sets of parallel coprocessors, to apply one or more functions to the output data, and to provide one or more results to the associated computing core; and

wherein each of the computing cores is further configured to generate additional input data based on the one or more results generated by the associated reducer circuit.

5. The apparatus of claim 1 , wherein all of the computing cores are configured to broadcast the input data to the sets of parallel coprocessors simultaneously.

6. The apparatus of claim 1 , wherein the computing cores in each of multiple subsets of computing cores are configured to broadcast the input data to at least some of the sets of parallel coprocessors simultaneously.

7. The apparatus of claim 1 , wherein at least some of the computing cores are configured to transmit the input data to at least some of the sets of parallel coprocessors serially.

8. The apparatus of claim 1 , wherein:

the multiple parallel computing cores comprise N parallel computing cores;

each set of parallel coprocessors comprises N parallel coprocessors respectively associated with the N parallel computing cores; and

N is an integer greater than or equal to sixteen.

9. A system comprising:

multiple integrated circuit devices, each integrated circuit device 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 of parallel coprocessors, the coprocessors in each set of parallel coprocessors configured to process at least some of the input data from at least some of the computing cores and generate output data;

wherein each of the computing cores is further configured to receive and process one or more results of at least one function applied to the output data generated by the associated set of parallel coprocessors in order to generate additional input data; and

at least one connection coupling the integrated circuit devices.

10. The system of claim 9 , wherein, in each integrated circuit device:

a number of computing cores matches a number of coprocessors in each set of parallel coprocessors; and

each computing core is configured to provide its input data to one of the coprocessors in each set of parallel coprocessors.

11. The system of claim 9 , wherein, in each integrated circuit device, each of the computing cores is configured to communicate directly with all of the computing cores including itself via the sets of parallel coprocessors.

12. A system comprising:

multiple integrated circuit devices, each integrated circuit device 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 of parallel coprocessors, the coprocessors in each set of parallel coprocessors configured to process at least some of the input data from at least some of the computing cores and generate output data; and

multiple reducer circuits, each computing core associated with a different one of the reducer circuits;

wherein each reducer circuit is configured to receive the output data from the coprocessors in a different one of the sets of parallel coprocessors, to apply one or more functions to the output data, and to provide one or more results to the associated computing core; and

wherein each of the computing cores is further configured to generate additional input data based on the one or more results generated by the associated reducer circuit; and

at least one connection coupling the integrated circuit devices.

13. The system of claim 9 , wherein, in each integrated circuit device, all of the computing cores are configured to broadcast the input data to the sets of parallel coprocessors simultaneously.

14. The system of claim 9 , wherein, in each integrated circuit device, the computing cores in each of multiple subsets of computing cores are configured to broadcast the input data to at least some of the sets of parallel coprocessors simultaneously.

15. The system of claim 9 , wherein, in each integrated circuit device, at least some of the computing cores are configured to transmit the input data to at least some of the sets of parallel coprocessors serially.

16. The system of claim 9 , wherein, in each integrated circuit device:

the multiple parallel computing cores comprise N parallel computing cores;

each set of parallel coprocessors comprises N parallel coprocessors respectively associated with the N parallel computing cores; and

N is an integer greater than or equal to sixteen.

17. A method comprising:

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

providing the input data from the computing cores to multiple sets of parallel coprocessors, each computing core associated with a different one of the sets of parallel coprocessors;

processing the input data using the sets of parallel coprocessors to generate output data;

receiving, at each of the parallel computing cores, one or more results of at least one function applied to the output data generated by the associated set of parallel coprocessors; and

generating, using each of the parallel computing cores, additional input data based on the one or more results of the at least one function applied to the output data generated by the associated set of parallel coprocessors.

18. The method of claim 17 , wherein all of the computing cores are configured to broadcast the input data to the sets of parallel coprocessors simultaneously.

19. The method of claim 17 , wherein the computing cores in each of multiple subsets of computing cores are configured to broadcast the input data to at least some of the sets of parallel coprocessors simultaneously.

20. The method of claim 17 , wherein at least some of the computing cores are configured to transmit the input data to at least some of the sets of parallel coprocessors serially.

Continuity (4)
Continuation 15157218 · May 17, 2016
Provisional Application 62165052 · May 21, 2015
Provisional Application 62173866 · Jun 10, 2015
Related Publication 20190026248A1 · Jan 24, 2019