Hardware accelerated compute kernels

US11042414B1 · US · B1

Patent metadata
FieldValue
Publication numberUS-11042414-B1
Application numberUS-201916508093-A
CountryUS
Kind codeB1
Filing dateJul 10, 2019
Priority dateJul 10, 2019
Publication dateJun 22, 2021
Grant dateJun 22, 2021

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A request to perform a compute task is received. A service to perform at least a portion of the compute task is identified, wherein the identified service is associated with a field-programmable gate array that has been programmed to perform at least the portion of the compute task. The identified service to perform at least the portion of the compute task of the request is invoked. At least the portion of the compute task is executed using the field-programmable gate array.

First claim

Opening claim text (preview).

What is claimed is: 1. A system, comprising: a processor configured to: receive a request to perform a compute task; identify a service to perform at least a portion of the compute task, wherein the identified service is associated with a field-programmable gate array that has been programmed to perform at least the portion of the compute task; and invoke the identified service to perform at least the portion of the compute task of the request; wherein the processor is configured to invoke the identified service including by being configured to queue the request to perform the compute task with the identified service; and the field-programmable gate array configured to execute at least the portion of the compute task. 2. The system of claim 1 , wherein the request to perform the compute task is received via an application programming interface. 3. The system of claim 1 , wherein the request to perform the compute task originates from a software application. 4. The system of claim 1 , wherein the request to perform the compute task is in a remote procedure call message format. 5. The system of claim 1 , wherein the processor is configured to identify the service to perform at least the portion of the compute task based at least in part on a determination of which field-programmable gate array resources are available to perform the compute task. 6. The system of claim 1 , wherein the processor is configured to identify the service to perform at least the portion of the compute task based at least in part on a determination of which field-programmable gate array resources have been configured to execute at least the portion of the compute task. 7. The system of claim 1 , wherein the processor is configured to identify the service to perform at least the portion of the compute task based at least in part on a load balancing metric. 8. The system of claim 1 , wherein the processor is configured to identify the service to perform at least the portion of the compute task based at least in part on a determination of in which server clusters field-programmable gate array resources are located. 9. The system of claim 1 , wherein the processor is configured to identify the service to perform at least the portion of the compute task from among a plurality of services distributed across multiple server clusters. 10. The system of claim 1 , wherein the processor is configured to invoke the identified service including by being configured to assign at least the portion of the compute task to the identified service to commence performance. 11. The system of claim 1 , wherein the field-programmable gate array is configured using a driver to execute at least the portion of the compute task. 12. The system of claim 1 , wherein the field-programmable gate array is a part of a plurality of field-programmable gate arrays located in a single server cluster. 13. The system of claim 1 , wherein the field-programmable gate array is a part of a plurality of field-programmable gate arrays located across multiple server clusters. 14. The system of claim 1 , wherein the processor is further configured to report a result associated with execution of at least the portion of the compute task. 15. The system of claim 14 , wherein the result is formatted as an application programming interface response object. 16. The system of claim 1 , wherein the field-programmable gate array, after executing at least the portion of the compute task, is configured to be automatically reprogrammed to execute a different type of compute task. 17. The system of claim 1 , wherein the field-programmable gate array is a part of a plurality of compute processor resources that are all capable of executing at least the portion of the compute task, wherein the plurality of compute resources also includes one of the following: an application-specific integrated circuit, a graphics processing unit, or a central processing unit. 18. A system, comprising: a first processor configured to: receive a first request to perform a first compute task; identify a first service to perform at least a portion of the first compute task, wherein the identified first service is associated with a first field-programmable gate array that has been programmed to perform at least the portion of the first compute task; and invoke the identified first service to perform at least the portion of the first compute task of the first request; wherein the first processor is configured to invoke the first identified service including by being configured to queue the first request to perform the first compute task with the first identified service; a second processor configured to: receive a second request to perform a second compute task; identify a second service to perform at least a portion of the second compute task, wherein the identified second service is associated with a second field-programmable gate array that has been programmed to perform at least the portion of the second compute task; and invoke the identified second service to perform at least the portion of the second compute task of the second request; wherein the second processor is configured to invoke the second identified service including by being configured to queue the second request to perform the second compute task with the second identified service; the first field-programmable gate array configured to execute at least the portion of the first compute task; and the second field-programmable gate array configured to execute at least the portion of the second compute task, wherein the first compute task is a different type of compute task than the second compute task. 19. A method, comprising: receiving a request to perform a compute task; identifying a service to perform at least a portion of the compute task, wherein the identified service is associated with a field-programmable gate array that has been programmed to perform at least the portion of the compute task; invoking the identified service to perform at least the portion of the compute task of the request, wherein invoking the identified service includes queuing the request to perform the compute task with the identified service; and executing at least the portion of the compute task using the field-programmable gate array. 20. The method of claim 19 , wherein the request to perform the compute task is received via an application programming interface.

Assignees

Inventors

Classifications

  • G06F9/5055Primary

    considering software capabilities, i.e. software resources associated or available to the machine · CPC title

  • G06F9/505Primary

    considering the load · CPC title

  • for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD] · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US11042414B1 cover?
A request to perform a compute task is received. A service to perform at least a portion of the compute task is identified, wherein the identified service is associated with a field-programmable gate array that has been programmed to perform at least the portion of the compute task. The identified service to perform at least the portion of the compute task of the request is invoked. At least th…
Who is the assignee on this patent?
Facebook Inc
What technology area does this patent fall under?
Primary CPC classification G06F9/5055. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jun 22 2021 00:00:00 GMT+0000 (Coordinated Universal Time) (B1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 6 related publications on this page (citations in our corpus or others sharing the same primary CPC).