SlideShare una empresa de Scribd logo
1 de 59
Descargar para leer sin conexión
This project has received funding from
the European Union’s Horizon 20 20
research and innovation programme
under grant agreement No 688403
www.tulipp.eu
TULIPP
Title :
Place :
Date :
Tulipp Workshop @ HIPEAC
Towards Ubiquitous Low-power Image
Processing Platforms – tutorial RTOS
HiPEAC, Valencia, Spain
22nd
of January 2019
Antonio Paolillo, Paul Rodriguez
Shortcomings:
● Hard to debug
● Hard to control
● Libraries?
● Threads? Timers? Devices?
● MMU? Security? Multi-task?
● Multi-core?
● FPGA? Real-time? IRQ<->ISR?
Standalone build
The Reference Platform
Processor
IO
Memory
Component
tools
Operating
System
Toolchain
CPU
What is TULIPP?
(the concept)
What is TULIPP?
(the concept)
Operating
System
HI gh
P erformance
P arallel
E mbedded
R eal-time
O perating
S ystems
HI gh
P erformance
P arallel
E mbedded
R eal-time
O perating
S ystems
HI gh
P erformance
P arallel
E mbedded
R eal-time
O perating
S ystems
HI gh
P erformance
P arallel
E mbedded
R eal-time
O perating
S ystems
HI gh
P erformance
P arallel
E mbedded
R eal-time
O perating
S ystems
HI gh
P erformance
P arallel
E mbedded
R eal-time
O perating
S ystems
This project has received funding from
the European Union’s Horizon 20 20
research and innovation programme
under grant agreement No 688403
Maestro
RTOS
Multi-core made easy
Computing power →
multi-core architecture
Native support
Multi-threaded
applications.
Theoretical guarantees,
practical reliability
Micro-kernel arch
Backed by real-time
research
Classic and more
advanced policies
A familiar environment
Full language support for
C and C++
Posix compliant API
Automated tools to build,
deploy & debug
Emulator support
Pedal to the Metal
More than CPU
Support heterogeneous
architecture
FPGA
Ready for the industry
Philosophy aligned to
industrial standards
e.g. Adaptive AUTOSAR
High performance,
flexible application for
embedded
Main architecture and design
choices
- Hard real-time operating system
- Embedded targets: ARMv7, ARMv8, PowerPC, IA32
- A new micro-kernel written from scratch
- Built for user needs, i.e. small footprint and adapted policies
- Multi-core architecture based on asymmetric kernel
- Real-time model for user applications
- MMU support and virtual address space
- Resource sharing & IPC protocols (mutexes, semaphores,
message passing, etc.)
- Usual OS services (timers, etc.)
Real-time
- User processes have real-time requirements
- Determinism and bounded guarantees
- Being on-time is more important than being fast
- Real-time scheduling policies
- Resource usage is bounded and checked
New micro-kernel
- No “Linux legacy” or other previous mono-core design
- Design for SMP platform
- Asymmetric kernel design
- One core for heavy scheduling operations
- Other cores working to service tasks
- Most services & drivers in user space
- Multi-core IPC protocol to manage it
OS Modules
USER
SPACE
KERNEL
SPACE
HARDWARE
Memory &
resources
Scheduler IPC
System
calls
Processes Interrupts
Process 1 Process 2 Driver 1
Process 3 Process 4 Driver 2
Process 5 Service 1 Service 2
In practice: build an application
Tasks
HIPPEROS
package
CMake make Application
In practice: deploy an application
MPSoC
U-Boot
Run HIP
script
Designer API
Operating System API
● How to design tasks ?
● How to configure the system real-time run-time
behaviour ?
● How to build an HIPPEROS application ?
● How to configure the RTOS ?
Tasks = C / C++ code
HIPPEROS application
= set of pre-defined tasks
Task set file
•Timing parameters
•Periodicity
•Code
•Core affinities
•Timings
•...
CMakelists.txt: Build configuration
In practice: build an application
Tasks
CMakeLists.txt
Taskset.xml
HIPPEROS
package
CMake make Application
OS configuration
● Memory model: single address space / virtual (MMU)
● Task file format: statically linked / ELF format
● Kernel architecture: mono-core / multi-core / many-core
● Scheduling policies: Rate Monotonic / EDF, Partitioned /
Global, ...
● Activate power management features
Let’s play
Lab 1: How to Maestro
Lesson: use an OS
Benefits:
● easier resource management
● robustness
● multitasking
● modularity
● and so on
Activities during this lab
● Develop an example image processing application
for Maestro
● Use the Maestro build system and task
configuration
● Compile, deploy and run with Maestro tools
Develop an application
1. Go to
workspace/maestroLabs/lab1/workspace
2. Open src/main.cpp
3. Fill the main function in using image processing
calls from include/filters.h
STHEM
In STHEM, open the custom project in the
maestro_lab1 directory.
Click cmake, make to compile the project, then
profile it.
Deploying files and running app
$ ./run.py
What happened?
We used the Maestro build system to help us
through the whole development process of a pure
software application.
We used CMake and make through STHEM to
compile, deploy, run and analyse our application.
Going further
You can add tasks with the taskSet.ats file.
Using POSIX and Maestro APIs, tasks can interact
with devices, the kernel and each other.
Lab 2: Maestro and OpenMP
Lesson: use parallelism, use tools to help
Benefits:
● better performance
● low energy
● better scalability
● Maestro and OpenMP make this accessible
What is OpenMP?
OpenMP is a library providing functions and pragmas
to parallelize code easily between multiple threads.
Maestro is packaged with an OpenMP
implementation which we are going to use in this
lab.
Activities during this lab
● Take the example application from Lab 1 and add
OpenMP pragmas
● Compile with OpenMP activated
● Deploy and run
● Measure the performance delta
Develop an application
1. Go to lab2
2. Open src/main.cpp
3. Fill in the main function using image processing
calls from filters.h
Use OpenMP pragmas to run your code on multiple
threads in parallel
STHEM
In STHEM, open the custom project in the
maestro_lab2 directory.
Click cmake, make to compile the project, then
profile it.
Getting serial output
$ ./run.py -l
What happened?
We used the Maestro implementation of OpenMP to
accelerate our image processing application using
parallelism without manually managing threads.
Under the hood, the CMakeLists.txt file defines that
the toolchain to use is Clang and that the application
has to be linked against the OpenMP library.
Going further
Adapt the filters of the image processing library to
use OpenMP
Vary the number of cores and measure the results
Lab 3: Maestro and SDSoC
Lesson: use automatic hardware acceleration
Benefits:
● huge gains in performance
● tools make this accessible
SDSoC
Here we will use the Maestro integration of SDSoC
hardware acceleration tools.
To toggle acceleration of a function, we make
changes in the project definition file.
Activities during this lab
● Take the example application from lab 1, make
sure you are using the predefined filter functions
● Ask SDSoC (through CMake) to accelerate the
hwSobelX filter
● Activate SDSoC in CMakeLists:
○ set(HIPPEROS_TOOLCHAIN "SDSCC")
● Compile, deploy and run
● Measure the performance delta
Get platform files
$ cd /home/tulipp/
$ wget paolillo.be/updateVM.zip
$ unzip updateVM.zip
$ cd updateVM
$ ./updateVM.sh
# sudo password is required
Adapt the application
1. Go to lab1
2. Open CMakeLists.txt
3. Call SDSoC toolchain, in the beginning of the file:
set(HIPPEROS_TOOLCHAIN "SDSCC")
4. Call sdaccel modules:
sdscc_accel(
"${PROJECT_NAME}"
"${APP_DIR}/src/filters.cpp"
"hwSobelX" "0")
Compile for Maestro
$ cd /home/tulipp/workspace/maestroLabs/lab1/solution/
$ mkdir maestro_lab3
$ cd maestro_lab3
$ source /opt/Xilinx/SDx/default/settings64.sh
$ /usr/bin/cmake ..
$ make
# Takes forever...
Deploy and run!
$ ./run.py
Taking forever...
In the interest of time, we’ll do it in front of you with
the pre-built solution.
What happened?
The filter has been accelerated, synthesized, with the
drivers generated, and moved to the FPGA fabric.
The performance gain is huge, like 52x (from debug)
the software version.
Much better than OpenMP multi-core parallelisation,
but requires FPGA to work.
Thank you for
attending!

