IP Library Granted Patent US 11,042,413
Granted Patent B1
US 11,042,413 · App. 16/508,100 · Granted Jun 22, 2021

Dynamic allocation of FPGA resources

Inventors: Ahmad Byagowi (Fremont, CA); Michael Maroye Lambeta (Mountain View, CA); Martin Mroz (San Francisco, CA)
Assignee: Facebook, Inc.
G06F9/5027G06F9/505G06F30/34
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 11,042,413
App. No.
16/508,100
Granted
Jun 22, 2021
Kind
B1
Abstract

Utilization metrics associated with a plurality of eligible compute tasks executable on a plurality of field-programmable gate arrays are determined. The utilization metrics are evaluated to dynamically identify a reallocation of an identified field-programmable gate array resource of the field-programmable gate arrays to handle a selected eligible compute task of the eligible compute tasks. The identified field-programmable gate array resource is automatically reprogrammed to handle the selected eligible compute task.

Claims (37)

1. A system, comprising:

field-programmable gate arrays; and

a processor configured to:

determine utilization metrics associated with a plurality of eligible compute tasks executable on the field-programmable gate arrays;

evaluate the utilization metrics to dynamically identify a reallocation of an identified field-programmable gate array resource of the field-programmable gate arrays to handle a selected eligible compute task of the eligible compute tasks; and

automatically reprogram the identified field-programmable gate array resource to handle the selected eligible compute task;

wherein the processor is configured to evaluate the utilization metrics to dynamically identify the reallocation of the identified field-programmable gate array resource including by being configured to at least in part determine whether a first eligible compute task has been performed more frequently than a second eligible compute task.

2. The system of claim 1 , wherein the utilization metrics are associated with one or more of the following: queue depths of the field-programmable gate arrays or execution times to perform the eligible compute tasks.

3. The system of claim 1 , wherein the processor is further configured to evaluate one or more of the following: time of day, calendar date, or time zone to dynamically identify the reallocation of the identified field-programmable gate array resource.

4. The system of claim 1 , wherein the processor is configured to automatically reprogram the identified field-programmable gate array resource including by being configured to transfer a bitstream to the identified field-programmable gate array resource from a persistent storage device.

5. The system of claim 4 , wherein the bitstream is a part of a plurality of bitstreams included in a function repository.

6. The system of claim 1 , wherein the processor is further configured to invoke the identified field-programmable gate array resource to handle the selected eligible compute task.

7. The system of claim 1 , wherein the processor is further configured to report a result associated with the selected eligible compute task.

8. The system of claim 7 , wherein the result is formatted as an application programming interface response object.

9. The system of claim 1 , wherein the field-programmable gate arrays are located in a single server cluster.

10. The system of claim 1 , wherein the field-programmable gate arrays are located across multiple server clusters.

11. The system of claim 1 , wherein the processor is further configured to receive a request to perform the selected eligible compute task on the reprogrammed field-programmable gate array resource.

12. The system of claim 11 , wherein the request is received via an application programming interface.

13. The system of claim 11 , wherein the request originates from a software application.

14. A system, comprising:

field-programmable gate arrays; and

a processor configured to:

determine utilization metrics associated with a plurality of eligible compute tasks executable on the field-programmable gate arrays, wherein the utilization metrics are formulated as cost functions that include, as components, queue depths of the field-programmable gate arrays and execution times to perform the eligible compute tasks;

evaluate the utilization metrics to dynamically identify a reallocation of an identified field-programmable gate array resource of the field-programmable gate arrays to handle a selected eligible compute task of the eligible compute tasks; and

automatically reprogram the identified field-programmable gate array resource to handle the selected eligible compute task.

15. The system of claim 14 , wherein the cost functions include, as a component, reprogramming times of the field-programmable gate arrays.

16. The system of claim 14 , wherein the processor is configured to automatically reprogram the identified field-programmable gate array resource including by being configured to transfer a bitstream to the identified field-programmable gate array resource from a persistent storage device.

17. The system of claim 14 , wherein the processor is further configured to report a result associated with the selected eligible compute task.

18. The system of claim 14 , wherein the field-programmable gate arrays are located across multiple server clusters.

19. The system of claim 14 , wherein the processor is further configured to receive a request to perform the selected eligible compute task on the reprogrammed field-programmable gate array resource.

20. A system, comprising:

field-programmable gate arrays; and

a processor configured to:

determine utilization metrics associated with a plurality of eligible compute tasks executable on the field-programmable gate arrays;

evaluate the utilization metrics to dynamically identify a reallocation of an identified field-programmable gate array resource of the field-programmable gate arrays to handle a selected eligible compute task of the eligible compute tasks;

evaluate current events that generate social media activity to dynamically identify the reallocation of the identified field-programmable gate array resource; and

automatically reprogram the identified field-programmable gate array resource to handle the selected eligible compute task.

Assignments (2)
CHANGE OF NAME Recorded Nov 19, 2021
From: FACEBOOK, INC.
To: META PLATFORMS, INC.
Reel/Frame 058214/0351 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 12, 2019
From: BYAGOWI, AHMAD; LAMBETA, MICHAEL MAROYE; MROZ, MARTIN
To: FACEBOOK, INC.
Reel/Frame 050362/0213 →
Cited By (1)
US 12,530,237