IP Library Granted Patent US 11,403,154
Granted Patent B1
US 11,403,154 · App. 16/587,402 · Granted Aug 2, 2022

Systems, methods and apparatuses for running multiple machine learning models on an edge device

Inventors: Vinayak Ashutosh Agarwal (Newark, CA); Jason Lenox Copeland (Mountain View, CA); Alexei Shlychkov (Castro Valley, CA); Naga Krishna Teja Komma (Fremont, CA)
Assignee: Amazon Technologies, Inc.
G06F9/546G06F8/60G06F9/5005G06F9/54G06F9/542G06F9/544G06F5/06G06F9/45558G06F2009/4557G06F2209/5011G06N20/00
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,403,154
App. No.
16/587,402
Granted
Aug 2, 2022
Kind
B1
Abstract

Techniques for implementing an on-demand serverless compute system that uses shared memory to share data between on-demand serverless compute applications are described. In some examples, a daemon of an edge device providing on-demand serverless compute is to: register launched one or more launched on-demand serverless applications, read a deployment configuration for an application using the one or more launched on-demand serverless applications, per the read deployment configuration, launch at least one data source and at least one data sink, per launched data source, register the launched data source with the device daemon, per launched data sink, register the launched data sink thread with the device daemon, match registered, launched data sources with registered, launched data sinks and launched on-demand serverless applications as defined in the deployment configuration, and for each match, register a connection first in, first out structure to be used to share data on an event driven basis between launched on-demand serverless applications.

Claims (65)

1. A computer-implemented method comprising:

deploying one or more on-demand serverless applications to a serverless computer daemon of an edge device, using a provider network service;

launching each of the one or more deployed, on-demand serverless applications with its own, independent runtime;

using a device daemon of the edge device to:

register the one or more launched on-demand serverless applications,

read a deployment configuration for an application using the one or more launched on-demand serverless applications,

based on the read deployment configuration, launch one or more data sources and one or more data sinks,

for each launched data source, register the launched data source with the device daemon,

for each launched data sink, register the launched data sink with the device daemon,

match registered, launched data sources with registered, launched data sinks and launched on-demand serverless applications as defined in the deployment configuration,

for each match, register a connection first in, first out (FIFO) data structure to be used to share data on an event driven basis between ones of the launched on-demand serverless applications; and

execute the application using at least one of the connection FIFO data structures.

2. The computer-implemented method of claim 1 , wherein the registration of a data sink or a data source includes sending its name, associated outputs, and output parameters.

3. The computer-implemented method of claim 1 , wherein at least one of the one or more on-demand serverless applications acts as both a data sink and a data source.

4. A computer-implemented method comprising:

launching one or more deployed, on-demand serverless applications with its own, independent runtime;

registering the one or more launched on-demand serverless applications;

launching one or more data sources and one or more data sinks as dictated by a deployment configuration for an application;

for each launched data source, registering the launched data source;

for each launched data sink, registering the launched data sink;

matching registered, launched data sources with registered, launched data sinks and launched on-demand serverless applications as defined in the deployment configuration;

for each match, registering a connection first in, first out (FIFO) data structure to be used to share data on an event driven basis between launched on-demand serverless applications; and

executing the application using at least one of the connection FIFO data structures.

5. The computer-implemented method of claim 4 , wherein the registration of a data sink or a data source includes sending its name, associated outputs, and output parameters.

6. The computer-implemented method of claim 4 , wherein each connection FIFO data structure comprises one or more shared object reference pointers in an array.

7. The computer-implemented method of claim 4 , wherein the registration is performed by a daemon that provides runtime support for launched on-demand serverless applications.

8. The computer-implemented method of claim 7 , wherein the application and the deployment configuration are a part of a deployment package.

9. The computer-implemented method of claim 4 , wherein each independent runtime is a part of a container.

10. The computer-implemented method of claim 4 , wherein each independent runtime provides at least one of the one or more on-demand serverless applications with at least one of:

an ability to connect its inputs to data sources;

an ability to announce and provide its outputs to consumers;

an ability to wait for and act upon incoming data;

an ability to collect produced results and provide them to consumers; and

an ability to manipulate images, load models, and run inferences.

11. The computer-implemented method of claim 4 , further comprising:

storing, by a first on-demand serverless application of the application, a result that is referenced by a first connection FIFO data structure; and

reading, by a second on-demand serverless application of the application, the result that is referenced by the first connection FIFO data structure, wherein the first connection FIFO data structure is stored in a memory shared between the first and second on-demand serverless applications.

12. The computer-implemented method of claim 4 , further comprising:

starting a collector thread to monitor at least one connection FIFO data structure for data.

13. The computer-implemented method of claim 12 , further comprising:

upon the collector thread determining there is enough collected data referenced in the connection FIFO data structure, waking a main thread to execute one of the on-demand serverless applications.

14. The computer-implemented method of claim 4 , wherein at least one of the one or more data sources is one of:

a media stream, a sensor, a messaging device, and a database.

15. A system comprising:

an deployment service implemented by a first one or more electronic devices to deploy an application to an edge device; and

the edge device, the edge device including instructions that upon execution cause a device daemon of the edge device to:

launch one or more on-demand serverless applications of the application;

register the one or more launched on-demand serverless applications,

read a deployment configuration for the application,

based on the read deployment configuration, launch one or more data sources and one or more data sinks,

for each launched data source, register the launched data source with the device daemon,

for each launched data sink, register the launched data sink with the device daemon,

match registered, launched data sources with registered, launched data sinks and launched on-demand serverless applications as defined in the deployment configuration, and

for each match, register a connection first in, first out (FIFO) data structure to be used to share data on an event driven basis between ones of the launched on-demand serverless applications.

16. The system of claim 15 , wherein the registration of a data sink or a data source includes sending its name, associated outputs, and output parameters.

17. The system of claim 15 , wherein each connection FIFO data structure comprises one or more shared object reference pointers in an array.

18. The system of claim 15 , wherein the application and the deployment configuration are a part of a deployment package.

19. The system of claim 15 , wherein each of the one or more on-demand serverless applications is launched with its own independent runtime, wherein each independent runtime provides the corresponding on-demand serverless application at least one of:

an ability to connect its inputs to data sources;

an ability to announce and provide its outputs to consumers;

an ability to wait for and act upon incoming data;

an ability to collect produced results and provide them to consumers; and

an ability to manipulate images, load models, and run inferences.

20. The system of claim 15 , wherein at least one of the one or more data sources is one of:

a media stream, a sensor, a messaging device, and a database.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 8, 2019
From: AGARWAL, VINAYAK ASHUTOSH; COPELAND, JASON LENOX; SHLYCHKOV, ALEXEI; KOMMA, NAGA KRISHNA TEJA
To: AMAZON TECHNOLOGIES, INC.
Reel/Frame 050653/0742 →
Cited By (3)
US 12,299,428 US 12,367,167 US 12,513,045