SlideShare a Scribd company logo
1 of 21
Download to read offline
© 2019 Arm Limited
Developing with Docker
for the Arm Architecture
Jason Andrews
jason.andrews@arm.com
November 5, 2019
2 © 2019 Arm Limited
Docker Desktop - Any Device, Any Architecture
2
Build and Run both x86 and Arm images using Docker
Desktop on x86 Mac and Windows Developer Machines
3 © 2019 Arm Limited
Windows 10
Docker
Desktop
Hyper-V
arm/v6
x86
macOS
HyperKit
QEMUDocker Engine
arm/v7 arm64
Managed
by
Docker
Desktop
Application
Code
x86_64
Docker Desktop Architecture
4 © 2019 Arm Limited
Docker Edge/IoT Developer Kits
Embedded developers become cloud native in minutes
• Application templates take care of local & cloud
provisioning
• Device setup and app runtime uses Secure Engine
• App deployment trigger Desktop & Pipelines; scan & sign
with DTR; deploy to devices
2. Inner Loop - Emulation
environment
1. Embedded
developer loop
3. Native build on
remote server
4. CI/CD pipeline
Docker
Desktop Enterprise
Docker
Trusted Registry
1
2
3
Meetup outline
Developing with Docker
Arm C/C++ examples
Application templates
6 © 2019 Arm Limited
Brief History of SW Development & Deployment
Embedded engineer perspectiveDevelopDeploy
1950s 1990s 2010s
Punch a lot of holes in a
lot of cards
Set ROM/Flash in
custom assembly line
Pull app from cloud, run
Cloud-based
Embedded software development practices
are stuck in the 1990s.
Cross-compile, copy,
ssh/scp, run
Punch holes in cards
Future embedded
development
7 © 2019 Arm Limited
Alternatives for embedded software development
Docker improves on cross-compilation and target-compilation
Embedded software development options
Docker Cross-compile Target Build
Complexity Consistent environment Different environment leads to more
porting struggles (especially around
library dependencies)
Same environment
At scale
deployment
Simple, must setup docker
on each target
Medium, must reconfigure each
target environment
Generally slower compile time due
to target performance
Build time Medium…host PC with
QEMU, Good using remote
Arm build farm
Quickest, host PC speeds Very slow, must reconfigure
environment and app on each
8 © 2019 Arm Limited
Docker: Where is it tomorrow?
Develop on Arm, for Arm
Docker enables an easy
transition to Arm servers
which can be used for
software development
AWS A1
Simply develop and deploy
Manage multi-architecture
IoT network development
and deployment with Docker,
from factories to hotels
Rich IoT • This
• That
• The other thing
Easily compile and deploy
Traditional Arm compilation
requires 20+ steps and many
3rd-party packages, requiring
expert-level knowledge
Edge ML • This
• That
• The other thing
Increase big-data
performance
Docker simplifies deployment
of ‘computational storage’
applications, drastically
increasing processing
Smart SSD
9 © 2019 Arm Limited
Amazon EC2 A1 instances
Powered by Arm-based processors
Up to 45% lowercostforscale-outworkloads1
Powered byAWSGraviton Processorsthatfeature 64-bit
Arm Neoverse coresand custom silicon designed byAWS2
Amazon Linux2, Red HatEnterprise Linux7.6, Ubuntu
16.04 LTS & 18.04 LTS, and SUSELinuxEnterprise Serverfor
Arm 15 available now
3
Targetworkloadsinclude Web servers, containerized
microservices, caching fleets, distributed data stores, as
well asdevelopment/testenvironments
4
10 © 2019 Arm Limited
Raspberry Pi 4
Arm development board to run Docker
Board information
A 1.5GHz quad-core 64-bit ARM Cortex-A72 CPU
1GB, 2GB, or 4GB of LPDDR4 SDRAM
Full-throughput Gigabit Ethernet
Dual-band 802.11ac wireless networking
Bluetooth 5.0 and USB 3.0
Dual monitor support, at resolutions up to 4K
Complete compatibility with earlier Raspberry Pi
products
The picture can't be displayed.
11 © 2019 Arm Limited
Meetup goals
Targeting Linux application development with C/C++
• Multi-architecture images using docker buildx
• Local development on Windows and Mac
• Using remote build and run on AWS A1 and Raspberry Pi
• Docker templates to automate developer setup
12 © 2019 Arm Limited
Meetup applications
Two primary exercises
• PART 1: warm up application using a hello world C program
• Docker buildx for multi-architecture images
• Docker Hub
• Easy application migration across laptop, AWS A1, and Raspberry Pi
• PART 2: Arm NN machine learning SDK application
• More realistic software development on Arm using complex SDK
• Remote build with docker buildx
• Multiple docker images for base tools, Arm NN SDK, application development, and deployment
© 2019 Arm Limited
Hello World example
Jump to demo
14 © 2019 Arm Limited
MNIST: the 'Hello World!’ of ML
http://yann.lecun.com/exdb/mnist/
Dataset format
• There are four files:
• Training set
contains 60.000
examples
• Testing set contains
10.000 examples
• Pixels represented
by values from 0
(white) to 255
(black), organized
row-wise.
ModelExample Dataset Neural network
New input Neural Network Model
TrainingInference
Prediction
”2”[96.0% confidence]
15 © 2019 Arm Limited
Example Application with Arm NN and Arm Compute Library
MNIST application using Arm NN and Compute Library
1. C++ application to classify MNIST digits
• Using framework parsers provided by Arm NN
2. Arm NN to parse TensorFlow model
• The inference engine calls the Arm NN API
• Alternatively, directly calls the Compute Library
3. Compute Library running on Cortex-A
1
2
3
Compute Library
Application
TensorFlow
Arm NN
TF Parser
Cortex-A
CPUs
2
1
3
https://github.com/ARM-software/armnn
© 2019 Arm Limited
Machine Learning
example
Jump to demo
17 © 2019 Arm Limited
Application templates
Available in Docker Desktop Enterprise
• Generate project
scaffolding
• Jumpstart new
developers
• Customized
templates for
each application
© 2019 Arm Limited
Docker templates
examples
Jump to demo
19 © 2019 Arm Limited
#ArmAIoTDevSummit#ArmAIoTDevSummitwww.arm.com/aiot-dev-summit
Get $75 off with code ARMMBED
20 © 2019 Arm Limited
Final notes
Links to more information
• Reach out if you are interested in doing more with Docker tools, we’ll setup time to
discuss with you and your team
• Trial licenses for Docker Desktop Enterprise are available to try application templates
• Contact Marc Meunier: marc.meunier@docker.com
• Additional articles and GitHub links: https://is.gd/Docker4Arm
• Arm TechCon 2019 workshop instructions: http://is.gd/techcon
Thank You
Danke
Merci
谢谢
ありがとう
Gracias
Kiitos
감사합니다
ध"यवाद
‫ﺷ‬‫ﻛ‬‫ر‬ً‫ا‬
‫ת‬‫ו‬‫ד‬‫ה‬
© 2019 Arm Limited

