SlideShare a Scribd company logo
Toward Among-Device AI
from On-Device AI
with Stream Pipelines
https://nnstreamer.ai
MyungJoo Ham, Ph.D.
May, 2022
NNStreamer is a project hosted by Linux Foundation AI & Data
MyungJoo Ham, Sangjung Woo, Jaeyun Jung, Wook Song, Gichan Jang, Yongjoo Ahn, Hyoungjoo Ahn
https://nnstreamer.ai https://github.com/nnstreamer
Background: Applications
Augmented Worker (Factory)
Identify Task
Monitor Activities
(hand movement,
vibration, sound)
Check if the
activity is valid
(e.g., complete
assembly?)
Notify if the recent
activity requires further
actions / corrections
https://nnstreamer.ai https://github.com/nnstreamer
Background: Applications
Robotic Vacuum (= Mobile Camera) + Pet Care Services
https://nnstreamer.ai https://github.com/nnstreamer
Background: Applications
Consistent AI Services for Home Appliances
Consistent Service Quality & Performance
+ Consistent Context!
https://nnstreamer.ai https://github.com/nnstreamer
Objectives
Devices from different manufacturers!!
Consistent AI Services for All Devices
https://nnstreamer.ai https://github.com/nnstreamer
Recap: On-Device AI Pipeline Framework
ICSE 2021 SEIP, “NNStreamer: Efficient and Agile Development of On-Device AI Systems”
Neural Networks == Filters of Stream Pipelines
On-Device AI Services as Pipelines
(Gstreamer) Pipeline description
Implementation
• Lower devel cost
• Lower CPU/mem overhead
• Higher throughput
• Higher porttability
Requirements
https://nnstreamer.ai https://github.com/nnstreamer
Requirements of Among-Device AI Pipelines
Each AI or input/output service exists atomically and is deployed independently. Such a
service includes an AI inference processor, a shared input stream, or a user interface.
R1, deployability
CAMERA SRC / by Team A
AI Service 001 / by Team B
AI Service X / by Team B
AI Service Y / by Team C
Display SINK / by Team A
CAMERA SRC / by Team A
App 003 / by Team D
AI Service 002 / by Team A
https://nnstreamer.ai https://github.com/nnstreamer
Requirements of Among-Device AI Pipelines
Transmission between such entities may be schemaless, or updating schema should not
require recompiling or redeploying software. It should be able to compress and
synchronize transmitted data frames from different devices.
R2, portability
CAMERA SRC / by Team A
AI Service 001 / by Team B
AI Service X / by Team B
AI Service Y / by Team C
Display SINK / by Team A
CAMERA SRC / by Team A
App 003 / by Team D
AI Service 002 / by Team A
https://nnstreamer.ai https://github.com/nnstreamer
Requirements of Among-Device AI Pipelines
Discovering such entities and connecting to them should not require the knowledge of
specific addresses (e.g., IP address). Besides, there may be multiple entities discovered for a
given connection request, where one of them will be connected.
R3, discoverability
AI Service X / by Team B
AI Service Y / by Team C
AI Service X / by Team D
Need Service “Y”
(e.g., “face id”)
Need Service “X”
(e.g., “speech recog”)
Interchangeable
https://nnstreamer.ai https://github.com/nnstreamer
Requirements of Among-Device AI Pipelines
If a connected entity becomes unavailable, it can be automatically connected to an
alternative entity
R4, fault-tolerance
AI Service X / by Team B
AI Service X / by Team D
Need Service “X”
(e.g., “speech recog”)
Serves as
“fault tolerance fallback” for 1
1
2
Serves as
“fault tolerance fallback” for 2
https://nnstreamer.ai https://github.com/nnstreamer
Requirements of Among-Device AI Pipelines
Any vendors and application developers may freely use, alter, or redistribute the given
software framework for any purpose without charges. Besides, it is desirable if anyone may
participate in its development to reduce fragmentation and a bias for an affiliation.
R5, openness
CAMERA SRC / by Team A
AI Service 001 / by Team B
AI Service X / by Team B
AI Service Y / by Team C
Display SINK / by Team A
CAMERA SRC / by Team A
App 003 / by Team D
AI Service 002 / by Team A
https://nnstreamer.ai https://github.com/nnstreamer
Requirements of Among-Device AI Pipelines
It should be extensible for different platforms. In other words, it should be able to be
connected with different AI pipeline frameworks (e.g., MediaPipe [12] and DeepStream [15])
or services with different operating systems, especially those for microcontrollers (a.k.a.
RTOS).
R6, extensibility
Ultra-lightweight device (RTOS)
DeepStream Pipeline in
Jetson or AWS/Azure
AI Service 001 / by Team B
AI Service X / by Team B
AI Service Y / by Team C
Display SINK / by Team A
CAMERA SRC / by Team A
AI Service 002 / by Team A
“extremely portable”
communication
base class
https://nnstreamer.ai https://github.com/nnstreamer
Requirements of Among-Device AI Pipelines
Each AI service is an on-device AI application that has requirements mentioned in [8].
 Don’t deteriorate the previous work. (backward compatibility?)