Más contenido relacionado

La actualidad más candente

SREcon 2016 Performance Checklists for SREs
SREcon 2016 Performance Checklists for SREsSREcon 2016 Performance Checklists for SREs
SREcon 2016 Performance Checklists for SREsBrendan Gregg
 
SciPy 2019: How to Accelerate an Existing Codebase with Numba
SciPy 2019: How to Accelerate an Existing Codebase with NumbaSciPy 2019: How to Accelerate an Existing Codebase with Numba
SciPy 2019: How to Accelerate an Existing Codebase with Numbastan_seibert
 
An Introduction to TensorFlow architecture
An Introduction to TensorFlow architectureAn Introduction to TensorFlow architecture
An Introduction to TensorFlow architectureMani Goswami
 
Contributing to OpenStack
Contributing to OpenStackContributing to OpenStack
Contributing to OpenStackdevkulkarni
 
Highly-scalable Reinforcement Learning RLlib for Real-world Applications
Highly-scalable Reinforcement Learning RLlib for Real-world ApplicationsHighly-scalable Reinforcement Learning RLlib for Real-world Applications
Highly-scalable Reinforcement Learning RLlib for Real-world ApplicationsBill Liu
 
The hitchhiker’s guide to Prometheus
The hitchhiker’s guide to PrometheusThe hitchhiker’s guide to Prometheus
The hitchhiker’s guide to PrometheusBol.com Techlab
 
Devoxx 2014 [incomplete] summary
Devoxx 2014 [incomplete] summaryDevoxx 2014 [incomplete] summary
Devoxx 2014 [incomplete] summaryArtem Oboturov
 
Data Science and Deep Learning on Spark with 1/10th of the Code with Roope As...
Data Science and Deep Learning on Spark with 1/10th of the Code with Roope As...Data Science and Deep Learning on Spark with 1/10th of the Code with Roope As...
Data Science and Deep Learning on Spark with 1/10th of the Code with Roope As...Databricks
 