More Related Content

What's hot

Zero-Copy Event-Driven Servers with Netty
Zero-Copy Event-Driven Servers with NettyZero-Copy Event-Driven Servers with Netty
Zero-Copy Event-Driven Servers with Netty
Daniel Bimschas
 

What's hot (20)

From distributed caches to in-memory data grids
From distributed caches to in-memory data gridsFrom distributed caches to in-memory data grids
From distributed caches to in-memory data grids
 
Staying on Topic - Invoke OpenFaaS functions with Kafka
Staying on Topic - Invoke OpenFaaS functions with KafkaStaying on Topic - Invoke OpenFaaS functions with Kafka
Staying on Topic - Invoke OpenFaaS functions with Kafka
 
Not Your Mother's Kafka - Deep Dive into Confluent Cloud Infrastructure | Gwe...
Not Your Mother's Kafka - Deep Dive into Confluent Cloud Infrastructure | Gwe...Not Your Mother's Kafka - Deep Dive into Confluent Cloud Infrastructure | Gwe...
Not Your Mother's Kafka - Deep Dive into Confluent Cloud Infrastructure | Gwe...
 
Introduction to Nginx
Introduction to NginxIntroduction to Nginx
Introduction to Nginx
 
Secrets of Performance Tuning Java on Kubernetes
Secrets of Performance Tuning Java on KubernetesSecrets of Performance Tuning Java on Kubernetes
Secrets of Performance Tuning Java on Kubernetes
 
