SlideShare a Scribd company logo
1 of 77
Download to read offline
Firmware development for hybrid processors (ARM and FPGA) computing
Mirko Mariotti 1,2 Giulio Bianchini 1 Loriano Storchi 3,2 Giacomo Surace 1
Daniele Spiga 2
1Dipartimento di Fisica e Geologia, Universitá degli Studi di Perugia
2INFN sezione di Perugia
3Dipartimento di Farmacia, Universitá degli Studi G. D’Annunzio
Workshop CCR 2022 - Paestum Firmware development for hybrid processors 1
Outline
1 Introduction
Evolution of computing: new challenges
Accelerators and FPGA
BondMachine
2 An accelerated system from ground up
Hardware
Software
3 Tests and Benchmarks
Tests
Benchmark
4 Conclusions and Future directions
Workshop CCR 2022 - Paestum Firmware development for hybrid processors 2
Introduction
1 Introduction
Evolution of computing: new challenges
Accelerators and FPGA
BondMachine
2 An accelerated system from ground up
Hardware
Software
3 Tests and Benchmarks
Tests
Benchmark
4 Conclusions and Future directions
Workshop CCR 2022 - Paestum Firmware development for hybrid processors 3
Evolution of computing
■ New challenges
Workshop CCR 2022 - Paestum Firmware development for hybrid processors 4
Evolution of computing
■ New challenges
■ New architectures
Workshop CCR 2022 - Paestum Firmware development for hybrid processors 4
Evolution of computing
■ New challenges
■ New architectures
■ From the software point of view:
Heterogeneity
Workshop CCR 2022 - Paestum Firmware development for hybrid processors 4
Evolution of computing
■ New challenges
■ New architectures
■ From the software point of view:
Heterogeneity
■ From the hardware point of view:
Accelerators
Workshop CCR 2022 - Paestum Firmware development for hybrid processors 4
Accelerators
Hardware device or software program designed to improve the performance of certain
workload.
Graphics Processing Unit (GPU) Application-Specific Integrated Circuit (ASIC)
■ High Data Throughput
■ Massive Parallel Computing
■ Highly specialized for a task
■ Energy efficient (due to specialization)
Workshop CCR 2022 - Paestum Firmware development for hybrid processors 5
FPGA accelerator
A field programmable gate array (FPGA) is an integrated
circuit whose logic is re-programmable.
■ Parallel computing
■ Highly specialized
■ Energy efficient
■ Array of programmable logic blocks
■ Logic blocks configurable
to perform complex functions
■ The configuration is specified
with the hardware description language
FIRMWARE
Workshop CCR 2022 - Paestum Firmware development for hybrid processors 6
Firmware generation
Many projects have the goal of abstracting the firmware generation process.
High Level
Low Level
FIRMWARE
Workshop CCR 2022 - Paestum Firmware development for hybrid processors 7
BondMachine
■ The BondMachine is a software
ecosystem for the dynamical
generation of computer architectures
that can be synthesized of FPGA and
Workshop CCR 2022 - Paestum Firmware development for hybrid processors 8
BondMachine
■ The BondMachine is a software
ecosystem for the dynamical
generation of computer architectures
that can be synthesized of FPGA and
■ used as standalone devices,
Workshop CCR 2022 - Paestum Firmware development for hybrid processors 8
BondMachine
■ The BondMachine is a software
ecosystem for the dynamical
generation of computer architectures
that can be synthesized of FPGA and
■ used as standalone devices,
■ as clustered devices,
Workshop CCR 2022 - Paestum Firmware development for hybrid processors 8
BondMachine
■ The BondMachine is a software
ecosystem for the dynamical
generation of computer architectures
that can be synthesized of FPGA and
■ used as standalone devices,
■ as clustered devices,
■ and, as in this talk, as firmware for
computing accelerators.
Workshop CCR 2022 - Paestum Firmware development for hybrid processors 8
BondMachine
■ CCR 2015 First ideas, 2016 Poster, 2017 Talk
Workshop CCR 2022 - Paestum Firmware development for hybrid processors 9
BondMachine
■ CCR 2015 First ideas, 2016 Poster, 2017 Talk
■ InnovateFPGA 2018 Iron Award, Grand Final at
Intel Campus (CA) USA
Workshop CCR 2022 - Paestum Firmware development for hybrid processors 9
BondMachine
■ CCR 2015 First ideas, 2016 Poster, 2017 Talk
■ InnovateFPGA 2018 Iron Award, Grand Final at
Intel Campus (CA) USA
■ Invited lectures at: "Advanced Workshop on
Modern FPGA Based Technology for Scientific
Computing", ICTP 2019
Workshop CCR 2022 - Paestum Firmware development for hybrid processors 9
BondMachine
■ CCR 2015 First ideas, 2016 Poster, 2017 Talk
■ InnovateFPGA 2018 Iron Award, Grand Final at
Intel Campus (CA) USA
■ Invited lectures at: "Advanced Workshop on
Modern FPGA Based Technology for Scientific
Computing", ICTP 2019
■ Invited lectures at: "NiPS Summer School 2019
– Architectures and Algorithms for
Energy-Efficient IoT and HPC Applications"
Workshop CCR 2022 - Paestum Firmware development for hybrid processors 9
BondMachine
■ CCR 2015 First ideas, 2016 Poster, 2017 Talk
■ InnovateFPGA 2018 Iron Award, Grand Final at
Intel Campus (CA) USA
■ Invited lectures at: "Advanced Workshop on
Modern FPGA Based Technology for Scientific
Computing", ICTP 2019
■ Invited lectures at: "NiPS Summer School 2019
– Architectures and Algorithms for
Energy-Efficient IoT and HPC Applications"
■ Golab 2018 talk and ISGC 2019 PoS
Workshop CCR 2022 - Paestum Firmware development for hybrid processors 9
BondMachine
■ CCR 2015 First ideas, 2016 Poster, 2017 Talk
■ InnovateFPGA 2018 Iron Award, Grand Final at
Intel Campus (CA) USA
■ Invited lectures at: "Advanced Workshop on
Modern FPGA Based Technology for Scientific
Computing", ICTP 2019
■ Invited lectures at: "NiPS Summer School 2019
– Architectures and Algorithms for
Energy-Efficient IoT and HPC Applications"
■ Golab 2018 talk and ISGC 2019 PoS
■ Article published on Parallel Computing,
Elsevier 2022
Workshop CCR 2022 - Paestum Firmware development for hybrid processors 9
BondMachine
■ CCR 2015 First ideas, 2016 Poster, 2017 Talk
■ InnovateFPGA 2018 Iron Award, Grand Final at
Intel Campus (CA) USA
■ Invited lectures at: "Advanced Workshop on
Modern FPGA Based Technology for Scientific
Computing", ICTP 2019
■ Invited lectures at: "NiPS Summer School 2019
– Architectures and Algorithms for
Energy-Efficient IoT and HPC Applications"
■ Golab 2018 talk and ISGC 2019 PoS
■ Article published on Parallel Computing,
Elsevier 2022
■ PON PHD program
Workshop CCR 2022 - Paestum Firmware development for hybrid processors 9
An accelerated system from ground up
1 Introduction
Evolution of computing: new challenges
Accelerators and FPGA
BondMachine
2 An accelerated system from ground up
Hardware
Software
3 Tests and Benchmarks
Tests
Benchmark
4 Conclusions and Future directions
Workshop CCR 2022 - Paestum Firmware development for hybrid processors 10
Specs
FPGA
■ Digilent Zedboard
■ Soc: Zynq XC7Z020-CLG484-1
■ 512 MB DDR3
■ Vivado 2020.2
Workstations
■ Dell Precision Tower 3620
■ Intel(R) Xeon(R) CPU E3-1270 v5 @
3.60GHz
■ 16GB Ram
■ Golang 1.18.1
■ Intel(R) CPU I5-8500 v5 @ 3GHz
■ 16GB Ram
■ GCC with -O0
Workshop CCR 2022 - Paestum Firmware development for hybrid processors 11
The whole system overview
Workshop CCR 2022 - Paestum Firmware development for hybrid processors 12
The Accelerator IP
Hardware Description Language
Workshop CCR 2022 - Paestum Firmware development for hybrid processors 13
The Accelerator IP
Hardware Description Language High Level Synthesis
Workshop CCR 2022 - Paestum Firmware development for hybrid processors 13
The Accelerator IP
Hardware Description Language High Level Synthesis BondMachine
Workshop CCR 2022 - Paestum Firmware development for hybrid processors 13
The Accelerator IP
Hardware Description Language High Level Synthesis BondMachine
Wires:
- a clock signal,
- an input bus,
- an output bus for the
result
Workshop CCR 2022 - Paestum Firmware development for hybrid processors 13
Interconnection firmware
The input and output buses are the endpoints that we would like
to have on the linux system.
Workshop CCR 2022 - Paestum Firmware development for hybrid processors 14
Interconnection firmware
The input and output buses are the endpoints that we would like
to have on the linux system.
Workshop CCR 2022 - Paestum Firmware development for hybrid processors 14
Interconnection firmware
The input and output buses are the endpoints that we would like
to have on the linux system.
Memory mapped
registers using
The AXI protocol
Workshop CCR 2022 - Paestum Firmware development for hybrid processors 14
The Advanced eXtensible Interface Protocol
AXI is a communication bus protocol defined by ARM as part
of the Advanced Microcontroller Bus Architecture (AMBA) standard.
There are 3 types of AXI Interfaces:
■ AXI Full: for high-performance memory-mapped requirements.
■ AXI Lite: for low-throughput memory-mapped communication.
■ AXI Stream: for high-speed streaming data.
Workshop CCR 2022 - Paestum Firmware development for hybrid processors 15
Block Design
Workshop CCR 2022 - Paestum Firmware development for hybrid processors 16
Linux
Now that we have a custom accelerated hardware, we need a Linux
distro to run on it.
Common Features
Complete system build from source
Allow choice of kernel and bootloader
Support for modifying packages with patches or custom configuration files
Can build cross-toolchains for development
Convenient support for read-only root filesystems
Support offline builds
The build configuration files integrate well with SCM tools
■ Yocto
Convenient sharing of build configuration among similar projects (meta-layers)
Larger community (Linux Foundation project)
Can build a toolchain that runs on the target
A package management system
■ Buildroot
Simple Makefile approach, easier to understand how the build system works
Reduced resource requirements on the build machine
Very easy to customize the final root filesystem (overlays)
Credits: https://jumpnowtek.com/linux/Choosing-an-embedded-linux-build-system.html
Workshop CCR 2022 - Paestum Firmware development for hybrid processors 17
Ingredients to build the distro
Kernel config
Linux kernel
configuration
Boot Loader config
U-boot
Boot loader
configuration
Device tree
Data structure
describing
hardware
components
Used by:
Kernel
Boot loader
Created by:
Vivado + GCC
Bitstream (firmware)
File describing
Cells and routing
of the FPGA
Used by
Boot loader
to programm
FPGA
Created by:
Vivado
Workshop CCR 2022 - Paestum Firmware development for hybrid processors 18
kernel module
■ The accelerator endpoints are exposed via AXI
memory-mapped as memory location of the arm processor
running Linux.
■ To properly use the accelerator from user space, the kernel
has to handle the accelerator endpoints and make them
available to user space.
■ We developed a kernel module for our accelerators. It
manages 3 data flows:
Kernel User space
Kernel Firmware
Kernel Firmware
Workshop CCR 2022 - Paestum Firmware development for hybrid processors 19
Kernel from an to user space: char device
The communication are through the
standard read and write system call on a
kernel generated char device
A language has been implemented for
the desired operations
Workshop CCR 2022 - Paestum Firmware development for hybrid processors 20
Kernel to firmware
Once the kernel has correctly decoded the data from the char device,
it can directly write on AXI registers.
AXI registers are
directly written by
the kernel
AXI guarantees consistency and transfer to the firmware input ports.
Moreover the data flow from kernel cannot saturate the PL part.
Workshop CCR 2022 - Paestum Firmware development for hybrid processors 21
Firmware to kernel: IRQ
Different story is the data flow from the FPGA to the PS part.
Data can easily flow so fast to saturate and make the PS part
completely unusable.
The firmware
collect all the
changes to send
and fill in a list
using a dedicated
AXI register
Workshop CCR 2022 - Paestum Firmware development for hybrid processors 22
Firmware to kernel: IRQ
Different story is the data flow from the FPGA to the PS part.
Data can easily flow so fast to saturate and make the PS part
completely unusable.
The firmware
collect all the
changes to send
and fill in a list
using a dedicated
AXI register
Stop accepting
new changes from
the IP
Workshop CCR 2022 - Paestum Firmware development for hybrid processors 22
Firmware to kernel: IRQ
Different story is the data flow from the FPGA to the PS part.
Data can easily flow so fast to saturate and make the PS part
completely unusable.
The firmware
collect all the
changes to send
and fill in a list
using a dedicated
AXI register
Stop accepting
new changes from
the IP
Send an interrupt
request to the
kernel
Workshop CCR 2022 - Paestum Firmware development for hybrid processors 22
Firmware to kernel: IRQ
Different story is the data flow from the FPGA to the PS part.
Data can easily flow so fast to saturate and make the PS part
completely unusable.
The firmware
collect all the
changes to send
and fill in a list
using a dedicated
AXI register
Stop accepting
new changes from
the IP
Send an interrupt
request to the
kernel
Workshop CCR 2022 - Paestum Firmware development for hybrid processors 22
Firmware to kernel: IRQ
Different story is the data flow from the FPGA to the PS part.
Data can easily flow so fast to saturate and make the PS part
completely unusable.
The firmware
collect all the
changes to send
and fill in a list
using a dedicated
AXI register
Stop accepting
new changes from
the IP
Send an interrupt
request to the
kernel
The kernel get the
IRQ, read the list
of changes and
send each of they
through the char
dev
Workshop CCR 2022 - Paestum Firmware development for hybrid processors 22
Firmware to kernel: IRQ
Different story is the data flow from the FPGA to the PS part.
Data can easily flow so fast to saturate and make the PS part
completely unusable.
The firmware
collect all the
changes to send
and fill in a list
using a dedicated
AXI register
Stop accepting
new changes from
the IP
Send an interrupt
request to the
kernel
The kernel get the
IRQ, read the list
of changes and
send each of they
through the char
dev
The kernel notify
the firmware when
done
Workshop CCR 2022 - Paestum Firmware development for hybrid processors 22
Library
The char device created by the kernel
is opened by the BMAPI user space library
that implements the BMMRP.
/dev/bm BMAPI Library
(*BMAPI) BMr2owa
(*BMAPI) BMr2ow
(*BMAPI) BMr2o
(*BMAPI) BMi2rw
(*BMAPI) BMi2r
The library functions can be used
by the application
Workshop CCR 2022 - Paestum Firmware development for hybrid processors 23
Accelerated application: an example
Workshop CCR 2022 - Paestum Firmware development for hybrid processors 24
Accelerated Application
FPGA
AXI
Interconnection
Firmware
BondMachine
AXI BMRRP
Linux
System
Kernel
module
Library
AXI
endpoints
Workshop CCR 2022 - Paestum Firmware development for hybrid processors 25
Tests and Benchmarks
1 Introduction
Evolution of computing: new challenges
Accelerators and FPGA
BondMachine
2 An accelerated system from ground up
Hardware
Software
3 Tests and Benchmarks
Tests
Benchmark
4 Conclusions and Future directions
Workshop CCR 2022 - Paestum Firmware development for hybrid processors 26
An example
■ Definition of an example
■ Check of the correctness of the accelerator results
■ Benchmark of the execution
Workshop CCR 2022 - Paestum Firmware development for hybrid processors 27
Squared Matrix-vector multiplication
Workshop CCR 2022 - Paestum Firmware development for hybrid processors 28
Squared Matrix-vector multiplication
Workshop CCR 2022 - Paestum Firmware development for hybrid processors 28
Squared Matrix-vector multiplication
Workshop CCR 2022 - Paestum Firmware development for hybrid processors 28
Squared Matrix-vector multiplication
2x2
Workshop CCR 2022 - Paestum Firmware development for hybrid processors 28
Squared Matrix-vector multiplication
3x3
Workshop CCR 2022 - Paestum Firmware development for hybrid processors 28
Squared Matrix-vector multiplication
4x4
Workshop CCR 2022 - Paestum Firmware development for hybrid processors 28
Correctness and module debug
To verify the correct computation of the
accelerator:
■ a tool to monitor the AXI memory
Workshop CCR 2022 - Paestum Firmware development for hybrid processors 29
Correctness and module debug
To verify the correct computation of the
accelerator:
■ a tool to monitor the AXI memory
■ write directly to AXI memory mapped
input addresses (through devmem)
Workshop CCR 2022 - Paestum Firmware development for hybrid processors 29
Correctness and module debug
To verify the correct computation of the
accelerator:
■ a tool to monitor the AXI memory
■ write directly to AXI memory mapped
input addresses (through devmem)
■ check the AXI memory mapped
output addresses
Workshop CCR 2022 - Paestum Firmware development for hybrid processors 29
An example of error
Workshop CCR 2022 - Paestum Firmware development for hybrid processors 30
An example of error
Workshop CCR 2022 - Paestum Firmware development for hybrid processors 30
Benchmark: caveats
This is a preliminary work.
We trust some tools:
■ Vivado reports
■ perf
The FPGA benchmarks do not include the PS part overhead (the comparisons are not
really fair)
Workshop CCR 2022 - Paestum Firmware development for hybrid processors 31
Benchmark: the CPU (Golang)
■ Time measures: built-in
golang facilities
■ Energy measures: perf
■ Intel(R) Xeon(R) CPU
E3-1270 v5 @ 3.60GHz
■ Go 1.18.2
Workshop CCR 2022 - Paestum Firmware development for hybrid processors 32
Benchmark: the CPU (C)
■ Time measures: time
■ Energy measures: perf
■ Intel(R) CPU I5-8500 v5 @ 3GHz
■ gcc with -O0
Workshop CCR 2022 - Paestum Firmware development for hybrid processors 33
Benchmark: the FPGA
Benchmark an IP is not an
easy task.
Fortunately we have a
custom design and an
FPGA.
We can put the benchmarks
tool inside the accelerator.
Workshop CCR 2022 - Paestum Firmware development for hybrid processors 34
Benchmark: the FPGA
Benchmark an IP is not an
easy task.
Fortunately we have a
custom design and an
FPGA.
We can put the benchmarks
tool inside the accelerator.
Workshop CCR 2022 - Paestum Firmware development for hybrid processors 34
Benchmark: the FPGA
Benchmark an IP is not an
easy task.
Fortunately we have a
custom design and an
FPGA.
We can put the benchmarks
tool inside the accelerator.
Workshop CCR 2022 - Paestum Firmware development for hybrid processors 34
Benchmark: the FPGA
Benchmark an IP is not an
easy task.
Fortunately we have a
custom design and an
FPGA.
We can put the benchmarks
tool inside the accelerator.
Workshop CCR 2022 - Paestum Firmware development for hybrid processors 34
Benchmark: the FPGA
Benchmark an IP is not an
easy task.
Fortunately we have a
custom design and an
FPGA.
We can put the benchmarks
tool inside the accelerator.
Workshop CCR 2022 - Paestum Firmware development for hybrid processors 34
Benchmark core clock cycles distributions
Workshop CCR 2022 - Paestum Firmware development for hybrid processors 35
FPGA benchmark summary
Workshop CCR 2022 - Paestum Firmware development for hybrid processors 36
Benchmark core
Workshop CCR 2022 - Paestum Firmware development for hybrid processors 37
Comparisons: Performace
Workshop CCR 2022 - Paestum Firmware development for hybrid processors 38
Comparisons: Energy
Workshop CCR 2022 - Paestum Firmware development for hybrid processors 39
Conclusions and Future directions
1 Introduction
Evolution of computing: new challenges
Accelerators and FPGA
BondMachine
2 An accelerated system from ground up
Hardware
Software
3 Tests and Benchmarks
Tests
Benchmark
4 Conclusions and Future directions
Workshop CCR 2022 - Paestum Firmware development for hybrid processors 40
Conclusions
■ The creation of a firmware from ground up is not a mere exercise. It gives
perspective on how heterogeneous system really works and what really is an FPGA
accelerator
■ Even if the methodology and the tools were specifically created for the
BondMachine project, the are sufficiently general to be appliable to other FPGA
accelerators as well
■ FPGA is a groundbreaking technology but require a change of perspective in how
we develop software
Workshop CCR 2022 - Paestum Firmware development for hybrid processors 41
Future directions
We plan to extend the benchmarks to:
■ different data types
■ different boards
■ compare with GPUs
■ include some real power consumption measures
For the project:
■ First DAQ use case
■ Complete the inclusion of Intel and Lattice FPGAs and try a more performant
Zynq based board
■ Accelerator in a cloud workflow
Workshop CCR 2022 - Paestum Firmware development for hybrid processors 42
Thank you
Thank you
website: http://bondmachine.fisica.unipg.it
code: https://github.com/BondMachineHQ
parallel computing paper: link
contact email: mirko.mariotti@unipg.it
Workshop CCR 2022 - Paestum Firmware development for hybrid processors 43