Puppet DSL: back to the basics
Puppet DSL: back to the basicsPuppet DSL: back to the basics
Puppet DSL: back to the basicsJulien Pivotto
 
CHEP 2018: A Python upgrade to the GooFit package for parallel fitting
CHEP 2018: A Python upgrade to the GooFit package for parallel fittingCHEP 2018: A Python upgrade to the GooFit package for parallel fitting
CHEP 2018: A Python upgrade to the GooFit package for parallel fittingHenry Schreiner
 
Data analytics in the cloud with Jupyter notebooks.
Data analytics in the cloud with Jupyter notebooks.Data analytics in the cloud with Jupyter notebooks.
Data analytics in the cloud with Jupyter notebooks.Graham Dumpleton
 
PuppetConf 2016: Enjoying the Journey from Puppet 3.x to 4.x – Rob Nelson, AT&T
PuppetConf 2016: Enjoying the Journey from Puppet 3.x to 4.x – Rob Nelson, AT&T PuppetConf 2016: Enjoying the Journey from Puppet 3.x to 4.x – Rob Nelson, AT&T
PuppetConf 2016: Enjoying the Journey from Puppet 3.x to 4.x – Rob Nelson, AT&T Puppet
 
GPU and Deep learning best practices
GPU and Deep learning best practicesGPU and Deep learning best practices
GPU and Deep learning best practicesLior Sidi
 
DIANA: Recent developments in GooFit
DIANA: Recent developments in GooFitDIANA: Recent developments in GooFit
DIANA: Recent developments in GooFitHenry Schreiner
 
Intro to Machine Learning for GPUs
Intro to Machine Learning for GPUsIntro to Machine Learning for GPUs
Intro to Machine Learning for GPUsSri Ambati
 

La actualidad más candente (19)

SREcon 2016 Performance Checklists for SREs
SREcon 2016 Performance Checklists for SREsSREcon 2016 Performance Checklists for SREs
SREcon 2016 Performance Checklists for SREs
 
SciPy 2019: How to Accelerate an Existing Codebase with Numba
SciPy 2019: How to Accelerate an Existing Codebase with NumbaSciPy 2019: How to Accelerate an Existing Codebase with Numba
SciPy 2019: How to Accelerate an Existing Codebase with Numba
 
An Introduction to TensorFlow architecture
An Introduction to TensorFlow architectureAn Introduction to TensorFlow architecture
An Introduction to TensorFlow architecture
 
Contributing to OpenStack
Contributing to OpenStackContributing to OpenStack
Contributing to OpenStack
 
Resource Aware Scheduling in Apache Storm
Resource Aware Scheduling in Apache StormResource Aware Scheduling in Apache Storm
Resource Aware Scheduling in Apache Storm
 
Highly-scalable Reinforcement Learning RLlib for Real-world Applications
Highly-scalable Reinforcement Learning RLlib for Real-world ApplicationsHighly-scalable Reinforcement Learning RLlib for Real-world Applications
Highly-scalable Reinforcement Learning RLlib for Real-world Applications
 
The hitchhiker’s guide to Prometheus
The hitchhiker’s guide to PrometheusThe hitchhiker’s guide to Prometheus
The hitchhiker’s guide to Prometheus
 
Devoxx 2014 [incomplete] summary
Devoxx 2014 [incomplete] summaryDevoxx 2014 [incomplete] summary
Devoxx 2014 [incomplete] summary
 
Data Science and Deep Learning on Spark with 1/10th of the Code with Roope As...
Data Science and Deep Learning on Spark with 1/10th of the Code with Roope As...Data Science and Deep Learning on Spark with 1/10th of the Code with Roope As...
Data Science and Deep Learning on Spark with 1/10th of the Code with Roope As...
 
Puppet DSL: back to the basics
Puppet DSL: back to the basicsPuppet DSL: back to the basics
Puppet DSL: back to the basics
 
CHEP 2018: A Python upgrade to the GooFit package for parallel fitting
CHEP 2018: A Python upgrade to the GooFit package for parallel fittingCHEP 2018: A Python upgrade to the GooFit package for parallel fitting
CHEP 2018: A Python upgrade to the GooFit package for parallel fitting
 
Data analytics in the cloud with Jupyter notebooks.
Data analytics in the cloud with Jupyter notebooks.Data analytics in the cloud with Jupyter notebooks.
Data analytics in the cloud with Jupyter notebooks.
 
PuppetConf 2016: Enjoying the Journey from Puppet 3.x to 4.x – Rob Nelson, AT&T
PuppetConf 2016: Enjoying the Journey from Puppet 3.x to 4.x – Rob Nelson, AT&T PuppetConf 2016: Enjoying the Journey from Puppet 3.x to 4.x – Rob Nelson, AT&T
PuppetConf 2016: Enjoying the Journey from Puppet 3.x to 4.x – Rob Nelson, AT&T
 
GPU and Deep learning best practices
GPU and Deep learning best practicesGPU and Deep learning best practices
GPU and Deep learning best practices
 
DIANA: Recent developments in GooFit
DIANA: Recent developments in GooFitDIANA: Recent developments in GooFit
DIANA: Recent developments in GooFit
 
Storm
StormStorm
Storm
 
Apache Storm
Apache StormApache Storm
Apache Storm
 