Userspace networking
Userspace networkingUserspace networking
Userspace networking
 
Open vSwitch 패킷 처리 구조
Open vSwitch 패킷 처리 구조Open vSwitch 패킷 처리 구조
Open vSwitch 패킷 처리 구조
 
Introduction to Kubernetes Workshop
Introduction to Kubernetes WorkshopIntroduction to Kubernetes Workshop
Introduction to Kubernetes Workshop
 
Xây dụng và kết hợp Kafka, Druid, Superset để đua vào ứng dụng phân tích dữ l...
Xây dụng và kết hợp Kafka, Druid, Superset để đua vào ứng dụng phân tích dữ l...Xây dụng và kết hợp Kafka, Druid, Superset để đua vào ứng dụng phân tích dữ l...
Xây dụng và kết hợp Kafka, Druid, Superset để đua vào ứng dụng phân tích dữ l...
 
Open jdk8 openj9-with_icedtea-web
Open jdk8 openj9-with_icedtea-webOpen jdk8 openj9-with_icedtea-web
Open jdk8 openj9-with_icedtea-web
 
Building Large-Scale Stream Infrastructures Across Multiple Data Centers with...
Building Large-Scale Stream Infrastructures Across Multiple Data Centers with...Building Large-Scale Stream Infrastructures Across Multiple Data Centers with...
Building Large-Scale Stream Infrastructures Across Multiple Data Centers with...
 
20080311 - Paris Vi Master STL TA - Initiation Maven
20080311 - Paris Vi Master STL TA - Initiation Maven20080311 - Paris Vi Master STL TA - Initiation Maven
20080311 - Paris Vi Master STL TA - Initiation Maven
 
Microservice API Gateways with NGINX
Microservice API Gateways with NGINXMicroservice API Gateways with NGINX
Microservice API Gateways with NGINX
 
Why we love pgpool-II and why we hate it!
Why we love pgpool-II and why we hate it!Why we love pgpool-II and why we hate it!
Why we love pgpool-II and why we hate it!
 
HBase coprocessors, Uses, Abuses, Solutions
HBase coprocessors, Uses, Abuses, SolutionsHBase coprocessors, Uses, Abuses, Solutions
HBase coprocessors, Uses, Abuses, Solutions
 
Kafka and ibm event streams basics
Kafka and ibm event streams basicsKafka and ibm event streams basics
Kafka and ibm event streams basics
 
Environment management in a continuous delivery world (3)
Environment management in a continuous delivery world (3)Environment management in a continuous delivery world (3)
Environment management in a continuous delivery world (3)
 
Disaster Recovery with MirrorMaker 2.0 (Ryanne Dolan, Cloudera) Kafka Summit ...
Disaster Recovery with MirrorMaker 2.0 (Ryanne Dolan, Cloudera) Kafka Summit ...Disaster Recovery with MirrorMaker 2.0 (Ryanne Dolan, Cloudera) Kafka Summit ...
Disaster Recovery with MirrorMaker 2.0 (Ryanne Dolan, Cloudera) Kafka Summit ...
 
Storage Virtualization
Storage VirtualizationStorage Virtualization
Storage Virtualization
 
Zero-Copy Event-Driven Servers with Netty
Zero-Copy Event-Driven Servers with NettyZero-Copy Event-Driven Servers with Netty
Zero-Copy Event-Driven Servers with Netty
 

Similar to Developing with Docker for the Arm Architecture

Streaming Sensor Data Slides_Virender
Streaming Sensor Data Slides_VirenderStreaming Sensor Data Slides_Virender
Streaming Sensor Data Slides_Virender
vithakur
 
20190613 - IBM Cloud Côte d'Azur meetup - "Cloud & Containers"
20190613 - IBM Cloud Côte d'Azur meetup - "Cloud & Containers"20190613 - IBM Cloud Côte d'Azur meetup - "Cloud & Containers"
20190613 - IBM Cloud Côte d'Azur meetup - "Cloud & Containers"
IBM France Lab
 