More Related Content

Similar to Firmware Develpment for hybrid (ARM and FPGA) processors

SFScon 2020 - Roberto Innocenti - 202x Open Hardware Concrete Approach
SFScon 2020 - Roberto Innocenti - 202x Open Hardware Concrete ApproachSFScon 2020 - Roberto Innocenti - 202x Open Hardware Concrete Approach
SFScon 2020 - Roberto Innocenti - 202x Open Hardware Concrete ApproachSouth Tyrol Free Software Conference
 
Implementation of Soft-core processor on FPGA (Final Presentation)
Implementation of Soft-core processor on FPGA (Final Presentation)Implementation of Soft-core processor on FPGA (Final Presentation)
Implementation of Soft-core processor on FPGA (Final Presentation)Deepak Kumar
 
FPGA in outer space seminar report
FPGA in outer space seminar reportFPGA in outer space seminar report
FPGA in outer space seminar reportrahul kumar verma
 
RISC-V growth and successes in technology and industry - embedded world 2021
RISC-V growth and successes in technology and industry - embedded world 2021RISC-V growth and successes in technology and industry - embedded world 2021
RISC-V growth and successes in technology and industry - embedded world 2021RISC-V International
 
Using a Field Programmable Gate Array to Accelerate Application Performance
Using a Field Programmable Gate Array to Accelerate Application PerformanceUsing a Field Programmable Gate Array to Accelerate Application Performance
Using a Field Programmable Gate Array to Accelerate Application PerformanceOdinot Stanislas
 