R7
Design
https://nnstreamer.ai https://github.com/nnstreamer
Design & Features
Protocol: Pub/Sub based Stream Sink/Src
Publisher Subscriber
Broker
(MQTT)
Pipeline Pipeline
mqttsink mqttsrc
…… ……
Data*
Connection &
Control
I publish
“camera/left/1920x1080”
I need
“camera/left/*”
* In 2021, data-control
separation was WIP.
(applied in query only)
Since NNStreamer 2.1, this is
applied to pub/sub, too.
https://nnstreamer.ai https://github.com/nnstreamer
Design & Features
Protocol: Query, “Inference Off-loading”
+ Data-Control Separation
Pipeline (“client”)
Pipeline (“server”)
Query Client
……
Query Server Src Query Server Sink
……
……
Publisher
Subscriber
“obj-detect/homeenv/yolov3/mod”
“obj-detect/homeenv/*”
Pipeline (“server”)
Pipeline (“server”)
“obj-detect/homeenv/ssd/mod”
“obj-detect/homeenv/yolov4/org”
Pipeline (“client”)
Pipeline (“client”)
Pipeline (“client”)
Pipeline (“client”)
Pipeline (“client”)
Pipeline (“client”)
Pipeline (“client”)
Pipeline (“client”)
Broker (MQTT)
(control/connection only)
https://nnstreamer.ai https://github.com/nnstreamer
Design & Features
• Synchronization & Timestamp Management
• “NNStreamer-Edge”
Lightweight Library for Pub/Sub & Query
• For non-GStreamer / non-pipeline processes
• Note: this is merged with another open source project, “AITT”
(MQTT for Distributed AI services)
Others..
Evaluations & Applications
https://nnstreamer.ai https://github.com/nnstreamer
Evaluation Result: Application Examples
Augmented Worker (Factory)
Identify Task
Monitor Activities
(hand movement,
vibration, sound)
Check if the
activity is valid
(e.g., complete
assembly?)
Notify if the recent
activity requires further
actions / corrections
https://nnstreamer.ai https://github.com/nnstreamer
Evaluation Result: Application Examples
Augmented Worker (Factory)
System expressed in < 20 lines, with no noticeable overheads
https://nnstreamer.ai https://github.com/nnstreamer
Evaluation Result: Performance
MQTT vs ZeroMQ: MQTT slows down to 47% with x3.18 CPU overheads!
Performance / MQTT – ZeroMQ comparison
https://nnstreamer.ai https://github.com/nnstreamer
Evaluation Result: Performance
MQTT-Hybrid (separatered) vs TCP-raw: No more overheads!
Performance / Query + Data-Control Separation
Conclusion
https://nnstreamer.ai https://github.com/nnstreamer
Future Direction / New Requirements
Separate AI service (pipeline writers) and AI application (pipeline users) developers
AI Service Deployment
옷 옷
AI Service Developer
(pipeline & model writer)
AI App Developer
(pipeline user)
I want to keep updating
pipelines & models
I want to deploy services
directly.
I do not want to rebuild or update my
code for their changes.
I do not want to “know” the location of
the pipeline or model.
 (WIP) NNStreamer 2.2+
“ml-service”
https://nnstreamer.ai https://github.com/nnstreamer
Future Direction / New Requirements
Among-Device Training & AI Personalization
Lightweight Device
(Cortex M4)
High-performance Device
(Cortex A7x + GPU + NPU)
Inference Pipeline
Training Pipeline
(AI Personalization)
Data Source Model
Data to train
Data Source’
Model
updates
https://nnstreamer.ai https://github.com/nnstreamer
Future Direction / New Requirements
Matter & SmartThings: Home IoT Standardization
 Inter-device AI Data Stream Standard?
(Video data stream standard: discussion started)
More features & adaptation for “among-device AI”
- More protocols (webrtc, rtsp, ......)
- More OS/device supports (Tizen-RT, robotics, ......)
- Merging w/ another open source project, AITT
AI Data Stream Standard?
Open Source Community
• Join us @ github.com/nnstreamer/nnstreamer
We already have contributors and users from
- NXP, Collabora, Fainders.AI, Klleon.io, ......
- Samsung Products include: mobile, wearable, TV, robotic
vacuum, robotics, oven, fridgers, and many more!

More Related Content

Similar to ICSE 2022 SEIP: Toward Among-Device AI from On-Device AI with Stream Pipelines

Instrumenting Kubernetes for Observability Using AWS X-Ray and Amazon CloudWa...
Instrumenting Kubernetes for Observability Using AWS X-Ray and Amazon CloudWa...Instrumenting Kubernetes for Observability Using AWS X-Ray and Amazon CloudWa...
Instrumenting Kubernetes for Observability Using AWS X-Ray and Amazon CloudWa...Amazon Web Services
 
Kubecon SIG Apps December 2017 Update
Kubecon SIG Apps December 2017 UpdateKubecon SIG Apps December 2017 Update
Kubecon SIG Apps December 2017 UpdateMatthew Farina
 
Open stack gbp final sn-4-slideshare
Open stack gbp final sn-4-slideshareOpen stack gbp final sn-4-slideshare
Open stack gbp final sn-4-slideshareSumit Naiksatam
 
Building Application Dashboards Using Wire Cloud
Building Application Dashboards Using Wire CloudBuilding Application Dashboards Using Wire Cloud
Building Application Dashboards Using Wire CloudFIWARE
 
apidays LIVE London 2021 - Getting started with Event-Driven APIs by Hugo Gue...
apidays LIVE London 2021 - Getting started with Event-Driven APIs by Hugo Gue...apidays LIVE London 2021 - Getting started with Event-Driven APIs by Hugo Gue...
apidays LIVE London 2021 - Getting started with Event-Driven APIs by Hugo Gue...apidays
 
FIWARE IoT Proposal & Community
FIWARE IoT Proposal & CommunityFIWARE IoT Proposal & Community
FIWARE IoT Proposal & CommunityFIWARE
 
Putting microservices on a diet with istio
Putting microservices on a diet with istioPutting microservices on a diet with istio
Putting microservices on a diet with istioQAware GmbH
 
Red hat forum istio & kiali - introduction and overview
Red hat forum   istio & kiali - introduction and overviewRed hat forum   istio & kiali - introduction and overview
Red hat forum istio & kiali - introduction and overviewLiran Cohen
 
Azure Cloud Application Development Workshop - UGIdotNET
Azure Cloud Application Development Workshop - UGIdotNETAzure Cloud Application Development Workshop - UGIdotNET
Azure Cloud Application Development Workshop - UGIdotNETLorenzo Barbieri
 
Programming IoT Gateways with macchina.io
Programming IoT Gateways with macchina.ioProgramming IoT Gateways with macchina.io
Programming IoT Gateways with macchina.ioGünter Obiltschnig
 
apidays LIVE Paris 2021 - Getting started with Event-Driven APis by Hugo Guer...
apidays LIVE Paris 2021 - Getting started with Event-Driven APis by Hugo Guer...apidays LIVE Paris 2021 - Getting started with Event-Driven APis by Hugo Guer...
apidays LIVE Paris 2021 - Getting started with Event-Driven APis by Hugo Guer...apidays
 
apidays LIVE Paris - Bring the API culture to DevOps teams by Christophe Bour...
apidays LIVE Paris - Bring the API culture to DevOps teams by Christophe Bour...apidays LIVE Paris - Bring the API culture to DevOps teams by Christophe Bour...
apidays LIVE Paris - Bring the API culture to DevOps teams by Christophe Bour...apidays
 
Running the-next-generation-of-cloud-native-applications-using-open-applicati...
Running the-next-generation-of-cloud-native-applications-using-open-applicati...Running the-next-generation-of-cloud-native-applications-using-open-applicati...
Running the-next-generation-of-cloud-native-applications-using-open-applicati...NaveedAhmad239
 
Predix Builder Roadshow
Predix Builder RoadshowPredix Builder Roadshow
Predix Builder RoadshowPredix
 
Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)
Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)
Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)QAware GmbH
 
Observability for Modern Applications (CON306-R1) - AWS re:Invent 2018
Observability for Modern Applications (CON306-R1) - AWS re:Invent 2018Observability for Modern Applications (CON306-R1) - AWS re:Invent 2018
Observability for Modern Applications (CON306-R1) - AWS re:Invent 2018Amazon Web Services
 
WbeRTC in IOT presented in KrankyGeek
WbeRTC in IOT presented in KrankyGeekWbeRTC in IOT presented in KrankyGeek
WbeRTC in IOT presented in KrankyGeekALTANAI BISHT
 
Spring on PAS - Fabio Marinelli
Spring on PAS - Fabio MarinelliSpring on PAS - Fabio Marinelli
Spring on PAS - Fabio MarinelliVMware Tanzu
 
Enabling SDN for Service Providers by Khay Kid Chow
Enabling SDN for Service Providers by Khay Kid ChowEnabling SDN for Service Providers by Khay Kid Chow
Enabling SDN for Service Providers by Khay Kid ChowMyNOG
 

Similar to ICSE 2022 SEIP: Toward Among-Device AI from On-Device AI with Stream Pipelines (20)

Instrumenting Kubernetes for Observability Using AWS X-Ray and Amazon CloudWa...
Instrumenting Kubernetes for Observability Using AWS X-Ray and Amazon CloudWa...Instrumenting Kubernetes for Observability Using AWS X-Ray and Amazon CloudWa...
Instrumenting Kubernetes for Observability Using AWS X-Ray and Amazon CloudWa...
 
Kubecon SIG Apps December 2017 Update
Kubecon SIG Apps December 2017 UpdateKubecon SIG Apps December 2017 Update
Kubecon SIG Apps December 2017 Update
 
Open stack gbp final sn-4-slideshare
Open stack gbp final sn-4-slideshareOpen stack gbp final sn-4-slideshare
Open stack gbp final sn-4-slideshare
 
Building Application Dashboards Using Wire Cloud
Building Application Dashboards Using Wire CloudBuilding Application Dashboards Using Wire Cloud
Building Application Dashboards Using Wire Cloud
 
apidays LIVE London 2021 - Getting started with Event-Driven APIs by Hugo Gue...
apidays LIVE London 2021 - Getting started with Event-Driven APIs by Hugo Gue...apidays LIVE London 2021 - Getting started with Event-Driven APIs by Hugo Gue...
apidays LIVE London 2021 - Getting started with Event-Driven APIs by Hugo Gue...
 
FIWARE IoT Proposal & Community
FIWARE IoT Proposal & CommunityFIWARE IoT Proposal & Community
FIWARE IoT Proposal & Community
 
Putting microservices on a diet with istio
Putting microservices on a diet with istioPutting microservices on a diet with istio
Putting microservices on a diet with istio
 
Red hat forum istio & kiali - introduction and overview
Red hat forum   istio & kiali - introduction and overviewRed hat forum   istio & kiali - introduction and overview
Red hat forum istio & kiali - introduction and overview
 
Azure Cloud Application Development Workshop - UGIdotNET
Azure Cloud Application Development Workshop - UGIdotNETAzure Cloud Application Development Workshop - UGIdotNET
Azure Cloud Application Development Workshop - UGIdotNET
 
Programming IoT Gateways with macchina.io
Programming IoT Gateways with macchina.ioProgramming IoT Gateways with macchina.io
Programming IoT Gateways with macchina.io
 
apidays LIVE Paris 2021 - Getting started with Event-Driven APis by Hugo Guer...
apidays LIVE Paris 2021 - Getting started with Event-Driven APis by Hugo Guer...apidays LIVE Paris 2021 - Getting started with Event-Driven APis by Hugo Guer...
apidays LIVE Paris 2021 - Getting started with Event-Driven APis by Hugo Guer...
 
apidays LIVE Paris - Bring the API culture to DevOps teams by Christophe Bour...
apidays LIVE Paris - Bring the API culture to DevOps teams by Christophe Bour...apidays LIVE Paris - Bring the API culture to DevOps teams by Christophe Bour...
apidays LIVE Paris - Bring the API culture to DevOps teams by Christophe Bour...
 
Running the-next-generation-of-cloud-native-applications-using-open-applicati...
Running the-next-generation-of-cloud-native-applications-using-open-applicati...Running the-next-generation-of-cloud-native-applications-using-open-applicati...
Running the-next-generation-of-cloud-native-applications-using-open-applicati...
 
Predix Builder Roadshow
Predix Builder RoadshowPredix Builder Roadshow
Predix Builder Roadshow
 
Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)
Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)
Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)
 
Observability for Modern Applications (CON306-R1) - AWS re:Invent 2018
Observability for Modern Applications (CON306-R1) - AWS re:Invent 2018Observability for Modern Applications (CON306-R1) - AWS re:Invent 2018
Observability for Modern Applications (CON306-R1) - AWS re:Invent 2018
 
WbeRTC in IOT presented in KrankyGeek
WbeRTC in IOT presented in KrankyGeekWbeRTC in IOT presented in KrankyGeek
WbeRTC in IOT presented in KrankyGeek
 
Spring on PAS - Fabio Marinelli
Spring on PAS - Fabio MarinelliSpring on PAS - Fabio Marinelli
Spring on PAS - Fabio Marinelli
 
Enabling SDN for Service Providers by Khay Kid Chow
Enabling SDN for Service Providers by Khay Kid ChowEnabling SDN for Service Providers by Khay Kid Chow
Enabling SDN for Service Providers by Khay Kid Chow
 
Cisco project ideas
Cisco   project ideasCisco   project ideas
Cisco project ideas
 

Recently uploaded

OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamtakuyayamamoto1800
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke
 
A Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdfA Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdfkalichargn70th171
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobus
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2
 
Designing for Privacy in Amazon Web Services
Designing for Privacy in Amazon Web ServicesDesigning for Privacy in Amazon Web Services
Designing for Privacy in Amazon Web ServicesKrzysztofKkol1
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfGlobus
 
Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfInto the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfOrtus Solutions, Corp
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxwottaspaceseo
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Shahin Sheidaei
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageGlobus
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTier1 app
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfAMB-Review
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisGlobus
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...informapgpstrackings
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Globus
 

Recently uploaded (20)

OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
 
A Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdfA Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdf
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
Designing for Privacy in Amazon Web Services
Designing for Privacy in Amazon Web ServicesDesigning for Privacy in Amazon Web Services
Designing for Privacy in Amazon Web Services
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
 
Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfInto the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdf
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
 
Corporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMSCorporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMS
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
 

ICSE 2022 SEIP: Toward Among-Device AI from On-Device AI with Stream Pipelines

  • 1. Toward Among-Device AI from On-Device AI with Stream Pipelines https://nnstreamer.ai MyungJoo Ham, Ph.D. May, 2022 NNStreamer is a project hosted by Linux Foundation AI & Data MyungJoo Ham, Sangjung Woo, Jaeyun Jung, Wook Song, Gichan Jang, Yongjoo Ahn, Hyoungjoo Ahn
  • 2. https://nnstreamer.ai https://github.com/nnstreamer Background: Applications Augmented Worker (Factory) Identify Task Monitor Activities (hand movement, vibration, sound) Check if the activity is valid (e.g., complete assembly?) Notify if the recent activity requires further actions / corrections
  • 4. https://nnstreamer.ai https://github.com/nnstreamer Background: Applications Consistent AI Services for Home Appliances Consistent Service Quality & Performance + Consistent Context!
  • 5. https://nnstreamer.ai https://github.com/nnstreamer Objectives Devices from different manufacturers!! Consistent AI Services for All Devices
  • 6. https://nnstreamer.ai https://github.com/nnstreamer Recap: On-Device AI Pipeline Framework ICSE 2021 SEIP, “NNStreamer: Efficient and Agile Development of On-Device AI Systems” Neural Networks == Filters of Stream Pipelines On-Device AI Services as Pipelines (Gstreamer) Pipeline description Implementation • Lower devel cost • Lower CPU/mem overhead • Higher throughput • Higher porttability
  • 8. https://nnstreamer.ai https://github.com/nnstreamer Requirements of Among-Device AI Pipelines Each AI or input/output service exists atomically and is deployed independently. Such a service includes an AI inference processor, a shared input stream, or a user interface. R1, deployability CAMERA SRC / by Team A AI Service 001 / by Team B AI Service X / by Team B AI Service Y / by Team C Display SINK / by Team A CAMERA SRC / by Team A App 003 / by Team D AI Service 002 / by Team A
  • 9. https://nnstreamer.ai https://github.com/nnstreamer Requirements of Among-Device AI Pipelines Transmission between such entities may be schemaless, or updating schema should not require recompiling or redeploying software. It should be able to compress and synchronize transmitted data frames from different devices. R2, portability CAMERA SRC / by Team A AI Service 001 / by Team B AI Service X / by Team B AI Service Y / by Team C Display SINK / by Team A CAMERA SRC / by Team A App 003 / by Team D AI Service 002 / by Team A
  • 10. https://nnstreamer.ai https://github.com/nnstreamer Requirements of Among-Device AI Pipelines Discovering such entities and connecting to them should not require the knowledge of specific addresses (e.g., IP address). Besides, there may be multiple entities discovered for a given connection request, where one of them will be connected. R3, discoverability AI Service X / by Team B AI Service Y / by Team C AI Service X / by Team D Need Service “Y” (e.g., “face id”) Need Service “X” (e.g., “speech recog”) Interchangeable
  • 11. https://nnstreamer.ai https://github.com/nnstreamer Requirements of Among-Device AI Pipelines If a connected entity becomes unavailable, it can be automatically connected to an alternative entity R4, fault-tolerance AI Service X / by Team B AI Service X / by Team D Need Service “X” (e.g., “speech recog”) Serves as “fault tolerance fallback” for 1 1 2 Serves as “fault tolerance fallback” for 2
  • 12. https://nnstreamer.ai https://github.com/nnstreamer Requirements of Among-Device AI Pipelines Any vendors and application developers may freely use, alter, or redistribute the given software framework for any purpose without charges. Besides, it is desirable if anyone may participate in its development to reduce fragmentation and a bias for an affiliation. R5, openness CAMERA SRC / by Team A AI Service 001 / by Team B AI Service X / by Team B AI Service Y / by Team C Display SINK / by Team A CAMERA SRC / by Team A App 003 / by Team D AI Service 002 / by Team A
  • 13. https://nnstreamer.ai https://github.com/nnstreamer Requirements of Among-Device AI Pipelines It should be extensible for different platforms. In other words, it should be able to be connected with different AI pipeline frameworks (e.g., MediaPipe [12] and DeepStream [15]) or services with different operating systems, especially those for microcontrollers (a.k.a. RTOS). R6, extensibility Ultra-lightweight device (RTOS) DeepStream Pipeline in Jetson or AWS/Azure AI Service 001 / by Team B AI Service X / by Team B AI Service Y / by Team C Display SINK / by Team A CAMERA SRC / by Team A AI Service 002 / by Team A “extremely portable” communication base class
  • 14. https://nnstreamer.ai https://github.com/nnstreamer Requirements of Among-Device AI Pipelines Each AI service is an on-device AI application that has requirements mentioned in [8].  Don’t deteriorate the previous work. (backward compatibility?) R7
  • 16. https://nnstreamer.ai https://github.com/nnstreamer Design & Features Protocol: Pub/Sub based Stream Sink/Src Publisher Subscriber Broker (MQTT) Pipeline Pipeline mqttsink mqttsrc …… …… Data* Connection & Control I publish “camera/left/1920x1080” I need “camera/left/*” * In 2021, data-control separation was WIP. (applied in query only) Since NNStreamer 2.1, this is applied to pub/sub, too.
  • 17. https://nnstreamer.ai https://github.com/nnstreamer Design & Features Protocol: Query, “Inference Off-loading” + Data-Control Separation Pipeline (“client”) Pipeline (“server”) Query Client …… Query Server Src Query Server Sink …… …… Publisher Subscriber “obj-detect/homeenv/yolov3/mod” “obj-detect/homeenv/*” Pipeline (“server”) Pipeline (“server”) “obj-detect/homeenv/ssd/mod” “obj-detect/homeenv/yolov4/org” Pipeline (“client”) Pipeline (“client”) Pipeline (“client”) Pipeline (“client”) Pipeline (“client”) Pipeline (“client”) Pipeline (“client”) Pipeline (“client”) Broker (MQTT) (control/connection only)
  • 18. https://nnstreamer.ai https://github.com/nnstreamer Design & Features • Synchronization & Timestamp Management • “NNStreamer-Edge” Lightweight Library for Pub/Sub & Query • For non-GStreamer / non-pipeline processes • Note: this is merged with another open source project, “AITT” (MQTT for Distributed AI services) Others..
  • 20. https://nnstreamer.ai https://github.com/nnstreamer Evaluation Result: Application Examples Augmented Worker (Factory) Identify Task Monitor Activities (hand movement, vibration, sound) Check if the activity is valid (e.g., complete assembly?) Notify if the recent activity requires further actions / corrections
  • 21. https://nnstreamer.ai https://github.com/nnstreamer Evaluation Result: Application Examples Augmented Worker (Factory) System expressed in < 20 lines, with no noticeable overheads
  • 22. https://nnstreamer.ai https://github.com/nnstreamer Evaluation Result: Performance MQTT vs ZeroMQ: MQTT slows down to 47% with x3.18 CPU overheads! Performance / MQTT – ZeroMQ comparison
  • 23. https://nnstreamer.ai https://github.com/nnstreamer Evaluation Result: Performance MQTT-Hybrid (separatered) vs TCP-raw: No more overheads! Performance / Query + Data-Control Separation
  • 25. https://nnstreamer.ai https://github.com/nnstreamer Future Direction / New Requirements Separate AI service (pipeline writers) and AI application (pipeline users) developers AI Service Deployment 옷 옷 AI Service Developer (pipeline & model writer) AI App Developer (pipeline user) I want to keep updating pipelines & models I want to deploy services directly. I do not want to rebuild or update my code for their changes. I do not want to “know” the location of the pipeline or model.  (WIP) NNStreamer 2.2+ “ml-service”
  • 26. https://nnstreamer.ai https://github.com/nnstreamer Future Direction / New Requirements Among-Device Training & AI Personalization Lightweight Device (Cortex M4) High-performance Device (Cortex A7x + GPU + NPU) Inference Pipeline Training Pipeline (AI Personalization) Data Source Model Data to train Data Source’ Model updates
  • 27. https://nnstreamer.ai https://github.com/nnstreamer Future Direction / New Requirements Matter & SmartThings: Home IoT Standardization  Inter-device AI Data Stream Standard? (Video data stream standard: discussion started) More features & adaptation for “among-device AI” - More protocols (webrtc, rtsp, ......) - More OS/device supports (Tizen-RT, robotics, ......) - Merging w/ another open source project, AITT AI Data Stream Standard?
  • 28. Open Source Community • Join us @ github.com/nnstreamer/nnstreamer We already have contributors and users from - NXP, Collabora, Fainders.AI, Klleon.io, ...... - Samsung Products include: mobile, wearable, TV, robotic vacuum, robotics, oven, fridgers, and many more!