IP Library Granted Patent US 10,496,586
Granted Patent B2
US 10,496,586 · App. 15/964,115 · Granted Dec 3, 2019

Accelerator management

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,496,586
App. No.
15/964,115
Granted
Dec 3, 2019
Kind
B2
Abstract

An accelerator manager manages multiple accelerators in multiple programmable devices. An accelerator cast out policy specifies criteria for casting out accelerators in the programmable devices. The accelerator manager monitors usage of the accelerators by one or more computer programs, and generates a historical log from the monitored usage. When the conditions in the historical log satisfy criteria in the accelerator cast out policy for casting out an accelerator, the accelerator manager casts out the accelerator, and updates a virtual function table to replace calls to the accelerator that was cast out with calls to the software library.

Claims (56)

1. An apparatus comprising:

at least one processor;

a memory coupled to the at least one processor;

a plurality of accelerators in a plurality of programmable devices coupled to the at least one processor;

an accelerator cast out policy that specifies at least one criterion for casting out accelerators in the plurality of programmable devices; and

an accelerator manager residing in the memory and coupled to the at least one processor, the accelerator manager monitoring usage of the plurality of accelerators by at least one computer program and generating from the monitored usage a historical log, and when conditions in the historical log satisfy the at least one criterion in the accelerator cast out policy, the accelerator manager casts out one of the plurality of accelerators from its corresponding programmable device.

2. The apparatus of claim 1 wherein each of the plurality of programmable devices comprises an Open Coherent Accelerator Processor Interface (OpenCAPI) coupled to the at least one processor.

3. The apparatus of claim 1 further comprising:

a software library residing in the memory that includes a plurality of functions called by the at least one computer program;

a virtual function table that includes a plurality of calls to the software library in the at least one computer program and further includes a plurality of calls to the plurality of accelerators;

wherein the accelerator manager, after casting out the one accelerator from its corresponding programmable device, updates the virtual function table to replace a call to the accelerator that was cast out with a call to the software library.

4. The apparatus of claim 1 wherein each of the plurality of programmable devices comprises a field-programmable gate array (FPGA).

5. The apparatus of claim 1 wherein the accelerator cast out policy specifies to cast out an accelerator that has not been used for a specified period of time.

6. The apparatus of claim 1 wherein the accelerator cast out policy specifies to cast out an accelerator that has no connection open.

7. The apparatus of claim 1 wherein the accelerator cast out policy specifies to cast out an accelerator that has resource usage over a specified threshold.

8. The apparatus of claim 1 wherein the accelerator cast out policy specifies to cast out an accelerator that has errors over a specified threshold.

9. The apparatus of claim 1 wherein the historical log comprises:

a list of computer programs and when each computer program called each of the plurality of accelerators;

whether each of the plurality of accelerators has a connection open;

resource usage for each of the plurality of accelerators; and

a list of errors by the plurality of accelerators.

10. An apparatus comprising:

at least one processor;

a memory coupled to the at least one processor;

a plurality of computer programs residing in the memory and executed by the at least one processor;

a software library residing in the memory that includes a plurality of functions called by the plurality of computer programs;

a first field-programmable gate array (FPGA) coupled to the at least one processor that comprises a first Open Coherent Accelerator Processor Interface (OpenCAPI) coupled to the at least one processor, wherein the first FPGA includes a first plurality of accelerators;

a second field-programmable gate array (FPGA) coupled to the at least one processor that comprises a second Open Coherent Accelerator Processor Interface (OpenCAPI) coupled to the at least one processor, wherein the second FPGA includes a second plurality of accelerators;

a virtual function table that includes a plurality of calls to the software library in the plurality of computer programs and further includes a plurality of calls to the first and second plurality of accelerators;

an accelerator cast out policy that specifies at least one criterion for casting out accelerators in the first and second FPGAs; and

an accelerator manager residing in the memory and coupled to the at least one processor, the accelerator manager monitoring usage of the plurality of accelerators by the plurality of computer programs and generating from the monitored usage a historical log, and when conditions in the historical log satisfy the at least one criterion in the accelerator cast out policy, the accelerator manager casts out one of the plurality of accelerators from its corresponding programmable device and updates the virtual function table to replace a call to the accelerator that was cast out with a call to the software library.

11. The apparatus of claim 10 wherein the historical log comprises:

a list of computer programs and when each computer program called each of the plurality of accelerators;

whether each of the plurality of accelerators has a connection open;

resource usage for each of the plurality of accelerators; and

a list of errors by the plurality of accelerators.

12. A method for managing accelerators, the method comprising:

deploying a plurality of accelerators in a plurality of programmable devices;

providing an accelerator cast out policy that specifies at least one criterion for casting out accelerators in the plurality of programmable devices;

monitoring usage of the plurality of accelerators by at least one computer program and generating from the monitored usage a historical log;

when conditions in the historical log satisfy the at least one criterion in the accelerator cast out policy, casting out one of the plurality of accelerators from its corresponding programmable device.

13. The method of claim 12 wherein each of the plurality of programmable devices comprises an Open Coherent Accelerator Processor Interface (OpenCAPI) coupled to the at least one processor.

14. The method of claim 12 further comprising:

providing a software library residing in the memory that includes a plurality of functions called by the at least one computer program;

providing a virtual function table that includes a plurality of calls to the software library in the at least one computer program and further includes a plurality of calls to the plurality of accelerators; and

after casting out the one accelerator from its corresponding programmable device, updating the virtual function table to replace a call to the accelerator that was cast out with a call to the software library.

15. The method of claim 12 wherein each of the plurality of programmable devices comprises a field-programmable gate array (FPGA).

16. The method of claim 12 wherein the accelerator cast out policy specifies to cast out an accelerator that has not been used for a specified period of time.

17. The method of claim 12 wherein the accelerator cast out policy specifies to cast out an accelerator that has no connection open.

18. The method of claim 12 wherein the accelerator cast out policy specifies to cast out an accelerator that has resource usage over a specified threshold.

19. The method of claim 12 wherein the accelerator cast out policy specifies to cast out an accelerator that has errors over a specified threshold.

20. The method of claim 12 wherein the historical log comprises:

a list of computer programs and when each computer program called each of the plurality of accelerators;

whether each of the plurality of accelerators has a connection open;

resource usage for each of the plurality of accelerators; and

a list of errors by the plurality of accelerators.

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 3, 2024
From: BEIJING PIANRUOJINGHONG TECHNOLOGY CO., LTD.
To: BEIJING ZITIAO NETWORK TECHNOLOGY CO., LTD.
Reel/Frame 066565/0952 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 4, 2023
From: AWEMANE LTD.
To: BEIJING PIANRUOJINGHONG TECHNOLOGY CO., LTD.
Reel/Frame 064501/0498 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 2, 2021
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: AWEMANE LTD.
Reel/Frame 057991/0960 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 1, 2018
From: SCHARDT, PAUL E.; CHEN, JIM C.; THOMPSON, LANCE G.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 045687/0321 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 1, 2018
From: CAREY, JAMES C.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 045687/0332 →