SlideShare a Scribd company logo
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!

More Related Content

What's hot

SREcon 2016 Performance Checklists for SREs
SREcon 2016 Performance Checklists for SREsSREcon 2016 Performance Checklists for SREs
SREcon 2016 Performance Checklists for SREs
Brendan 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 Numba
stan_seibert
 
An Introduction to TensorFlow architecture
An Introduction to TensorFlow architectureAn Introduction to TensorFlow architecture
An Introduction to TensorFlow architecture
Mani Goswami
 
Contributing to OpenStack
Contributing to OpenStackContributing to OpenStack
Contributing to OpenStack
devkulkarni
 
Resource Aware Scheduling in Apache Storm
Resource Aware Scheduling in Apache StormResource Aware Scheduling in Apache Storm
Resource Aware Scheduling in Apache Storm
DataWorks Summit/Hadoop Summit
 
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
Bill Liu
 
The hitchhiker’s guide to Prometheus
The hitchhiker’s guide to PrometheusThe hitchhiker’s guide to Prometheus
The hitchhiker’s guide to Prometheus
Bol.com Techlab
 
Devoxx 2014 [incomplete] summary
Devoxx 2014 [incomplete] summaryDevoxx 2014 [incomplete] summary
Devoxx 2014 [incomplete] summary
Artem 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 basics
Julien 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 fitting
Henry 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 practices
Lior Sidi
 
DIANA: Recent developments in GooFit
DIANA: Recent developments in GooFitDIANA: Recent developments in GooFit
DIANA: Recent developments in GooFit
Henry Schreiner
 
Storm
StormStorm
Apache Storm
Apache StormApache Storm
Apache Storm
masifqadri
 
Intro to Machine Learning for GPUs
Intro to Machine Learning for GPUsIntro to Machine Learning for GPUs
Intro to Machine Learning for GPUs
Sri Ambati
 
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)
University of California, San Diego
 

What's hot (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 to HiPEAC 2019 Tutorial - Maestro RTOS

DAWN and Scientific Workflows
DAWN and Scientific WorkflowsDAWN and Scientific Workflows
DAWN and Scientific Workflows
Matthew 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
 
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
Sundance Multiprocessor Technology Ltd.
 
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
PyData
 
Reproducibility in artificial intelligence
Reproducibility in artificial intelligenceReproducibility in artificial intelligence
Reproducibility in artificial intelligence
Carlos Toxtli
 
Cytoscape: Now and Future
Cytoscape: Now and FutureCytoscape: Now and Future
Cytoscape: Now and Future
Keiichiro Ono
 
Role of python in hpc
Role of python in hpcRole of python in hpc
Role of python in hpc
Dr Reeja S R
 
XPDays-2018
XPDays-2018XPDays-2018
XPDays-2018
Yegor Maksymchuk
 
Multicore
MulticoreMulticore
IRJET-Clipboard Manager
IRJET-Clipboard ManagerIRJET-Clipboard Manager
IRJET-Clipboard Manager
IRJET Journal
 
Parallel Computing - Lec 6
Parallel Computing - Lec 6Parallel Computing - Lec 6
Parallel Computing - Lec 6
Shah 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 Handbook
Sundance 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 E4S
Ganesan Narayanasamy
 
HiPEAC 2019 Workshop Overview
HiPEAC 2019 Workshop OverviewHiPEAC 2019 Workshop Overview
HiPEAC 2019 Workshop Overview
Tulipp. 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 Sounds
Tatiana 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 Airflow
PyData
 
SC'18 BoF Presentation
SC'18 BoF PresentationSC'18 BoF Presentation
SC'18 BoF Presentation
rcastain
 
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
Luca Mazzaferro
 
Meetup Openshift Geneva 03/10
Meetup Openshift Geneva 03/10Meetup Openshift Geneva 03/10
Meetup Openshift Geneva 03/10
MagaliDavidCruz
 

Similar to 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
 

More from 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 overview
Tulipp. Eu
 
HiPEAC 2019 Workshop - Vision Processing
HiPEAC 2019 Workshop - Vision ProcessingHiPEAC 2019 Workshop - Vision Processing
HiPEAC 2019 Workshop - Vision Processing
Tulipp. 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:HiFlipVX
Tulipp. Eu
 
HiPEAC 2019 Tutorial - Sthem overview
HiPEAC 2019 Tutorial - Sthem overviewHiPEAC 2019 Tutorial - Sthem overview
HiPEAC 2019 Tutorial - Sthem overview
Tulipp. 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 Cases
Tulipp. Eu
 
Tulipp starter-kit-agri
Tulipp starter-kit-agriTulipp starter-kit-agri
Tulipp starter-kit-agri
Tulipp. 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 017
Tulipp. Eu
 
D1.1 reference platform_v1_20161215
D1.1 reference platform_v1_20161215D1.1 reference platform_v1_20161215
D1.1 reference platform_v1_20161215
Tulipp. 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 presentation
Tulipp. 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
 

More from 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
 

Recently uploaded

Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
abdulrafaychaudhry
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus
 
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
Prosigns
 
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
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
Google
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
Globus
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
Globus
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
Paco van Beckhoven
 
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
 
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
wottaspaceseo
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
Donna Lenk
 
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
takuyayamamoto1800
 
RISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent EnterpriseRISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent Enterprise
Srikant77
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
Philip Schwarz
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
NYGGS Automation Suite
 
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
Globus
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
Max Andersen
 
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdfEnhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Jay Das
 
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
Ortus Solutions, Corp
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
Cyanic lab
 

Recently uploaded (20)

Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
 
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
 
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|...
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
 
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...
 
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
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
 
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
 
RISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent EnterpriseRISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent Enterprise
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
 
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
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
 
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdfEnhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.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
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
 

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.