IP Library › Granted Patent US 10,474,600
Granted Patent B2
US 10,474,600 · App. 15/825,047 · Granted Nov 12, 2019

Heterogeneous accelerator for highly efficient learning systems

Inventors: Krishna T. Malladi (San Jose, CA); Hongzhong Zheng (Los Gatos, CA)
Assignee: SAMSUNG ELECTRONICS CO., LTD.
G06F13/28G06F9/445G06F9/4806G06F2015/768
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,474,600
App. No.
15/825,047
Granted
Nov 12, 2019
Kind
B2
Abstract

An apparatus may include a heterogeneous computing environment that may be controlled, at least in part, by a task scheduler in which the heterogeneous computing environment may include a processing unit having fixed logical circuits configured to execute instructions; a reprogrammable processing unit having reprogrammable logical circuits configured to execute instructions that include instructions to control processing-in-memory functionality; and a stack of high-bandwidth memory dies in which each may be configured to store data and to provide processing-in-memory functionality controllable by the reprogrammable processing unit such that the reprogrammable processing unit is at least partially stacked with the high-bandwidth memory dies. The task scheduler may be configured to schedule computational tasks between the processing unit, and the reprogrammable processing unit.

Claims (48)

1. An apparatus, comprising:

a heterogeneous computing environment controlled, at least in part, by a task scheduler, the heterogeneous computing environment comprising:

the task scheduler;

a processing unit having fixed logical circuits configured to execute instructions;

a reprogrammable processing unit having reprogrammable logical circuits configured to execute instructions that include instructions to control processing-in-memory functionality; and

a stack of high-bandwidth memory dies, each configured to store data and to provide processing-in-memory functionality controllable by the reprogrammable processing unit, wherein the reprogrammable processing unit is at least partially stacked with the high-bandwidth memory dies,

wherein the task scheduler is configured to schedule a first portion of a computational task to be executed by the processing unit and a second portion of the computational task to be executed by the reprogrammable processing unit,

wherein the task scheduler, the processing unit, the reprogrammable processing unit and the stack of high-bandwidth memory dies are on an interposer die, and

wherein the reprogrammable processing unit is further configured to determine if a triggering event that is based on a completion of the first portion of the computational task has occurred before copying data related to the computational task from a central memory to the high-bandwidth memory dies.

2. The apparatus of claim 1 , wherein the processing unit comprises a graphical processing unit.

3. The apparatus of claim 1 , wherein the processing unit is configured to access data stored in the high-bandwidth memory dies via remote direct memory accesses; and

wherein the reprogrammable processing unit includes a direct memory access circuit configured to service remote direct memory accesses from the processing unit, wherein the remote direct memory accesses occur to the high-bandwidth memory dies.

4. The apparatus of claim 1 , wherein the processing unit comprises a register memory configured to stage data accesses from the high-bandwidth memory dies.

5. The apparatus of claim 1 , wherein the processing unit is configured to pause execution of the first portion of the computational task, and wait to offload execution of the second portion of the computational task to the reprogrammable processing unit based, at least in part, upon a flag based synchronization protocol.

6. The apparatus of claim 5 , wherein the processing unit is configured to poll the reprogrammable processing unit to determine if the reprogrammable processing unit is ready to execute the second portion of the computational task.

7. The apparatus of claim 5 , wherein the task scheduler is further configured to inform the processing unit that the reprogrammable processing unit is ready to execute the second portion of the computational task.

8. An apparatus, comprising:

a heterogeneous computing environment controlled, at least in part, by a central processing unit, the heterogeneous computing environment comprising:

the central processing unit configured to assign a first portion of a computational task to be executed by a fixed processing unit and a second portion of the computational task to be executed by a reprogrammable processing unit;

the fixed processing unit having fixed logical circuits configured to execute instructions;

the reprogrammable processing unit having reprogrammable logical circuits configured to execute instructions that include instructions to control processing-in-memory functionality;

a stack of high-bandwidth memory dies, each configured to store data and to provide processing-in-memory functionality controllable by the reprogrammable processing unit, wherein the reprogrammable processing unit is at least partially stacked with the high-bandwidth memory dies;