Intro to Machine Learning for GPUs
Intro to Machine Learning for GPUsIntro to Machine Learning for GPUs
Intro to Machine Learning for GPUs
 
MAVRL Workshop 2014 - Python Materials Genomics (pymatgen)
MAVRL Workshop 2014 - Python Materials Genomics (pymatgen)MAVRL Workshop 2014 - Python Materials Genomics (pymatgen)
MAVRL Workshop 2014 - Python Materials Genomics (pymatgen)
 

Similar a HiPEAC 2019 Tutorial - Maestro RTOS

DAWN and Scientific Workflows
DAWN and Scientific WorkflowsDAWN and Scientific Workflows
DAWN and Scientific WorkflowsMatthew Gerring
 
Elyra - a set of AI-centric extensions to JupyterLab Notebooks.
Elyra - a set of AI-centric extensions to JupyterLab Notebooks.Elyra - a set of AI-centric extensions to JupyterLab Notebooks.
Elyra - a set of AI-centric extensions to JupyterLab Notebooks.Luciano Resende
 
Faster Python Programs Through Optimization by Dr.-Ing Mike Muller
Faster Python Programs Through Optimization by Dr.-Ing Mike MullerFaster Python Programs Through Optimization by Dr.-Ing Mike Muller
Faster Python Programs Through Optimization by Dr.-Ing Mike MullerPyData
 
Reproducibility in artificial intelligence
Reproducibility in artificial intelligenceReproducibility in artificial intelligence
Reproducibility in artificial intelligenceCarlos Toxtli
 
Cytoscape: Now and Future
Cytoscape: Now and FutureCytoscape: Now and Future
Cytoscape: Now and FutureKeiichiro Ono
 
Role of python in hpc
Role of python in hpcRole of python in hpc
Role of python in hpcDr Reeja S R
 
IRJET-Clipboard Manager
IRJET-Clipboard ManagerIRJET-Clipboard Manager
IRJET-Clipboard ManagerIRJET Journal
 
Parallel Computing - Lec 6
Parallel Computing - Lec 6Parallel Computing - Lec 6
Parallel Computing - Lec 6Shah Zaib
 
TULIPP - Leaving a legacy: The ultimate Low-Power Image Processing Handbook
TULIPP - Leaving a legacy: The ultimate Low-Power Image Processing HandbookTULIPP - Leaving a legacy: The ultimate Low-Power Image Processing Handbook
TULIPP - Leaving a legacy: The ultimate Low-Power Image Processing HandbookSundance Multiprocessor Technology Ltd.
 
Performance Evaluation using TAU Performance System and E4S
Performance Evaluation using TAU Performance System and E4SPerformance Evaluation using TAU Performance System and E4S
Performance Evaluation using TAU Performance System and E4SGanesan Narayanasamy
 
HiPEAC 2019 Workshop Overview
HiPEAC 2019 Workshop OverviewHiPEAC 2019 Workshop Overview
HiPEAC 2019 Workshop OverviewTulipp. Eu
 
From an idea to production: building a recommender for BBC Sounds
From an idea to production: building a recommender for BBC SoundsFrom an idea to production: building a recommender for BBC Sounds
From an idea to production: building a recommender for BBC SoundsTatiana Al-Chueyr
 
Slow, Flaky and Legacy Tests: FTFY - Our New Testing Strategy at Net-A-Porter...
Slow, Flaky and Legacy Tests: FTFY - Our New Testing Strategy at Net-A-Porter...Slow, Flaky and Legacy Tests: FTFY - Our New Testing Strategy at Net-A-Porter...
Slow, Flaky and Legacy Tests: FTFY - Our New Testing Strategy at Net-A-Porter...Sauce Labs
 
How I learned to time travel, or, data pipelining and scheduling with Airflow
How I learned to time travel, or, data pipelining and scheduling with AirflowHow I learned to time travel, or, data pipelining and scheduling with Airflow
How I learned to time travel, or, data pipelining and scheduling with AirflowPyData
 
SC'18 BoF Presentation
SC'18 BoF PresentationSC'18 BoF Presentation
SC'18 BoF Presentationrcastain
 
Integrating Puppet and Gitolite for sysadmins cooperations
Integrating Puppet and Gitolite for sysadmins cooperationsIntegrating Puppet and Gitolite for sysadmins cooperations
Integrating Puppet and Gitolite for sysadmins cooperationsLuca Mazzaferro
 
Meetup Openshift Geneva 03/10
Meetup Openshift Geneva 03/10Meetup Openshift Geneva 03/10
Meetup Openshift Geneva 03/10MagaliDavidCruz
 

Similar a HiPEAC 2019 Tutorial - Maestro RTOS (20)

DAWN and Scientific Workflows
DAWN and Scientific WorkflowsDAWN and Scientific Workflows
DAWN and Scientific Workflows
 
Elyra - a set of AI-centric extensions to JupyterLab Notebooks.
Elyra - a set of AI-centric extensions to JupyterLab Notebooks.Elyra - a set of AI-centric extensions to JupyterLab Notebooks.
Elyra - a set of AI-centric extensions to JupyterLab Notebooks.
 