Berlin Embedded Linux meetup: How to Linux on RISC-V
Berlin Embedded Linux meetup: How to Linux on RISC-VBerlin Embedded Linux meetup: How to Linux on RISC-V
Berlin Embedded Linux meetup: How to Linux on RISC-VDrew Fustini
 
FPGA_prototyping proccesing with conclusion
FPGA_prototyping proccesing with conclusionFPGA_prototyping proccesing with conclusion
FPGA_prototyping proccesing with conclusionPersiPersi1
 
How to run Linux on RISC-V (FOSS North 2020)
How to run Linux on RISC-V (FOSS North 2020)How to run Linux on RISC-V (FOSS North 2020)
How to run Linux on RISC-V (FOSS North 2020)Drew Fustini
 
Introduction to Programmable Networks by Clarence Anslem, Intel
Introduction to Programmable Networks by Clarence Anslem, IntelIntroduction to Programmable Networks by Clarence Anslem, Intel
Introduction to Programmable Networks by Clarence Anslem, IntelMyNOG
 
ProjectVault[VivekKumar_CS-C_6Sem_MIT].pptx
ProjectVault[VivekKumar_CS-C_6Sem_MIT].pptxProjectVault[VivekKumar_CS-C_6Sem_MIT].pptx
ProjectVault[VivekKumar_CS-C_6Sem_MIT].pptxVivek Kumar
 
