IP Library › Granted Patent US 11,282,160
Granted Patent B2
US 11,282,160 · App. 16/817,390 · Granted Mar 22, 2022

Function-as-a-service (FaaS) model for specialized processing units

Inventors: Robert Edgar Barton (Richmond, CA); Jerome Henry (Pittsboro, NC); Russell Paul Gyurek (Raleigh, NC); Frank Brockners (Cologne, DE)
Assignee: Cisco Technology, Inc.
G06T1/20G06F9/3877G06F9/5038G06F9/547G06F15/80
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,282,160
App. No.
16/817,390
Granted
Mar 22, 2022
Kind
B2
Abstract

A server that includes a graphics processing unit (GPU) may receive, from a first application that is remote from the server, a first request to reserve a first number of cores of the GPU for a first amount of time. The server may also receive, from a second application that is also remote from the server, a second request to reserve a second number of cores of the GPU for a second amount of time that at least partly overlaps the first amount of time. The server may determine that the first request is associated with a higher priority than the second request and, in response, may reserve the first number of cores for the first amount of time for the first application. The server may send, to the first application, an indication that the first number of cores have been reserved as requested by the first application.

Claims (51)

1. A method comprising:

receiving, at a server that includes a graphics processing unit (GPU) and from a first application hosted on a first edge node that is remote from the server, a first request to reserve a first number of cores of the GPU during a first period of time;

receiving, at the server and from a second application hosted on a second edge node that is remote from the server and remote from the first edge node, a second request to reserve a second number of the cores of the GPU during a second period of time that at least partly overlaps the first period of time;

determining, by the server, that the first application is associated with a higher priority than the second application;

reserving, by the server and based at least in part on the determining that the first application is associated with the higher priority, the first number of the cores during the first period of time for the first application; and

sending, by the server and to the first application, an indication that the first number of the cores have been reserved for the first period of time for the first application.

2. The method as recited in claim 1 , further comprising:

reserving, by the server and based at least in part on the determining that the first application is associated with the higher priority, a third number of the cores during the second period of time for the second application, the third number of the cores being less than the second number of the cores requested by the second application; and

sending, by the server and to the second application, an indication that the third number of the cores have been reserved for the second period of time for the second application.

3. The method as recited in claim 1 , further comprising:

reserving, by the server and based at least in part on the determining that the first application is associated with the higher priority, the second number of the cores during a third period of time for the second application, the third period of time at least one of less than the second period of time or occurring later than the second period of time; and

sending, by the server and to the second application, an indication that the second number of the cores have been reserved for the third period of time for the second application.

4. The method as recited in claim 1 , wherein the determining that the first request is associated with a higher priority than the second request is based at least in part on at least one of a task to be performed by the first application, a task to be performed by the second application, a quality of service (QoS) level associated with the first application, a QoS level associated with the second application, a billing model associated with the first application, or a billing model associated with the second application.

5. The method as recited in claim 1 , wherein the determining that the first request is associated with a higher priority than the second request is based at least in part on at least one of the first number of the cores requested by the first application, the first period of time during which the first application has requested the first number of the cores, the second number of the cores requested by the second application, or the second period of time during which the second application has requested the second number of the cores.

6. The method as recited in claim 1 , wherein the server forms a portion of a cloud-based service, the receiving of the first request comprises receiving the first request via an application programming interface (API) provided by the cloud-based service, and the receiving of the second request comprises receiving the second request via the API provided by the cloud-based service.

7. The method as recited in claim 1 , wherein the first request includes first authentication credentials associated with the first application, and the method further comprising:

authenticating, at least partly prior to the reserving of the first number of the cores and the sending of the indication, the first application using the first authentication credentials associated with the first application.

8. The method as recited in claim 1 , wherein the first application is configured to utilize computing resources of the first edge node to execute first tasks and utilize the cores of the GPU to execute second tasks, the second tasks different from the first tasks.

9. A system comprising:

one or more first processors including at least one of a graphics processing unit (GPU) or a tensor processing unit (TPU);

one or more second processors; and

one or more non-transitory computer-readable media storing computer-executable instructions that, when executed, cause the one or more second processors to perform acts comprising:

receiving, from a first application hosted on a first edge node that is remote from the system, a first request to reserve a first number of cores of the at least one of the GPU or the TPU during a first period of time;