TULIPP at the 10th Intelligent Imaging Event
TULIPP at the 10th Intelligent Imaging EventTULIPP at the 10th Intelligent Imaging Event
TULIPP at the 10th Intelligent Imaging Event
 
Faster Python Programs Through Optimization by Dr.-Ing Mike Muller
Faster Python Programs Through Optimization by Dr.-Ing Mike MullerFaster Python Programs Through Optimization by Dr.-Ing Mike Muller
Faster Python Programs Through Optimization by Dr.-Ing Mike Muller
 
Reproducibility in artificial intelligence
Reproducibility in artificial intelligenceReproducibility in artificial intelligence
Reproducibility in artificial intelligence
 
Cytoscape: Now and Future
Cytoscape: Now and FutureCytoscape: Now and Future
Cytoscape: Now and Future
 
Role of python in hpc
Role of python in hpcRole of python in hpc
Role of python in hpc
 
XPDays-2018
XPDays-2018XPDays-2018
XPDays-2018
 
Multicore
MulticoreMulticore
Multicore
 
IRJET-Clipboard Manager
IRJET-Clipboard ManagerIRJET-Clipboard Manager
IRJET-Clipboard Manager
 
Parallel Computing - Lec 6
Parallel Computing - Lec 6Parallel Computing - Lec 6
Parallel Computing - Lec 6
 
TULIPP - Leaving a legacy: The ultimate Low-Power Image Processing Handbook
TULIPP - Leaving a legacy: The ultimate Low-Power Image Processing HandbookTULIPP - Leaving a legacy: The ultimate Low-Power Image Processing Handbook
TULIPP - Leaving a legacy: The ultimate Low-Power Image Processing Handbook
 
Performance Evaluation using TAU Performance System and E4S
Performance Evaluation using TAU Performance System and E4SPerformance Evaluation using TAU Performance System and E4S
Performance Evaluation using TAU Performance System and E4S
 
HiPEAC 2019 Workshop Overview
HiPEAC 2019 Workshop OverviewHiPEAC 2019 Workshop Overview
HiPEAC 2019 Workshop Overview
 
From an idea to production: building a recommender for BBC Sounds
From an idea to production: building a recommender for BBC SoundsFrom an idea to production: building a recommender for BBC Sounds
From an idea to production: building a recommender for BBC Sounds
 
Slow, Flaky and Legacy Tests: FTFY - Our New Testing Strategy at Net-A-Porter...
Slow, Flaky and Legacy Tests: FTFY - Our New Testing Strategy at Net-A-Porter...Slow, Flaky and Legacy Tests: FTFY - Our New Testing Strategy at Net-A-Porter...
Slow, Flaky and Legacy Tests: FTFY - Our New Testing Strategy at Net-A-Porter...
 
How I learned to time travel, or, data pipelining and scheduling with Airflow
How I learned to time travel, or, data pipelining and scheduling with AirflowHow I learned to time travel, or, data pipelining and scheduling with Airflow
How I learned to time travel, or, data pipelining and scheduling with Airflow
 
SC'18 BoF Presentation
SC'18 BoF PresentationSC'18 BoF Presentation
SC'18 BoF Presentation
 
Integrating Puppet and Gitolite for sysadmins cooperations
Integrating Puppet and Gitolite for sysadmins cooperationsIntegrating Puppet and Gitolite for sysadmins cooperations
Integrating Puppet and Gitolite for sysadmins cooperations
 
Meetup Openshift Geneva 03/10
Meetup Openshift Geneva 03/10Meetup Openshift Geneva 03/10
Meetup Openshift Geneva 03/10
 

Más de Tulipp. Eu

What are TULIPP starter kits?
What are TULIPP starter kits?What are TULIPP starter kits?
What are TULIPP starter kits?Tulipp. Eu
 
Quantifying Energy Consumption for Practical Fork-Join Parallelism on an Embe...
Quantifying Energy Consumption for Practical Fork-Join Parallelism on an Embe...Quantifying Energy Consumption for Practical Fork-Join Parallelism on an Embe...
Quantifying Energy Consumption for Practical Fork-Join Parallelism on an Embe...Tulipp. Eu
 
HIPPEROS's at EMVA 2017
HIPPEROS's at EMVA 2017 HIPPEROS's at EMVA 2017
HIPPEROS's at EMVA 2017 Tulipp. Eu
 
TULIPP overview
TULIPP overviewTULIPP overview
TULIPP overviewTulipp. Eu
 
HiPEAC 2019 Workshop - Vision Processing
HiPEAC 2019 Workshop - Vision ProcessingHiPEAC 2019 Workshop - Vision Processing
HiPEAC 2019 Workshop - Vision ProcessingTulipp. Eu
 
HiPEAC 2019 Workshop - Real-Time Modelling Visual Scenes with Biological Insp...
HiPEAC 2019 Workshop - Real-Time Modelling Visual Scenes with Biological Insp...HiPEAC 2019 Workshop - Real-Time Modelling Visual Scenes with Biological Insp...
HiPEAC 2019 Workshop - Real-Time Modelling Visual Scenes with Biological Insp...Tulipp. Eu
 
HiPEAC 2019 Tutorial - Image Processing Library:HiFlipVX
HiPEAC 2019 Tutorial - Image Processing Library:HiFlipVXHiPEAC 2019 Tutorial - Image Processing Library:HiFlipVX
HiPEAC 2019 Tutorial - Image Processing Library:HiFlipVXTulipp. Eu
 