PGI Compilers & Tools Update- March 2018
PGI Compilers & Tools Update- March 2018PGI Compilers & Tools Update- March 2018
PGI Compilers & Tools Update- March 2018NVIDIA
 
International Journal of Computational Engineering Research(IJCER)
International Journal of Computational Engineering Research(IJCER) International Journal of Computational Engineering Research(IJCER)
International Journal of Computational Engineering Research(IJCER) ijceronline
 
Automatic generation of platform architectures using open cl and fpga roadmap
Automatic generation of platform architectures using open cl and fpga roadmapAutomatic generation of platform architectures using open cl and fpga roadmap
Automatic generation of platform architectures using open cl and fpga roadmapManolis Vavalis
 
OpenACC and Open Hackathons Monthly Highlights: July 2022.pptx
OpenACC and Open Hackathons Monthly Highlights: July 2022.pptxOpenACC and Open Hackathons Monthly Highlights: July 2022.pptx
OpenACC and Open Hackathons Monthly Highlights: July 2022.pptxOpenACC
 
“A New, Open-standards-based, Open-source Programming Model for All Accelerat...
“A New, Open-standards-based, Open-source Programming Model for All Accelerat...“A New, Open-standards-based, Open-source Programming Model for All Accelerat...
“A New, Open-standards-based, Open-source Programming Model for All Accelerat...Edge AI and Vision Alliance
 
INFN ML FPGA Course 2022
INFN ML FPGA Course 2022INFN ML FPGA Course 2022
INFN ML FPGA Course 2022Mirko Mariotti
 

Similar to Firmware Develpment for hybrid (ARM and FPGA) processors (20)

SFScon 2020 - Roberto Innocenti - 202x Open Hardware Concrete Approach
SFScon 2020 - Roberto Innocenti - 202x Open Hardware Concrete ApproachSFScon 2020 - Roberto Innocenti - 202x Open Hardware Concrete Approach
SFScon 2020 - Roberto Innocenti - 202x Open Hardware Concrete Approach
 
Implementation of Soft-core processor on FPGA (Final Presentation)
Implementation of Soft-core processor on FPGA (Final Presentation)Implementation of Soft-core processor on FPGA (Final Presentation)
Implementation of Soft-core processor on FPGA (Final Presentation)
 
FPGA in outer space seminar report
FPGA in outer space seminar reportFPGA in outer space seminar report
FPGA in outer space seminar report
 
RISC-V growth and successes in technology and industry - embedded world 2021
RISC-V growth and successes in technology and industry - embedded world 2021RISC-V growth and successes in technology and industry - embedded world 2021
RISC-V growth and successes in technology and industry - embedded world 2021
 
Using a Field Programmable Gate Array to Accelerate Application Performance
Using a Field Programmable Gate Array to Accelerate Application PerformanceUsing a Field Programmable Gate Array to Accelerate Application Performance
Using a Field Programmable Gate Array to Accelerate Application Performance
 
Berlin Embedded Linux meetup: How to Linux on RISC-V
Berlin Embedded Linux meetup: How to Linux on RISC-VBerlin Embedded Linux meetup: How to Linux on RISC-V
Berlin Embedded Linux meetup: How to Linux on RISC-V
 
FPGA_prototyping proccesing with conclusion
FPGA_prototyping proccesing with conclusionFPGA_prototyping proccesing with conclusion
FPGA_prototyping proccesing with conclusion
 
How to run Linux on RISC-V (FOSS North 2020)
How to run Linux on RISC-V (FOSS North 2020)How to run Linux on RISC-V (FOSS North 2020)
How to run Linux on RISC-V (FOSS North 2020)
 
Introduction to Programmable Networks by Clarence Anslem, Intel
Introduction to Programmable Networks by Clarence Anslem, IntelIntroduction to Programmable Networks by Clarence Anslem, Intel
Introduction to Programmable Networks by Clarence Anslem, Intel
 
Deeplearningusingcloudpakfordata
DeeplearningusingcloudpakfordataDeeplearningusingcloudpakfordata
Deeplearningusingcloudpakfordata
 
ProjectVault[VivekKumar_CS-C_6Sem_MIT].pptx
ProjectVault[VivekKumar_CS-C_6Sem_MIT].pptxProjectVault[VivekKumar_CS-C_6Sem_MIT].pptx
ProjectVault[VivekKumar_CS-C_6Sem_MIT].pptx
 
PGI Compilers & Tools Update- March 2018
PGI Compilers & Tools Update- March 2018PGI Compilers & Tools Update- March 2018
PGI Compilers & Tools Update- March 2018
 
International Journal of Computational Engineering Research(IJCER)
International Journal of Computational Engineering Research(IJCER) International Journal of Computational Engineering Research(IJCER)
International Journal of Computational Engineering Research(IJCER)
 
Automatic generation of platform architectures using open cl and fpga roadmap
Automatic generation of platform architectures using open cl and fpga roadmapAutomatic generation of platform architectures using open cl and fpga roadmap
Automatic generation of platform architectures using open cl and fpga roadmap
 
OpenACC and Open Hackathons Monthly Highlights: July 2022.pptx
OpenACC and Open Hackathons Monthly Highlights: July 2022.pptxOpenACC and Open Hackathons Monthly Highlights: July 2022.pptx
OpenACC and Open Hackathons Monthly Highlights: July 2022.pptx
 
“A New, Open-standards-based, Open-source Programming Model for All Accelerat...
“A New, Open-standards-based, Open-source Programming Model for All Accelerat...“A New, Open-standards-based, Open-source Programming Model for All Accelerat...
“A New, Open-standards-based, Open-source Programming Model for All Accelerat...
 
INFN ML FPGA Course 2022
INFN ML FPGA Course 2022INFN ML FPGA Course 2022
INFN ML FPGA Course 2022
 
microprocessor
   microprocessor   microprocessor
microprocessor
 
Linux on RISC-V
Linux on RISC-VLinux on RISC-V
Linux on RISC-V
 
Linux on RISC-V
Linux on RISC-VLinux on RISC-V
Linux on RISC-V
 

More from Mirko Mariotti

Course: "Introductory course to HLS FPGA programming"
Course: "Introductory course to HLS FPGA programming"Course: "Introductory course to HLS FPGA programming"
Course: "Introductory course to HLS FPGA programming"Mirko Mariotti
 