Similar to Developing with Docker for the Arm Architecture (20)

Multi-Arch Infra From the Ground Up.pptx
Multi-Arch Infra From the Ground Up.pptxMulti-Arch Infra From the Ground Up.pptx
Multi-Arch Infra From the Ground Up.pptx
 
Dockercon eu tour 2015 - Devoxx Casablanca
Dockercon eu tour 2015 - Devoxx CasablancaDockercon eu tour 2015 - Devoxx Casablanca
Dockercon eu tour 2015 - Devoxx Casablanca
 
Developing and Deploying Microservices to IBM Cloud Private
Developing and Deploying Microservices to IBM Cloud PrivateDeveloping and Deploying Microservices to IBM Cloud Private
Developing and Deploying Microservices to IBM Cloud Private
 
Docker Bday #5, SF Edition: Introduction to Docker
Docker Bday #5, SF Edition: Introduction to DockerDocker Bday #5, SF Edition: Introduction to Docker
Docker Bday #5, SF Edition: Introduction to Docker
 
IBM Cloud Paris Meetup - 20180628 - IBM Cloud Private
IBM Cloud Paris Meetup - 20180628 - IBM Cloud PrivateIBM Cloud Paris Meetup - 20180628 - IBM Cloud Private
IBM Cloud Paris Meetup - 20180628 - IBM Cloud Private
 
Docker OpenStack Cloud Foundry
Docker OpenStack Cloud FoundryDocker OpenStack Cloud Foundry
Docker OpenStack Cloud Foundry
 
wisecloud based open cloud implementation guide
wisecloud based open cloud implementation guidewisecloud based open cloud implementation guide
wisecloud based open cloud implementation guide
 
Elevating your Continuous Delivery Strategy Above the Rolling Clouds
Elevating your Continuous Delivery Strategy Above the Rolling CloudsElevating your Continuous Delivery Strategy Above the Rolling Clouds
Elevating your Continuous Delivery Strategy Above the Rolling Clouds
 
IBM Cloud UCC Talk, 22nd November 2017
IBM Cloud UCC Talk, 22nd November 2017IBM Cloud UCC Talk, 22nd November 2017
IBM Cloud UCC Talk, 22nd November 2017
 
.docker : How to deploy Digital Experience in a container, drinking a cup of ...
.docker : How to deploy Digital Experience in a container, drinking a cup of ....docker : How to deploy Digital Experience in a container, drinking a cup of ...
.docker : How to deploy Digital Experience in a container, drinking a cup of ...
 
Docker Orchestration: Welcome to the Jungle! JavaOne 2015
Docker Orchestration: Welcome to the Jungle! JavaOne 2015Docker Orchestration: Welcome to the Jungle! JavaOne 2015
Docker Orchestration: Welcome to the Jungle! JavaOne 2015
 
Tampere Docker meetup - Happy 5th Birthday Docker
Tampere Docker meetup - Happy 5th Birthday DockerTampere Docker meetup - Happy 5th Birthday Docker
Tampere Docker meetup - Happy 5th Birthday Docker
 
Docker Birthday #5 Meetup Cluj - Presentation
Docker Birthday #5 Meetup Cluj - PresentationDocker Birthday #5 Meetup Cluj - Presentation
Docker Birthday #5 Meetup Cluj - Presentation
 
Cloud foundry Docker Openstack - Leading Open Source Triumvirate
Cloud foundry Docker Openstack - Leading Open Source TriumvirateCloud foundry Docker Openstack - Leading Open Source Triumvirate
Cloud foundry Docker Openstack - Leading Open Source Triumvirate
 
Docker & aPaaS: Enterprise Innovation and Trends for 2015
Docker & aPaaS: Enterprise Innovation and Trends for 2015Docker & aPaaS: Enterprise Innovation and Trends for 2015
Docker & aPaaS: Enterprise Innovation and Trends for 2015
 
Blue mix
Blue mixBlue mix
Blue mix
 
Streaming Sensor Data Slides_Virender
Streaming Sensor Data Slides_VirenderStreaming Sensor Data Slides_Virender
Streaming Sensor Data Slides_Virender
 