a central memory comprising a buffer portion reserved for the fixed processing unit, and a buffer portion reserved for the reprogrammable processing unit; and

an interposer die, the central processing unit, the fixed processing unit, the reprogrammable processing unit, the stack of high-bandwidth memory dies and the central memory being on the interposer die,

wherein the reprogrammable processing unit is configured to copy data related to the computational task from the central memory to the high-bandwidth memory dies before executing the second portion of the computational task upon the data, and

wherein the reprogrammable processing unit is further configured to determine if a triggering event that is based on a completion of the first portion of the computational task has occurred before copying the data related to the computational task from the central memory to the high-bandwidth memory dies.

9. The apparatus of claim 8 , wherein the central processing unit is further configured to assign the first portion of the computational task to the fixed processing unit for execution,

wherein the fixed processing unit is configured to, when the execution of the first portion of the computational task is at least partially complete, copy data related to the computational task to the central processing unit, and

wherein the central processing unit is further configured to assign the second portion of the computational task to the reprogrammable processing unit for execution and make the data related to the computational task available to the reprogrammable processing unit.

10. The apparatus of claim 9 , wherein the central processing unit is further configured to copy the data related to the computational task from the buffer portion reserved for the fixed processing unit to the buffer portion reserved for the reprogrammable processing unit.

11. The apparatus of claim 8 , wherein the central processing unit is further configured to control, at least in part, a timing of any data transferred between the fixed processing unit and reprogrammable processing unit.

12. The apparatus of claim 8 , wherein the heterogeneous computing environment is configured such that the fixed processing unit may not directly access the high-bandwidth memory dies.

13. A system, comprising:

an interposer die;

a central processing unit on the interposer die, the central processing unit being configured to assign computational tasks to processing units of a heterogeneous computing environment; and

a system memory on the interposer die, the system memory being configured to store data;

the heterogeneous computing environment comprising:

a fixed processing unit on the interposer die, the fixed processing unit having fixed logical circuits configured to execute instructions,

a reprogrammable processing unit on the interposer die, the reprogrammable processing unit having reprogrammable logical circuits configured to execute instructions that include instructions to control processing-in-memory functionality, and

a stack of high-bandwidth memory dies on the interposer die, each high-bandwidth memory being configured to store data and to provide processing-in-memory functionality controllable by the reprogrammable processing unit, the reprogrammable processing unit being at least partially stacked with the high-bandwidth memory dies,

wherein the central processing unit being further configured to assign a first portion of a computational task to the fixed processing unit and a second portion of the computational task to the reprogrammable processing unit, and

wherein the reprogrammable processing unit is configured to determine that a triggering event that is based on a completion of the first portion of the computational task has occurred before copying data related to the computational task from the system memory to the high-bandwidth memory dies.

14. The system of claim 13 , wherein the fixed processing unit is configured to, when execution of the first portion of the computational task assigned to the fixed processing unit is at least partially complete, copy the data related to the computational task to the system memory; and

wherein the reprogrammable processing unit is configured to, before executing the second portion of the computational task assigned to the reprogrammable processing unit that requires the data related to the computational task, copy the data from the system memory to the high-bandwidth memory dies.

15. The system of claim 14 , wherein the fixed processing unit is configured to copy the data related to the computational task to the system memory via a remote direct memory access.

16. The system of claim 13 , wherein the fixed processing unit includes a graphical processing unit; and

the reprogrammable processing unit includes a field programmable gate array.

17. The system of claim 13 , wherein the fixed processing unit is configured to halt execution of the first portion of the computational task between a time the first portion of the computational task is complete and a time the second portion of the computational task is complete.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 25, 2018
From: MALLADI, KRISHNA T.; ZHENG, HONGZHONG
To: SAMSUNG ELECTRONICS CO., LTD.
Reel/Frame 044734/0210 →
Continuity (2)
Provisional Application 62558745 · Sep 14, 2017
Related Publication 20190079886A1 · Mar 14, 2019
Cited By (4)
US 12,287,984 US 12,417,047 US 12,675,424 US 12,730,636