Lecture at Advanced Workshop on Modern FPGA Based Technology for Scientific C...
Lecture at Advanced Workshop on Modern FPGA Based Technology for Scientific C...Lecture at Advanced Workshop on Modern FPGA Based Technology for Scientific C...
Lecture at Advanced Workshop on Modern FPGA Based Technology for Scientific C...Mirko Mariotti
 
The BondMachine Toolkit, enabling machine learning on FPGA
The BondMachine Toolkit, enabling machine learning on FPGAThe BondMachine Toolkit, enabling machine learning on FPGA
The BondMachine Toolkit, enabling machine learning on FPGAMirko Mariotti
 
NiPS Summer School 2019 Lecture
NiPS Summer School 2019 Lecture NiPS Summer School 2019 Lecture
NiPS Summer School 2019 Lecture Mirko Mariotti
 
Go, hardware, Go! My Golab 2018 talk on the BondMachine Project
Go, hardware, Go! My Golab 2018 talk on the BondMachine ProjectGo, hardware, Go! My Golab 2018 talk on the BondMachine Project
Go, hardware, Go! My Golab 2018 talk on the BondMachine ProjectMirko Mariotti
 
BondMachine slides for the InnovateFPGA 2018 Grand Final
BondMachine slides for the InnovateFPGA 2018 Grand FinalBondMachine slides for the InnovateFPGA 2018 Grand Final
BondMachine slides for the InnovateFPGA 2018 Grand FinalMirko Mariotti
 
Short course on FPGA programming
Short course on FPGA programmingShort course on FPGA programming
Short course on FPGA programmingMirko Mariotti
 
Harvesting dispersed computational resources with Openstack
Harvesting dispersed computational resources with OpenstackHarvesting dispersed computational resources with Openstack
Harvesting dispersed computational resources with OpenstackMirko Mariotti
 
The BondMachine: a fully reconfigurable computing ecosystem
The BondMachine: a fully reconfigurable computing ecosystemThe BondMachine: a fully reconfigurable computing ecosystem
The BondMachine: a fully reconfigurable computing ecosystemMirko Mariotti
 
Bondmachine, a mouldable Computer Architecture
Bondmachine, a mouldable Computer ArchitectureBondmachine, a mouldable Computer Architecture
Bondmachine, a mouldable Computer ArchitectureMirko Mariotti
 
Pim - Un Esempio di integrazione AA dei servizi INFN/Universita'
Pim - Un Esempio di integrazione AA dei servizi INFN/Universita'Pim - Un Esempio di integrazione AA dei servizi INFN/Universita'
Pim - Un Esempio di integrazione AA dei servizi INFN/Universita'Mirko Mariotti
 
Xen - Esperienze a Perugia
Xen - Esperienze a PerugiaXen - Esperienze a Perugia
Xen - Esperienze a PerugiaMirko Mariotti
 

More from Mirko Mariotti (13)

Course: "Introductory course to HLS FPGA programming"
Course: "Introductory course to HLS FPGA programming"Course: "Introductory course to HLS FPGA programming"
Course: "Introductory course to HLS FPGA programming"
 
Talk at ParCo2019
Talk at ParCo2019Talk at ParCo2019
Talk at ParCo2019
 
Lecture at Advanced Workshop on Modern FPGA Based Technology for Scientific C...
Lecture at Advanced Workshop on Modern FPGA Based Technology for Scientific C...Lecture at Advanced Workshop on Modern FPGA Based Technology for Scientific C...
Lecture at Advanced Workshop on Modern FPGA Based Technology for Scientific C...
 
The BondMachine Toolkit, enabling machine learning on FPGA
The BondMachine Toolkit, enabling machine learning on FPGAThe BondMachine Toolkit, enabling machine learning on FPGA
The BondMachine Toolkit, enabling machine learning on FPGA
 
NiPS Summer School 2019 Lecture
NiPS Summer School 2019 Lecture NiPS Summer School 2019 Lecture
NiPS Summer School 2019 Lecture
 
Go, hardware, Go! My Golab 2018 talk on the BondMachine Project
Go, hardware, Go! My Golab 2018 talk on the BondMachine ProjectGo, hardware, Go! My Golab 2018 talk on the BondMachine Project
Go, hardware, Go! My Golab 2018 talk on the BondMachine Project
 
BondMachine slides for the InnovateFPGA 2018 Grand Final
BondMachine slides for the InnovateFPGA 2018 Grand FinalBondMachine slides for the InnovateFPGA 2018 Grand Final
BondMachine slides for the InnovateFPGA 2018 Grand Final
 
Short course on FPGA programming
Short course on FPGA programmingShort course on FPGA programming
Short course on FPGA programming
 
Harvesting dispersed computational resources with Openstack
Harvesting dispersed computational resources with OpenstackHarvesting dispersed computational resources with Openstack
Harvesting dispersed computational resources with Openstack
 
The BondMachine: a fully reconfigurable computing ecosystem
The BondMachine: a fully reconfigurable computing ecosystemThe BondMachine: a fully reconfigurable computing ecosystem
The BondMachine: a fully reconfigurable computing ecosystem
 
Bondmachine, a mouldable Computer Architecture
Bondmachine, a mouldable Computer ArchitectureBondmachine, a mouldable Computer Architecture
Bondmachine, a mouldable Computer Architecture
 
Pim - Un Esempio di integrazione AA dei servizi INFN/Universita'
Pim - Un Esempio di integrazione AA dei servizi INFN/Universita'Pim - Un Esempio di integrazione AA dei servizi INFN/Universita'
Pim - Un Esempio di integrazione AA dei servizi INFN/Universita'
 
Xen - Esperienze a Perugia
Xen - Esperienze a PerugiaXen - Esperienze a Perugia
Xen - Esperienze a Perugia
 

Recently uploaded

SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )Tsuyoshi Horigome
 
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxDecoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxJoão Esperancinha
 
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escortsranjana rawat
 
Processing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxProcessing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxpranjaldaimarysona
 