HiPEAC 2019 Tutorial - Sthem overview
HiPEAC 2019 Tutorial - Sthem overviewHiPEAC 2019 Tutorial - Sthem overview
HiPEAC 2019 Tutorial - Sthem overviewTulipp. Eu
 
HiPEAC 2019 Workshop - Hardware Starter Kit Agri
HiPEAC 2019 Workshop - Hardware Starter Kit Agri HiPEAC 2019 Workshop - Hardware Starter Kit Agri
HiPEAC 2019 Workshop - Hardware Starter Kit Agri Tulipp. Eu
 
HiPEAC 2019 Workshop - Use Cases
HiPEAC 2019 Workshop - Use CasesHiPEAC 2019 Workshop - Use Cases
HiPEAC 2019 Workshop - Use CasesTulipp. Eu
 
Tulipp starter-kit-agri
Tulipp starter-kit-agriTulipp starter-kit-agri
Tulipp starter-kit-agriTulipp. Eu
 
TULIPP H2020 Project: Low power high performance real-time computer vision on...
TULIPP H2020 Project: Low power high performance real-time computer vision on...TULIPP H2020 Project: Low power high performance real-time computer vision on...
TULIPP H2020 Project: Low power high performance real-time computer vision on...Tulipp. Eu
 
TULIPP H2020 Project presentation @ FPGA Network: Implementing Machine Vision...
TULIPP H2020 Project presentation @ FPGA Network: Implementing Machine Vision...TULIPP H2020 Project presentation @ FPGA Network: Implementing Machine Vision...
TULIPP H2020 Project presentation @ FPGA Network: Implementing Machine Vision...Tulipp. Eu
 
Tulipp_H2020_Hipeac'17 Conference_PEPGUM Workshop_January 017
Tulipp_H2020_Hipeac'17 Conference_PEPGUM Workshop_January 017Tulipp_H2020_Hipeac'17 Conference_PEPGUM Workshop_January 017
Tulipp_H2020_Hipeac'17 Conference_PEPGUM Workshop_January 017Tulipp. Eu
 
D1.1 reference platform_v1_20161215
D1.1 reference platform_v1_20161215D1.1 reference platform_v1_20161215
D1.1 reference platform_v1_20161215Tulipp. Eu
 
Samos July 2016_tulipp-H2020 project presentation
Samos July 2016_tulipp-H2020 project presentationSamos July 2016_tulipp-H2020 project presentation
Samos July 2016_tulipp-H2020 project presentationTulipp. Eu
 
Tulipp collaboration Workshop - Advanced Computing and CPS - June 2016
Tulipp collaboration Workshop - Advanced Computing and CPS - June 2016Tulipp collaboration Workshop - Advanced Computing and CPS - June 2016
Tulipp collaboration Workshop - Advanced Computing and CPS - June 2016 Tulipp. Eu
 

Más de Tulipp. Eu (17)

What are TULIPP starter kits?
What are TULIPP starter kits?What are TULIPP starter kits?
What are TULIPP starter kits?
 
Quantifying Energy Consumption for Practical Fork-Join Parallelism on an Embe...
Quantifying Energy Consumption for Practical Fork-Join Parallelism on an Embe...Quantifying Energy Consumption for Practical Fork-Join Parallelism on an Embe...
Quantifying Energy Consumption for Practical Fork-Join Parallelism on an Embe...
 
HIPPEROS's at EMVA 2017
HIPPEROS's at EMVA 2017 HIPPEROS's at EMVA 2017
HIPPEROS's at EMVA 2017
 
TULIPP overview
TULIPP overviewTULIPP overview
TULIPP overview
 
HiPEAC 2019 Workshop - Vision Processing
HiPEAC 2019 Workshop - Vision ProcessingHiPEAC 2019 Workshop - Vision Processing
HiPEAC 2019 Workshop - Vision Processing
 
HiPEAC 2019 Workshop - Real-Time Modelling Visual Scenes with Biological Insp...
HiPEAC 2019 Workshop - Real-Time Modelling Visual Scenes with Biological Insp...HiPEAC 2019 Workshop - Real-Time Modelling Visual Scenes with Biological Insp...
HiPEAC 2019 Workshop - Real-Time Modelling Visual Scenes with Biological Insp...
 
HiPEAC 2019 Tutorial - Image Processing Library:HiFlipVX
HiPEAC 2019 Tutorial - Image Processing Library:HiFlipVXHiPEAC 2019 Tutorial - Image Processing Library:HiFlipVX
HiPEAC 2019 Tutorial - Image Processing Library:HiFlipVX
 
HiPEAC 2019 Tutorial - Sthem overview
HiPEAC 2019 Tutorial - Sthem overviewHiPEAC 2019 Tutorial - Sthem overview
HiPEAC 2019 Tutorial - Sthem overview
 
HiPEAC 2019 Workshop - Hardware Starter Kit Agri
HiPEAC 2019 Workshop - Hardware Starter Kit Agri HiPEAC 2019 Workshop - Hardware Starter Kit Agri
HiPEAC 2019 Workshop - Hardware Starter Kit Agri
 