20190613 - IBM Cloud Côte d'Azur meetup - "Cloud & Containers"
20190613 - IBM Cloud Côte d'Azur meetup - "Cloud & Containers"20190613 - IBM Cloud Côte d'Azur meetup - "Cloud & Containers"
20190613 - IBM Cloud Côte d'Azur meetup - "Cloud & Containers"
 
Docker, how to use it. organize a meeting with IBM products...
Docker, how to use it. organize a meeting with IBM products...Docker, how to use it. organize a meeting with IBM products...
Docker, how to use it. organize a meeting with IBM products...
 
Developing Hybrid Cloud Applications
Developing Hybrid Cloud ApplicationsDeveloping Hybrid Cloud Applications
Developing Hybrid Cloud Applications
 

More from Docker, Inc.

Build & Deploy Multi-Container Applications to AWS
Build & Deploy Multi-Container Applications to AWSBuild & Deploy Multi-Container Applications to AWS
Build & Deploy Multi-Container Applications to AWS
Docker, Inc.
 
Build & Deploy Multi-Container Applications to AWS
Build & Deploy Multi-Container Applications to AWSBuild & Deploy Multi-Container Applications to AWS
Build & Deploy Multi-Container Applications to AWS
Docker, Inc.
 

More from Docker, Inc. (20)

Containerize Your Game Server for the Best Multiplayer Experience
Containerize Your Game Server for the Best Multiplayer Experience Containerize Your Game Server for the Best Multiplayer Experience
Containerize Your Game Server for the Best Multiplayer Experience
 
How to Improve Your Image Builds Using Advance Docker Build
How to Improve Your Image Builds Using Advance Docker BuildHow to Improve Your Image Builds Using Advance Docker Build
How to Improve Your Image Builds Using Advance Docker Build
 
Build & Deploy Multi-Container Applications to AWS
Build & Deploy Multi-Container Applications to AWSBuild & Deploy Multi-Container Applications to AWS
Build & Deploy Multi-Container Applications to AWS
 
Securing Your Containerized Applications with NGINX
Securing Your Containerized Applications with NGINXSecuring Your Containerized Applications with NGINX
Securing Your Containerized Applications with NGINX
 
How To Build and Run Node Apps with Docker and Compose
How To Build and Run Node Apps with Docker and ComposeHow To Build and Run Node Apps with Docker and Compose
How To Build and Run Node Apps with Docker and Compose
 
Hands-on Helm
Hands-on Helm Hands-on Helm
Hands-on Helm
 
Distributed Deep Learning with Docker at Salesforce
Distributed Deep Learning with Docker at SalesforceDistributed Deep Learning with Docker at Salesforce
Distributed Deep Learning with Docker at Salesforce
 
The First 10M Pulls: Building The Official Curl Image for Docker Hub
The First 10M Pulls: Building The Official Curl Image for Docker HubThe First 10M Pulls: Building The Official Curl Image for Docker Hub
The First 10M Pulls: Building The Official Curl Image for Docker Hub
 
Monitoring in a Microservices World
Monitoring in a Microservices WorldMonitoring in a Microservices World
Monitoring in a Microservices World
 
COVID-19 in Italy: How Docker is Helping the Biggest Italian IT Company Conti...
COVID-19 in Italy: How Docker is Helping the Biggest Italian IT Company Conti...COVID-19 in Italy: How Docker is Helping the Biggest Italian IT Company Conti...
COVID-19 in Italy: How Docker is Helping the Biggest Italian IT Company Conti...
 
Predicting Space Weather with Docker
Predicting Space Weather with DockerPredicting Space Weather with Docker
Predicting Space Weather with Docker
 
Become a Docker Power User With Microsoft Visual Studio Code
Become a Docker Power User With Microsoft Visual Studio CodeBecome a Docker Power User With Microsoft Visual Studio Code
Become a Docker Power User With Microsoft Visual Studio Code
 
How to Use Mirroring and Caching to Optimize your Container Registry
How to Use Mirroring and Caching to Optimize your Container RegistryHow to Use Mirroring and Caching to Optimize your Container Registry
How to Use Mirroring and Caching to Optimize your Container Registry
 