receiving, from a second application hosted on a second edge node that is remote from the system and remote from the first edge node, a second request to reserve a second number of the cores of the at least one of the GPU or the TPU during a second period of time that at least partly overlaps the first period of time;

determining that the first application is associated with a higher priority than the second application;

reserving, based at least in part on the first application being associated with the higher priority, the first number of the cores during the first period of time for the first application; and

sending, to the first application, an indication that the first number of the cores have been reserved for the first period of time for the first application.

10. The system as recited in claim 9 , the acts further comprising:

reserving, based at least in part on the determining that the first application is associated with the higher priority, a third number of the cores during the second period of time for the second application, the third number of the cores being less than the second number of the cores requested by the second application; and

sending, to the second application, an indication that the third number of the cores have been reserved for the second period of time for the second application.

11. The system as recited in claim 9 , the acts further comprising:

reserving, based at least in part on the determining that the first application is associated with the higher priority, the second number of the cores during a third period of time for the second application, the third period of time at least one of less than the second period of time or occurring later than the second period of time; and

sending, to the second application, an indication that the second number of the cores have been reserved for the third period of time for the second application.

12. The system as recited in claim 9 , wherein the determining that the first request is associated with a higher priority than the second request is based at least in part on at least one of a task to be performed by the first application, a task to be performed by the second application, a quality of service (QoS) level associated with the first application, a QoS level associated with the second application, a billing model associated with the first application, or a billing model associated with the second application.

13. The system as recited in claim 9 , wherein the determining that the first request is associated with a higher priority than the second request is based at least in part on at least one of the first number of the cores requested by the first application, the first period of time during which the first application has requested the first number of the cores, the second number of the cores requested by the second application, or the second period of time during which the second application has requested the second number of the cores.

14. The system as recited in claim 9 , wherein the system forms a portion of a cloud-based service, the receiving of the first request comprises receiving the first request via an application programming interface (API) provided by the cloud-based service, and the receiving of the second request comprises receiving the second request via the API provided by the cloud-based service.

15. A method implemented at least in part by a system that includes a specialized processing unit, the method comprising:

receiving, from a first application hosted on a first edge node that is remote from the system, a first request to reserve a first number of cores of the specialized processing unit during a first period of time;

receiving, from a second application hosted on a second edge node that is remote from the system and remote from the first edge node, a second request to reserve a second number of the cores of the specialized processing unit during a second period of time that at least partly overlaps the first period of time;

determining that the first application is associated with a higher priority than the second application;

reserving, based at least in part on the determining that the first application is associated with the higher priority, the first number of the cores during the first period of time for the first application; and

sending, to the first application, an indication that the first number of the cores have been reserved for the first period of time for the first application.

16. The method as recited in claim 15 , wherein the specialized processing unit comprises at least one of a graphics processing unit (GPU) or a tensor processing unit (TPU).

17. The method as recited in claim 15 , further comprising:

reserving, based at least in part on the determining that the first application is associated with the higher priority, a third number of the cores during the second period of time for the second application, the third number of the cores being less than the second number of the cores requested by the second application; and

sending, to the second application, an indication that the third number of the cores have been reserved for the second period of time for the second application.

18. The method as recited in claim 15 , further comprising:

reserving, based at least in part on the determining that the first application is associated with the higher priority, the second number of the cores a third period of time for the second application, the third period of time at least one of less than the second period of time or occurring later than the second period of time; and

sending, to the second application, an indication that the second number of the cores have been reserved for the third period of time for the second application.

19. The method as recited in claim 15 , wherein the determining that the first request is associated with a higher priority than the second request is based at least in part on at least one of a task to be performed by the first application, a task to be performed by the second application, a quality of service (QoS) level associated with the first application, a QoS level associated with the second application, a billing model associated with the first application, or a billing model associated with the second application.

20. The method as recited in claim 15 , wherein the determining that the first request is associated with a higher priority than the second request is based at least in part on at least one of the first number of the cores requested by the first application, the first period of time during which the first application has requested the first number of the cores, the second number of the cores requested by the second application, or the second period of time during which the second application has requested the second number of the cores.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 12, 2020
From: BARTON, ROBERT EDGAR; HENRY, JEROME; GYUREK, RUSSELL PAUL; BROCKNERS, FRANK
To: CISCO TECHNOLOGY, INC.
Reel/Frame 052102/0189 →
Continuity (1)
Related Publication 20210287323A1 · Sep 16, 2021
Cited By (1)
US 12,524,266