HiPEAC 2019 Workshop - Use Cases
HiPEAC 2019 Workshop - Use CasesHiPEAC 2019 Workshop - Use Cases
HiPEAC 2019 Workshop - Use Cases
 
Tulipp starter-kit-agri
Tulipp starter-kit-agriTulipp starter-kit-agri
Tulipp starter-kit-agri
 
TULIPP H2020 Project: Low power high performance real-time computer vision on...
TULIPP H2020 Project: Low power high performance real-time computer vision on...TULIPP H2020 Project: Low power high performance real-time computer vision on...
TULIPP H2020 Project: Low power high performance real-time computer vision on...
 
TULIPP H2020 Project presentation @ FPGA Network: Implementing Machine Vision...
TULIPP H2020 Project presentation @ FPGA Network: Implementing Machine Vision...TULIPP H2020 Project presentation @ FPGA Network: Implementing Machine Vision...
TULIPP H2020 Project presentation @ FPGA Network: Implementing Machine Vision...
 
Tulipp_H2020_Hipeac'17 Conference_PEPGUM Workshop_January 017
Tulipp_H2020_Hipeac'17 Conference_PEPGUM Workshop_January 017Tulipp_H2020_Hipeac'17 Conference_PEPGUM Workshop_January 017
Tulipp_H2020_Hipeac'17 Conference_PEPGUM Workshop_January 017
 
D1.1 reference platform_v1_20161215
D1.1 reference platform_v1_20161215D1.1 reference platform_v1_20161215
D1.1 reference platform_v1_20161215
 
Samos July 2016_tulipp-H2020 project presentation
Samos July 2016_tulipp-H2020 project presentationSamos July 2016_tulipp-H2020 project presentation
Samos July 2016_tulipp-H2020 project presentation
 
Tulipp collaboration Workshop - Advanced Computing and CPS - June 2016
Tulipp collaboration Workshop - Advanced Computing and CPS - June 2016Tulipp collaboration Workshop - Advanced Computing and CPS - June 2016
Tulipp collaboration Workshop - Advanced Computing and CPS - June 2016
 

Último

Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 

Último (20)

Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 