Monolithic to Microservices + Docker = SDLC on Steroids!
Monolithic to Microservices + Docker = SDLC on Steroids!Monolithic to Microservices + Docker = SDLC on Steroids!
Monolithic to Microservices + Docker = SDLC on Steroids!
 
Kubernetes at Datadog Scale
Kubernetes at Datadog ScaleKubernetes at Datadog Scale
Kubernetes at Datadog Scale
 
Labels, Labels, Labels
Labels, Labels, Labels Labels, Labels, Labels
Labels, Labels, Labels
 
Using Docker Hub at Scale to Support Micro Focus' Delivery and Deployment Model
Using Docker Hub at Scale to Support Micro Focus' Delivery and Deployment ModelUsing Docker Hub at Scale to Support Micro Focus' Delivery and Deployment Model
Using Docker Hub at Scale to Support Micro Focus' Delivery and Deployment Model
 
Build & Deploy Multi-Container Applications to AWS
Build & Deploy Multi-Container Applications to AWSBuild & Deploy Multi-Container Applications to AWS
Build & Deploy Multi-Container Applications to AWS
 
From Fortran on the Desktop to Kubernetes in the Cloud: A Windows Migration S...
From Fortran on the Desktop to Kubernetes in the Cloud: A Windows Migration S...From Fortran on the Desktop to Kubernetes in the Cloud: A Windows Migration S...
From Fortran on the Desktop to Kubernetes in the Cloud: A Windows Migration S...
 
Sharing is Caring: How to Begin Speaking at Conferences
Sharing is Caring: How to Begin Speaking at ConferencesSharing is Caring: How to Begin Speaking at Conferences
Sharing is Caring: How to Begin Speaking at Conferences
 

Recently uploaded

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Recently uploaded (20)

Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 