ZXCTN 5804 / ZTE PTN / ZTE POTN / ZTE 5804 PTN / ZTE POTN 5804 ( 100/200 GE Z...
ZXCTN 5804 / ZTE PTN / ZTE POTN / ZTE 5804 PTN / ZTE POTN 5804 ( 100/200 GE Z...ZXCTN 5804 / ZTE PTN / ZTE POTN / ZTE 5804 PTN / ZTE POTN 5804 ( 100/200 GE Z...
ZXCTN 5804 / ZTE PTN / ZTE POTN / ZTE 5804 PTN / ZTE POTN 5804 ( 100/200 GE Z...ZTE
 
Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝
Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝
Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝soniya singh
 
Microscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxMicroscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxpurnimasatapathy1234
 
IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...
IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...
IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...RajaP95
 
Analog to Digital and Digital to Analog Converter
Analog to Digital and Digital to Analog ConverterAnalog to Digital and Digital to Analog Converter
Analog to Digital and Digital to Analog ConverterAbhinavSharma374939
 
Call Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile serviceCall Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile servicerehmti665
 
HARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IVHARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IVRajaP95
 
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICSHARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICSRajkumarAkumalla
 
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escortsranjana rawat
 
Coefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptxCoefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptxAsutosh Ranjan
 
Software Development Life Cycle By Team Orange (Dept. of Pharmacy)
Software Development Life Cycle By  Team Orange (Dept. of Pharmacy)Software Development Life Cycle By  Team Orange (Dept. of Pharmacy)
Software Development Life Cycle By Team Orange (Dept. of Pharmacy)Suman Mia
 
Introduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptxIntroduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptxupamatechverse
 
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICSAPPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICSKurinjimalarL3
 
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...Soham Mondal
 
Porous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writingPorous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writingrakeshbaidya232001
 

Recently uploaded (20)

SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )
 
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxDecoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
 
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
 
Processing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxProcessing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptx
 
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINEDJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
 
ZXCTN 5804 / ZTE PTN / ZTE POTN / ZTE 5804 PTN / ZTE POTN 5804 ( 100/200 GE Z...
ZXCTN 5804 / ZTE PTN / ZTE POTN / ZTE 5804 PTN / ZTE POTN 5804 ( 100/200 GE Z...ZXCTN 5804 / ZTE PTN / ZTE POTN / ZTE 5804 PTN / ZTE POTN 5804 ( 100/200 GE Z...
ZXCTN 5804 / ZTE PTN / ZTE POTN / ZTE 5804 PTN / ZTE POTN 5804 ( 100/200 GE Z...
 
Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝
Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝
Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝
 
Microscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxMicroscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptx
 
IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...
IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...
IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...
 
Analog to Digital and Digital to Analog Converter
Analog to Digital and Digital to Analog ConverterAnalog to Digital and Digital to Analog Converter
Analog to Digital and Digital to Analog Converter
 
Call Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile serviceCall Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile service
 
HARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IVHARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IV
 
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICSHARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
 
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
 
Coefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptxCoefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptx
 
Software Development Life Cycle By Team Orange (Dept. of Pharmacy)
Software Development Life Cycle By  Team Orange (Dept. of Pharmacy)Software Development Life Cycle By  Team Orange (Dept. of Pharmacy)
Software Development Life Cycle By Team Orange (Dept. of Pharmacy)
 
Introduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptxIntroduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptx
 
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICSAPPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
 
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
 
Porous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writingPorous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writing
 

Firmware Develpment for hybrid (ARM and FPGA) processors

  • 1. Firmware development for hybrid processors (ARM and FPGA) computing Mirko Mariotti 1,2 Giulio Bianchini 1 Loriano Storchi 3,2 Giacomo Surace 1 Daniele Spiga 2 1Dipartimento di Fisica e Geologia, Universitá degli Studi di Perugia 2INFN sezione di Perugia 3Dipartimento di Farmacia, Universitá degli Studi G. D’Annunzio Workshop CCR 2022 - Paestum Firmware development for hybrid processors 1
  • 2. Outline 1 Introduction Evolution of computing: new challenges Accelerators and FPGA BondMachine 2 An accelerated system from ground up Hardware Software 3 Tests and Benchmarks Tests Benchmark 4 Conclusions and Future directions Workshop CCR 2022 - Paestum Firmware development for hybrid processors 2
  • 3. Introduction 1 Introduction Evolution of computing: new challenges Accelerators and FPGA BondMachine 2 An accelerated system from ground up Hardware Software 3 Tests and Benchmarks Tests Benchmark 4 Conclusions and Future directions Workshop CCR 2022 - Paestum Firmware development for hybrid processors 3
  • 4. Evolution of computing ■ New challenges Workshop CCR 2022 - Paestum Firmware development for hybrid processors 4
  • 5. Evolution of computing ■ New challenges ■ New architectures Workshop CCR 2022 - Paestum Firmware development for hybrid processors 4
  • 6. Evolution of computing ■ New challenges ■ New architectures ■ From the software point of view: Heterogeneity Workshop CCR 2022 - Paestum Firmware development for hybrid processors 4
  • 7. Evolution of computing ■ New challenges ■ New architectures ■ From the software point of view: Heterogeneity ■ From the hardware point of view: Accelerators Workshop CCR 2022 - Paestum Firmware development for hybrid processors 4
  • 8. Accelerators Hardware device or software program designed to improve the performance of certain workload. Graphics Processing Unit (GPU) Application-Specific Integrated Circuit (ASIC) ■ High Data Throughput ■ Massive Parallel Computing ■ Highly specialized for a task ■ Energy efficient (due to specialization) Workshop CCR 2022 - Paestum Firmware development for hybrid processors 5
  • 9. FPGA accelerator A field programmable gate array (FPGA) is an integrated circuit whose logic is re-programmable. ■ Parallel computing ■ Highly specialized ■ Energy efficient ■ Array of programmable logic blocks ■ Logic blocks configurable to perform complex functions ■ The configuration is specified with the hardware description language FIRMWARE Workshop CCR 2022 - Paestum Firmware development for hybrid processors 6
  • 10. Firmware generation Many projects have the goal of abstracting the firmware generation process. High Level Low Level FIRMWARE Workshop CCR 2022 - Paestum Firmware development for hybrid processors 7
  • 11. BondMachine ■ The BondMachine is a software ecosystem for the dynamical generation of computer architectures that can be synthesized of FPGA and Workshop CCR 2022 - Paestum Firmware development for hybrid processors 8
  • 12. BondMachine ■ The BondMachine is a software ecosystem for the dynamical generation of computer architectures that can be synthesized of FPGA and ■ used as standalone devices, Workshop CCR 2022 - Paestum Firmware development for hybrid processors 8
  • 13. BondMachine ■ The BondMachine is a software ecosystem for the dynamical generation of computer architectures that can be synthesized of FPGA and ■ used as standalone devices, ■ as clustered devices, Workshop CCR 2022 - Paestum Firmware development for hybrid processors 8
  • 14. BondMachine ■ The BondMachine is a software ecosystem for the dynamical generation of computer architectures that can be synthesized of FPGA and ■ used as standalone devices, ■ as clustered devices, ■ and, as in this talk, as firmware for computing accelerators. Workshop CCR 2022 - Paestum Firmware development for hybrid processors 8
  • 15. BondMachine ■ CCR 2015 First ideas, 2016 Poster, 2017 Talk Workshop CCR 2022 - Paestum Firmware development for hybrid processors 9
  • 16. BondMachine ■ CCR 2015 First ideas, 2016 Poster, 2017 Talk ■ InnovateFPGA 2018 Iron Award, Grand Final at Intel Campus (CA) USA Workshop CCR 2022 - Paestum Firmware development for hybrid processors 9
  • 17. BondMachine ■ CCR 2015 First ideas, 2016 Poster, 2017 Talk ■ InnovateFPGA 2018 Iron Award, Grand Final at Intel Campus (CA) USA ■ Invited lectures at: "Advanced Workshop on Modern FPGA Based Technology for Scientific Computing", ICTP 2019 Workshop CCR 2022 - Paestum Firmware development for hybrid processors 9
  • 18. BondMachine ■ CCR 2015 First ideas, 2016 Poster, 2017 Talk ■ InnovateFPGA 2018 Iron Award, Grand Final at Intel Campus (CA) USA ■ Invited lectures at: "Advanced Workshop on Modern FPGA Based Technology for Scientific Computing", ICTP 2019 ■ Invited lectures at: "NiPS Summer School 2019 – Architectures and Algorithms for Energy-Efficient IoT and HPC Applications" Workshop CCR 2022 - Paestum Firmware development for hybrid processors 9
  • 19. BondMachine ■ CCR 2015 First ideas, 2016 Poster, 2017 Talk ■ InnovateFPGA 2018 Iron Award, Grand Final at Intel Campus (CA) USA ■ Invited lectures at: "Advanced Workshop on Modern FPGA Based Technology for Scientific Computing", ICTP 2019 ■ Invited lectures at: "NiPS Summer School 2019 – Architectures and Algorithms for Energy-Efficient IoT and HPC Applications" ■ Golab 2018 talk and ISGC 2019 PoS Workshop CCR 2022 - Paestum Firmware development for hybrid processors 9
  • 20. BondMachine ■ CCR 2015 First ideas, 2016 Poster, 2017 Talk ■ InnovateFPGA 2018 Iron Award, Grand Final at Intel Campus (CA) USA ■ Invited lectures at: "Advanced Workshop on Modern FPGA Based Technology for Scientific Computing", ICTP 2019 ■ Invited lectures at: "NiPS Summer School 2019 – Architectures and Algorithms for Energy-Efficient IoT and HPC Applications" ■ Golab 2018 talk and ISGC 2019 PoS ■ Article published on Parallel Computing, Elsevier 2022 Workshop CCR 2022 - Paestum Firmware development for hybrid processors 9
  • 21. BondMachine ■ CCR 2015 First ideas, 2016 Poster, 2017 Talk ■ InnovateFPGA 2018 Iron Award, Grand Final at Intel Campus (CA) USA ■ Invited lectures at: "Advanced Workshop on Modern FPGA Based Technology for Scientific Computing", ICTP 2019 ■ Invited lectures at: "NiPS Summer School 2019 – Architectures and Algorithms for Energy-Efficient IoT and HPC Applications" ■ Golab 2018 talk and ISGC 2019 PoS ■ Article published on Parallel Computing, Elsevier 2022 ■ PON PHD program Workshop CCR 2022 - Paestum Firmware development for hybrid processors 9
  • 22. An accelerated system from ground up 1 Introduction Evolution of computing: new challenges Accelerators and FPGA BondMachine 2 An accelerated system from ground up Hardware Software 3 Tests and Benchmarks Tests Benchmark 4 Conclusions and Future directions Workshop CCR 2022 - Paestum Firmware development for hybrid processors 10
  • 23. Specs FPGA ■ Digilent Zedboard ■ Soc: Zynq XC7Z020-CLG484-1 ■ 512 MB DDR3 ■ Vivado 2020.2 Workstations ■ Dell Precision Tower 3620 ■ Intel(R) Xeon(R) CPU E3-1270 v5 @ 3.60GHz ■ 16GB Ram ■ Golang 1.18.1 ■ Intel(R) CPU I5-8500 v5 @ 3GHz ■ 16GB Ram ■ GCC with -O0 Workshop CCR 2022 - Paestum Firmware development for hybrid processors 11
  • 24. The whole system overview Workshop CCR 2022 - Paestum Firmware development for hybrid processors 12
  • 25. The Accelerator IP Hardware Description Language Workshop CCR 2022 - Paestum Firmware development for hybrid processors 13
  • 26. The Accelerator IP Hardware Description Language High Level Synthesis Workshop CCR 2022 - Paestum Firmware development for hybrid processors 13
  • 27. The Accelerator IP Hardware Description Language High Level Synthesis BondMachine Workshop CCR 2022 - Paestum Firmware development for hybrid processors 13
  • 28. The Accelerator IP Hardware Description Language High Level Synthesis BondMachine Wires: - a clock signal, - an input bus, - an output bus for the result Workshop CCR 2022 - Paestum Firmware development for hybrid processors 13
  • 29. Interconnection firmware The input and output buses are the endpoints that we would like to have on the linux system. Workshop CCR 2022 - Paestum Firmware development for hybrid processors 14
  • 30. Interconnection firmware The input and output buses are the endpoints that we would like to have on the linux system. Workshop CCR 2022 - Paestum Firmware development for hybrid processors 14
  • 31. Interconnection firmware The input and output buses are the endpoints that we would like to have on the linux system. Memory mapped registers using The AXI protocol Workshop CCR 2022 - Paestum Firmware development for hybrid processors 14
  • 32. The Advanced eXtensible Interface Protocol AXI is a communication bus protocol defined by ARM as part of the Advanced Microcontroller Bus Architecture (AMBA) standard. There are 3 types of AXI Interfaces: ■ AXI Full: for high-performance memory-mapped requirements. ■ AXI Lite: for low-throughput memory-mapped communication. ■ AXI Stream: for high-speed streaming data. Workshop CCR 2022 - Paestum Firmware development for hybrid processors 15
  • 33. Block Design Workshop CCR 2022 - Paestum Firmware development for hybrid processors 16
  • 34. Linux Now that we have a custom accelerated hardware, we need a Linux distro to run on it. Common Features Complete system build from source Allow choice of kernel and bootloader Support for modifying packages with patches or custom configuration files Can build cross-toolchains for development Convenient support for read-only root filesystems Support offline builds The build configuration files integrate well with SCM tools ■ Yocto Convenient sharing of build configuration among similar projects (meta-layers) Larger community (Linux Foundation project) Can build a toolchain that runs on the target A package management system ■ Buildroot Simple Makefile approach, easier to understand how the build system works Reduced resource requirements on the build machine Very easy to customize the final root filesystem (overlays) Credits: https://jumpnowtek.com/linux/Choosing-an-embedded-linux-build-system.html Workshop CCR 2022 - Paestum Firmware development for hybrid processors 17
  • 35. Ingredients to build the distro Kernel config Linux kernel configuration Boot Loader config U-boot Boot loader configuration Device tree Data structure describing hardware components Used by: Kernel Boot loader Created by: Vivado + GCC Bitstream (firmware) File describing Cells and routing of the FPGA Used by Boot loader to programm FPGA Created by: Vivado Workshop CCR 2022 - Paestum Firmware development for hybrid processors 18
  • 36. kernel module ■ The accelerator endpoints are exposed via AXI memory-mapped as memory location of the arm processor running Linux. ■ To properly use the accelerator from user space, the kernel has to handle the accelerator endpoints and make them available to user space. ■ We developed a kernel module for our accelerators. It manages 3 data flows: Kernel User space Kernel Firmware Kernel Firmware Workshop CCR 2022 - Paestum Firmware development for hybrid processors 19
  • 37. Kernel from an to user space: char device The communication are through the standard read and write system call on a kernel generated char device A language has been implemented for the desired operations Workshop CCR 2022 - Paestum Firmware development for hybrid processors 20
  • 38. Kernel to firmware Once the kernel has correctly decoded the data from the char device, it can directly write on AXI registers. AXI registers are directly written by the kernel AXI guarantees consistency and transfer to the firmware input ports. Moreover the data flow from kernel cannot saturate the PL part. Workshop CCR 2022 - Paestum Firmware development for hybrid processors 21
  • 39. Firmware to kernel: IRQ Different story is the data flow from the FPGA to the PS part. Data can easily flow so fast to saturate and make the PS part completely unusable. The firmware collect all the changes to send and fill in a list using a dedicated AXI register Workshop CCR 2022 - Paestum Firmware development for hybrid processors 22
  • 40. Firmware to kernel: IRQ Different story is the data flow from the FPGA to the PS part. Data can easily flow so fast to saturate and make the PS part completely unusable. The firmware collect all the changes to send and fill in a list using a dedicated AXI register Stop accepting new changes from the IP Workshop CCR 2022 - Paestum Firmware development for hybrid processors 22
  • 41. Firmware to kernel: IRQ Different story is the data flow from the FPGA to the PS part. Data can easily flow so fast to saturate and make the PS part completely unusable. The firmware collect all the changes to send and fill in a list using a dedicated AXI register Stop accepting new changes from the IP Send an interrupt request to the kernel Workshop CCR 2022 - Paestum Firmware development for hybrid processors 22
  • 42. Firmware to kernel: IRQ Different story is the data flow from the FPGA to the PS part. Data can easily flow so fast to saturate and make the PS part completely unusable. The firmware collect all the changes to send and fill in a list using a dedicated AXI register Stop accepting new changes from the IP Send an interrupt request to the kernel Workshop CCR 2022 - Paestum Firmware development for hybrid processors 22
  • 43. Firmware to kernel: IRQ Different story is the data flow from the FPGA to the PS part. Data can easily flow so fast to saturate and make the PS part completely unusable. The firmware collect all the changes to send and fill in a list using a dedicated AXI register Stop accepting new changes from the IP Send an interrupt request to the kernel The kernel get the IRQ, read the list of changes and send each of they through the char dev Workshop CCR 2022 - Paestum Firmware development for hybrid processors 22
  • 44. Firmware to kernel: IRQ Different story is the data flow from the FPGA to the PS part. Data can easily flow so fast to saturate and make the PS part completely unusable. The firmware collect all the changes to send and fill in a list using a dedicated AXI register Stop accepting new changes from the IP Send an interrupt request to the kernel The kernel get the IRQ, read the list of changes and send each of they through the char dev The kernel notify the firmware when done Workshop CCR 2022 - Paestum Firmware development for hybrid processors 22
  • 45. Library The char device created by the kernel is opened by the BMAPI user space library that implements the BMMRP. /dev/bm BMAPI Library (*BMAPI) BMr2owa (*BMAPI) BMr2ow (*BMAPI) BMr2o (*BMAPI) BMi2rw (*BMAPI) BMi2r The library functions can be used by the application Workshop CCR 2022 - Paestum Firmware development for hybrid processors 23
  • 46. Accelerated application: an example Workshop CCR 2022 - Paestum Firmware development for hybrid processors 24
  • 48. Tests and Benchmarks 1 Introduction Evolution of computing: new challenges Accelerators and FPGA BondMachine 2 An accelerated system from ground up Hardware Software 3 Tests and Benchmarks Tests Benchmark 4 Conclusions and Future directions Workshop CCR 2022 - Paestum Firmware development for hybrid processors 26
  • 49. An example ■ Definition of an example ■ Check of the correctness of the accelerator results ■ Benchmark of the execution Workshop CCR 2022 - Paestum Firmware development for hybrid processors 27
  • 50. Squared Matrix-vector multiplication Workshop CCR 2022 - Paestum Firmware development for hybrid processors 28
  • 51. Squared Matrix-vector multiplication Workshop CCR 2022 - Paestum Firmware development for hybrid processors 28
  • 52. Squared Matrix-vector multiplication Workshop CCR 2022 - Paestum Firmware development for hybrid processors 28
  • 53. Squared Matrix-vector multiplication 2x2 Workshop CCR 2022 - Paestum Firmware development for hybrid processors 28
  • 54. Squared Matrix-vector multiplication 3x3 Workshop CCR 2022 - Paestum Firmware development for hybrid processors 28
  • 55. Squared Matrix-vector multiplication 4x4 Workshop CCR 2022 - Paestum Firmware development for hybrid processors 28
  • 56. Correctness and module debug To verify the correct computation of the accelerator: ■ a tool to monitor the AXI memory Workshop CCR 2022 - Paestum Firmware development for hybrid processors 29
  • 57. Correctness and module debug To verify the correct computation of the accelerator: ■ a tool to monitor the AXI memory ■ write directly to AXI memory mapped input addresses (through devmem) Workshop CCR 2022 - Paestum Firmware development for hybrid processors 29
  • 58. Correctness and module debug To verify the correct computation of the accelerator: ■ a tool to monitor the AXI memory ■ write directly to AXI memory mapped input addresses (through devmem) ■ check the AXI memory mapped output addresses Workshop CCR 2022 - Paestum Firmware development for hybrid processors 29
  • 59. An example of error Workshop CCR 2022 - Paestum Firmware development for hybrid processors 30
  • 60. An example of error Workshop CCR 2022 - Paestum Firmware development for hybrid processors 30
  • 61. Benchmark: caveats This is a preliminary work. We trust some tools: ■ Vivado reports ■ perf The FPGA benchmarks do not include the PS part overhead (the comparisons are not really fair) Workshop CCR 2022 - Paestum Firmware development for hybrid processors 31
  • 62. Benchmark: the CPU (Golang) ■ Time measures: built-in golang facilities ■ Energy measures: perf ■ Intel(R) Xeon(R) CPU E3-1270 v5 @ 3.60GHz ■ Go 1.18.2 Workshop CCR 2022 - Paestum Firmware development for hybrid processors 32
  • 63. Benchmark: the CPU (C) ■ Time measures: time ■ Energy measures: perf ■ Intel(R) CPU I5-8500 v5 @ 3GHz ■ gcc with -O0 Workshop CCR 2022 - Paestum Firmware development for hybrid processors 33
  • 64. Benchmark: the FPGA Benchmark an IP is not an easy task. Fortunately we have a custom design and an FPGA. We can put the benchmarks tool inside the accelerator. Workshop CCR 2022 - Paestum Firmware development for hybrid processors 34
  • 65. Benchmark: the FPGA Benchmark an IP is not an easy task. Fortunately we have a custom design and an FPGA. We can put the benchmarks tool inside the accelerator. Workshop CCR 2022 - Paestum Firmware development for hybrid processors 34
  • 66. Benchmark: the FPGA Benchmark an IP is not an easy task. Fortunately we have a custom design and an FPGA. We can put the benchmarks tool inside the accelerator. Workshop CCR 2022 - Paestum Firmware development for hybrid processors 34
  • 67. Benchmark: the FPGA Benchmark an IP is not an easy task. Fortunately we have a custom design and an FPGA. We can put the benchmarks tool inside the accelerator. Workshop CCR 2022 - Paestum Firmware development for hybrid processors 34
  • 68. Benchmark: the FPGA Benchmark an IP is not an easy task. Fortunately we have a custom design and an FPGA. We can put the benchmarks tool inside the accelerator. Workshop CCR 2022 - Paestum Firmware development for hybrid processors 34
  • 69. Benchmark core clock cycles distributions Workshop CCR 2022 - Paestum Firmware development for hybrid processors 35
  • 70. FPGA benchmark summary Workshop CCR 2022 - Paestum Firmware development for hybrid processors 36
  • 71. Benchmark core Workshop CCR 2022 - Paestum Firmware development for hybrid processors 37
  • 72. Comparisons: Performace Workshop CCR 2022 - Paestum Firmware development for hybrid processors 38
  • 73. Comparisons: Energy Workshop CCR 2022 - Paestum Firmware development for hybrid processors 39
  • 74. Conclusions and Future directions 1 Introduction Evolution of computing: new challenges Accelerators and FPGA BondMachine 2 An accelerated system from ground up Hardware Software 3 Tests and Benchmarks Tests Benchmark 4 Conclusions and Future directions Workshop CCR 2022 - Paestum Firmware development for hybrid processors 40
  • 75. Conclusions ■ The creation of a firmware from ground up is not a mere exercise. It gives perspective on how heterogeneous system really works and what really is an FPGA accelerator ■ Even if the methodology and the tools were specifically created for the BondMachine project, the are sufficiently general to be appliable to other FPGA accelerators as well ■ FPGA is a groundbreaking technology but require a change of perspective in how we develop software Workshop CCR 2022 - Paestum Firmware development for hybrid processors 41
  • 76. Future directions We plan to extend the benchmarks to: ■ different data types ■ different boards ■ compare with GPUs ■ include some real power consumption measures For the project: ■ First DAQ use case ■ Complete the inclusion of Intel and Lattice FPGAs and try a more performant Zynq based board ■ Accelerator in a cloud workflow Workshop CCR 2022 - Paestum Firmware development for hybrid processors 42
  • 77. Thank you Thank you website: http://bondmachine.fisica.unipg.it code: https://github.com/BondMachineHQ parallel computing paper: link contact email: mirko.mariotti@unipg.it Workshop CCR 2022 - Paestum Firmware development for hybrid processors 43