HiPEAC 2019 Tutorial - Maestro RTOS

  • 1. This project has received funding from the European Union’s Horizon 20 20 research and innovation programme under grant agreement No 688403 www.tulipp.eu TULIPP Title : Place : Date : Tulipp Workshop @ HIPEAC Towards Ubiquitous Low-power Image Processing Platforms – tutorial RTOS HiPEAC, Valencia, Spain 22nd of January 2019 Antonio Paolillo, Paul Rodriguez
  • 2. Shortcomings: ● Hard to debug ● Hard to control ● Libraries? ● Threads? Timers? Devices? ● MMU? Security? Multi-task? ● Multi-core? ● FPGA? Real-time? IRQ<->ISR? Standalone build
  • 4. What is TULIPP? (the concept) Operating System
  • 5.
  • 6. HI gh P erformance P arallel E mbedded R eal-time O perating S ystems
  • 7. HI gh P erformance P arallel E mbedded R eal-time O perating S ystems
  • 8. HI gh P erformance P arallel E mbedded R eal-time O perating S ystems
  • 9. HI gh P erformance P arallel E mbedded R eal-time O perating S ystems
  • 10. HI gh P erformance P arallel E mbedded R eal-time O perating S ystems
  • 11. HI gh P erformance P arallel E mbedded R eal-time O perating S ystems
  • 12. This project has received funding from the European Union’s Horizon 20 20 research and innovation programme under grant agreement No 688403 Maestro RTOS
  • 13. Multi-core made easy Computing power → multi-core architecture Native support Multi-threaded applications.
  • 14. Theoretical guarantees, practical reliability Micro-kernel arch Backed by real-time research Classic and more advanced policies
  • 15. A familiar environment Full language support for C and C++ Posix compliant API Automated tools to build, deploy & debug Emulator support
  • 16. Pedal to the Metal More than CPU Support heterogeneous architecture FPGA
  • 17. Ready for the industry Philosophy aligned to industrial standards e.g. Adaptive AUTOSAR High performance, flexible application for embedded
  • 18.
  • 19. Main architecture and design choices - Hard real-time operating system - Embedded targets: ARMv7, ARMv8, PowerPC, IA32 - A new micro-kernel written from scratch - Built for user needs, i.e. small footprint and adapted policies - Multi-core architecture based on asymmetric kernel - Real-time model for user applications - MMU support and virtual address space - Resource sharing & IPC protocols (mutexes, semaphores, message passing, etc.) - Usual OS services (timers, etc.)
  • 20. Real-time - User processes have real-time requirements - Determinism and bounded guarantees - Being on-time is more important than being fast - Real-time scheduling policies - Resource usage is bounded and checked
  • 21. New micro-kernel - No “Linux legacy” or other previous mono-core design - Design for SMP platform - Asymmetric kernel design - One core for heavy scheduling operations - Other cores working to service tasks - Most services & drivers in user space - Multi-core IPC protocol to manage it
  • 22. OS Modules USER SPACE KERNEL SPACE HARDWARE Memory & resources Scheduler IPC System calls Processes Interrupts Process 1 Process 2 Driver 1 Process 3 Process 4 Driver 2 Process 5 Service 1 Service 2
  • 23. In practice: build an application Tasks HIPPEROS package CMake make Application
  • 24. In practice: deploy an application MPSoC U-Boot Run HIP script
  • 26. Operating System API ● How to design tasks ? ● How to configure the system real-time run-time behaviour ? ● How to build an HIPPEROS application ? ● How to configure the RTOS ?
  • 27. Tasks = C / C++ code
  • 28. HIPPEROS application = set of pre-defined tasks
  • 29. Task set file •Timing parameters •Periodicity •Code •Core affinities •Timings •...
  • 31. In practice: build an application Tasks CMakeLists.txt Taskset.xml HIPPEROS package CMake make Application
  • 32. OS configuration ● Memory model: single address space / virtual (MMU) ● Task file format: statically linked / ELF format ● Kernel architecture: mono-core / multi-core / many-core ● Scheduling policies: Rate Monotonic / EDF, Partitioned / Global, ... ● Activate power management features
  • 34. Lab 1: How to Maestro Lesson: use an OS Benefits: ● easier resource management ● robustness ● multitasking ● modularity ● and so on
  • 35. Activities during this lab ● Develop an example image processing application for Maestro ● Use the Maestro build system and task configuration ● Compile, deploy and run with Maestro tools
  • 36. Develop an application 1. Go to workspace/maestroLabs/lab1/workspace 2. Open src/main.cpp 3. Fill the main function in using image processing calls from include/filters.h
  • 37. STHEM In STHEM, open the custom project in the maestro_lab1 directory. Click cmake, make to compile the project, then profile it.
  • 38. Deploying files and running app $ ./run.py
  • 39. What happened? We used the Maestro build system to help us through the whole development process of a pure software application. We used CMake and make through STHEM to compile, deploy, run and analyse our application.
  • 40. Going further You can add tasks with the taskSet.ats file. Using POSIX and Maestro APIs, tasks can interact with devices, the kernel and each other.
  • 41. Lab 2: Maestro and OpenMP Lesson: use parallelism, use tools to help Benefits: ● better performance ● low energy ● better scalability ● Maestro and OpenMP make this accessible
  • 42. What is OpenMP? OpenMP is a library providing functions and pragmas to parallelize code easily between multiple threads. Maestro is packaged with an OpenMP implementation which we are going to use in this lab.
  • 43.
  • 44. Activities during this lab ● Take the example application from Lab 1 and add OpenMP pragmas ● Compile with OpenMP activated ● Deploy and run ● Measure the performance delta
  • 45. Develop an application 1. Go to lab2 2. Open src/main.cpp 3. Fill in the main function using image processing calls from filters.h Use OpenMP pragmas to run your code on multiple threads in parallel
  • 46. STHEM In STHEM, open the custom project in the maestro_lab2 directory. Click cmake, make to compile the project, then profile it.
  • 47. Getting serial output $ ./run.py -l
  • 48. What happened? We used the Maestro implementation of OpenMP to accelerate our image processing application using parallelism without manually managing threads. Under the hood, the CMakeLists.txt file defines that the toolchain to use is Clang and that the application has to be linked against the OpenMP library.
  • 49. Going further Adapt the filters of the image processing library to use OpenMP Vary the number of cores and measure the results
  • 50. Lab 3: Maestro and SDSoC Lesson: use automatic hardware acceleration Benefits: ● huge gains in performance ● tools make this accessible
  • 51. SDSoC Here we will use the Maestro integration of SDSoC hardware acceleration tools. To toggle acceleration of a function, we make changes in the project definition file.
  • 52. Activities during this lab ● Take the example application from lab 1, make sure you are using the predefined filter functions ● Ask SDSoC (through CMake) to accelerate the hwSobelX filter ● Activate SDSoC in CMakeLists: ○ set(HIPPEROS_TOOLCHAIN "SDSCC") ● Compile, deploy and run ● Measure the performance delta
  • 53. Get platform files $ cd /home/tulipp/ $ wget paolillo.be/updateVM.zip $ unzip updateVM.zip $ cd updateVM $ ./updateVM.sh # sudo password is required
  • 54. Adapt the application 1. Go to lab1 2. Open CMakeLists.txt 3. Call SDSoC toolchain, in the beginning of the file: set(HIPPEROS_TOOLCHAIN "SDSCC") 4. Call sdaccel modules: sdscc_accel( "${PROJECT_NAME}" "${APP_DIR}/src/filters.cpp" "hwSobelX" "0")
  • 55. Compile for Maestro $ cd /home/tulipp/workspace/maestroLabs/lab1/solution/ $ mkdir maestro_lab3 $ cd maestro_lab3 $ source /opt/Xilinx/SDx/default/settings64.sh $ /usr/bin/cmake .. $ make # Takes forever...
  • 56. Deploy and run! $ ./run.py
  • 57. Taking forever... In the interest of time, we’ll do it in front of you with the pre-built solution.
  • 58. What happened? The filter has been accelerated, synthesized, with the drivers generated, and moved to the FPGA fabric. The performance gain is huge, like 52x (from debug) the software version. Much better than OpenMP multi-core parallelisation, but requires FPGA to work.