Developing with Docker for the Arm Architecture

  • 1. © 2019 Arm Limited Developing with Docker for the Arm Architecture Jason Andrews jason.andrews@arm.com November 5, 2019
  • 2. 2 © 2019 Arm Limited Docker Desktop - Any Device, Any Architecture 2 Build and Run both x86 and Arm images using Docker Desktop on x86 Mac and Windows Developer Machines
  • 3. 3 © 2019 Arm Limited Windows 10 Docker Desktop Hyper-V arm/v6 x86 macOS HyperKit QEMUDocker Engine arm/v7 arm64 Managed by Docker Desktop Application Code x86_64 Docker Desktop Architecture
  • 4. 4 © 2019 Arm Limited Docker Edge/IoT Developer Kits Embedded developers become cloud native in minutes • Application templates take care of local & cloud provisioning • Device setup and app runtime uses Secure Engine • App deployment trigger Desktop & Pipelines; scan & sign with DTR; deploy to devices 2. Inner Loop - Emulation environment 1. Embedded developer loop 3. Native build on remote server 4. CI/CD pipeline Docker Desktop Enterprise Docker Trusted Registry
  • 5. 1 2 3 Meetup outline Developing with Docker Arm C/C++ examples Application templates
  • 6. 6 © 2019 Arm Limited Brief History of SW Development & Deployment Embedded engineer perspectiveDevelopDeploy 1950s 1990s 2010s Punch a lot of holes in a lot of cards Set ROM/Flash in custom assembly line Pull app from cloud, run Cloud-based Embedded software development practices are stuck in the 1990s. Cross-compile, copy, ssh/scp, run Punch holes in cards Future embedded development
  • 7. 7 © 2019 Arm Limited Alternatives for embedded software development Docker improves on cross-compilation and target-compilation Embedded software development options Docker Cross-compile Target Build Complexity Consistent environment Different environment leads to more porting struggles (especially around library dependencies) Same environment At scale deployment Simple, must setup docker on each target Medium, must reconfigure each target environment Generally slower compile time due to target performance Build time Medium…host PC with QEMU, Good using remote Arm build farm Quickest, host PC speeds Very slow, must reconfigure environment and app on each
  • 8. 8 © 2019 Arm Limited Docker: Where is it tomorrow? Develop on Arm, for Arm Docker enables an easy transition to Arm servers which can be used for software development AWS A1 Simply develop and deploy Manage multi-architecture IoT network development and deployment with Docker, from factories to hotels Rich IoT • This • That • The other thing Easily compile and deploy Traditional Arm compilation requires 20+ steps and many 3rd-party packages, requiring expert-level knowledge Edge ML • This • That • The other thing Increase big-data performance Docker simplifies deployment of ‘computational storage’ applications, drastically increasing processing Smart SSD
  • 9. 9 © 2019 Arm Limited Amazon EC2 A1 instances Powered by Arm-based processors Up to 45% lowercostforscale-outworkloads1 Powered byAWSGraviton Processorsthatfeature 64-bit Arm Neoverse coresand custom silicon designed byAWS2 Amazon Linux2, Red HatEnterprise Linux7.6, Ubuntu 16.04 LTS & 18.04 LTS, and SUSELinuxEnterprise Serverfor Arm 15 available now 3 Targetworkloadsinclude Web servers, containerized microservices, caching fleets, distributed data stores, as well asdevelopment/testenvironments 4
  • 10. 10 © 2019 Arm Limited Raspberry Pi 4 Arm development board to run Docker Board information A 1.5GHz quad-core 64-bit ARM Cortex-A72 CPU 1GB, 2GB, or 4GB of LPDDR4 SDRAM Full-throughput Gigabit Ethernet Dual-band 802.11ac wireless networking Bluetooth 5.0 and USB 3.0 Dual monitor support, at resolutions up to 4K Complete compatibility with earlier Raspberry Pi products The picture can't be displayed.
  • 11. 11 © 2019 Arm Limited Meetup goals Targeting Linux application development with C/C++ • Multi-architecture images using docker buildx • Local development on Windows and Mac • Using remote build and run on AWS A1 and Raspberry Pi • Docker templates to automate developer setup
  • 12. 12 © 2019 Arm Limited Meetup applications Two primary exercises • PART 1: warm up application using a hello world C program • Docker buildx for multi-architecture images • Docker Hub • Easy application migration across laptop, AWS A1, and Raspberry Pi • PART 2: Arm NN machine learning SDK application • More realistic software development on Arm using complex SDK • Remote build with docker buildx • Multiple docker images for base tools, Arm NN SDK, application development, and deployment
  • 13. © 2019 Arm Limited Hello World example Jump to demo
  • 14. 14 © 2019 Arm Limited MNIST: the 'Hello World!’ of ML http://yann.lecun.com/exdb/mnist/ Dataset format • There are four files: • Training set contains 60.000 examples • Testing set contains 10.000 examples • Pixels represented by values from 0 (white) to 255 (black), organized row-wise. ModelExample Dataset Neural network New input Neural Network Model TrainingInference Prediction ”2”[96.0% confidence]
  • 15. 15 © 2019 Arm Limited Example Application with Arm NN and Arm Compute Library MNIST application using Arm NN and Compute Library 1. C++ application to classify MNIST digits • Using framework parsers provided by Arm NN 2. Arm NN to parse TensorFlow model • The inference engine calls the Arm NN API • Alternatively, directly calls the Compute Library 3. Compute Library running on Cortex-A 1 2 3 Compute Library Application TensorFlow Arm NN TF Parser Cortex-A CPUs 2 1 3 https://github.com/ARM-software/armnn
  • 16. © 2019 Arm Limited Machine Learning example Jump to demo
  • 17. 17 © 2019 Arm Limited Application templates Available in Docker Desktop Enterprise • Generate project scaffolding • Jumpstart new developers • Customized templates for each application
  • 18. © 2019 Arm Limited Docker templates examples Jump to demo
  • 19. 19 © 2019 Arm Limited #ArmAIoTDevSummit#ArmAIoTDevSummitwww.arm.com/aiot-dev-summit Get $75 off with code ARMMBED
  • 20. 20 © 2019 Arm Limited Final notes Links to more information • Reach out if you are interested in doing more with Docker tools, we’ll setup time to discuss with you and your team • Trial licenses for Docker Desktop Enterprise are available to try application templates • Contact Marc Meunier: marc.meunier@docker.com • Additional articles and GitHub links: https://is.gd/Docker4Arm • Arm TechCon 2019 workshop instructions: http://is.gd/techcon