Enabling System Level Design
1
Open Source Virtual Platforms for SW Prototyping on FPGA
Mark Burton
F1
Open Source Virtual Platforms for SW Prototyping on FPGA Mark Burton - - PowerPoint PPT Presentation
F1 Open Source Virtual Platforms for SW Prototyping on FPGA Mark Burton Enabling System Level Design 1 Deep Learning Accelerator Nvidia has a Deep Learning Accelerator (called NVDLA) The NVIDIA Deep Learning Accelerator (NVDLA) is a free
Enabling System Level Design
1
Mark Burton
F1
Enabling System Level Design
2
Deep Learning Accelerator
The NVIDIA Deep Learning Accelerator (NVDLA) is a free and
learning inference accelerators. With its modular architecture, NVDLA is scalable, highly configurable, and designed to simplify integration and portability. The hardware supports a wide range
NVIDIA Open NVDLA License, all of the software, hardware, and documentation will be available on GitHub. Contributions are welcome
Enabling System Level Design
3
Turing Lecture 2017 : Hennessey and Patterson
https://www.youtube.com/watch?v=3LVeEjsn8Ts
Enabling System Level Design
4
Goals
Enabling System Level Design
5
Virtualization
Emulation Virtual Platform Virtualization (Para-)Virtualization Hardware
Algorithm execution Or full system virtualization
Application O/S Virtual platform
(model)
‘real binary’
Full binary execution
platform (model)
Application O/S FPGA
Full binary execution
platform (FPGA)
Application O/S Hardware
Full binary execution
Final Hardware
Enabling System Level Design
6
Virtualization
Emulation Virtual Platform Virtualization (Para-)Virtualization Hardware
Algorithm execution Or full system virtualization
Application O/S Virtual platform
(model)
‘real binary’
Full binary execution
platform (model)
Application O/S FPGA
Full binary execution
platform (FPGA)
Application O/S Hardware
Full binary execution
Final Hardware
Enabling System Level Design
7
Open Source SystemC Standard
Virtual Platform Standard is SystemC TLM-2.0 IEEE 1666
Corporate members 2016
Enabling System Level Design
8
Qemu: Our Preferred source of CPU models
Reverse execution and Multi-Core TCG Kernel.
Architectures CPU’s Commits Contributors Lines of code
Enabling System Level Design
9
Existing Model database overview:
X86 ARM MIPS Alpha PowerPC SPARC Micro- blaze Cold- fire Cris SH4 Xtensa
Fast SW dev model (LT)
Cycle Accurate HW dev model (AT)
CPU Family coverage:
Full list (of several hundred) available on GreenSocs.com
Enabling System Level Design
10
QBox
standard SystemC
almost all CPU architectures and achieves extremely high performance.
SystemC QBox (qemu) TLM
Enabling System Level Design
11
Qbox Syncronisation options
reaches the end, it must stop and wait
delta time positive)
Enabling System Level Design
12
Extending Qemu for Zynq
Clock framework
Large packet DMA framework
device.
Fault Injection
safety and test features to be validated.
Safety and Test Library extensions to devices
GreenSocs is the partner upstreaming their device models
Enabling System Level Design
13
Extending Qemu Speed MULTI Thread Qemu
advantage of multi-core hosts 1 10 20 30 40 50 1 VCPUs 2 VCPUs 4 VCPUs 1 VCPUs 2 VCPUs 4 VCPUs Upstream MTTCG 1 2 4
Enabling System Level Design
14
Advanced features
irrespective of input stimulus
Enabling System Level Design
15
What’s OpenVP
device code
Guest User Space Guest Kernel Space Host User Space
CPU Cluster Model NVDLA FPGA Wrapper Model NVDLA Cmodel Mem Model KMD Applications UMD HW Tests FPGA Parser AWS Driver NVDLA device QEMU with TLM2C
Enabling System Level Design
16
Problem
the host, so it will not ‘accelerate’.
the model.
Enabling System Level Design
17
Adding FPGA
device code
wrapper
Guest User Space Guest Kernel Space Host User Space Host Kernel AWS HW and FPGA
CPU Cluster Model NVDLA FPGA Wrapper Model NVDLA Cmodel Mem Model KMD Applications UMD AWS Kernel Driver AWS Shell NVDLA FPGA Transactor FPGA DRAM HW Tests FPGA Parser AWS Driver NVDLA device QEMU with TLM2C
Enabling System Level Design
18
SPEED
Both available from nvdla.org
Enabling System Level Design
19
All the components…
QEMU TLM2C Mem Model DLA Cmodel
Enabling System Level Design
20
HW Test on FPGA
HW Description FPGA Parser FPGA Driver AWS SDK AWS FPGA
Why we need HW tests on FPGA
To guarantee the quality of FPGA release To identify corner case and issues in RTL
Enabling System Level Design
21
Full S/W stack
wrapper
UMD KMD QEMU FPGA Wrapper AWS SDK AWS HDK AWS FPGA
Enabling System Level Design
22
Generalisation
requires more work L
modeled in a ‘cloud’ (public/ private), off-loading onto FPGA when required/appropriate.
guest match.
Enabling System Level Design
23
Future Possibilities
evaluation
configuration
Enabling System Level Design
24
www.greensocs.com mark@greensocs.com NVDLA page http://nvdla.org/ OpenVP Doc http://nvdla.org/contents.html OpenVP Github page https://github.com/nvdla/vp https://github.com/nvdla/vp_awsfpga