The DesignWare® ARC® MetaWare EV Development Toolkit is a complete set
of tools, runtime software and libraries that provides everything needed to
develop embedded vision applications on the DesignWare ARC EV6x Processor family. The toolkit consists of the MetaWare Compiler and Debugger, ARC
nSIM Instruction Set Simulator (ISS), EV Runtime and libraries, CNN Software
Development Kit (CNN SDK), and the EV Virtualizer Development Kit (EV VDK).
The programming environment is based on the Khronos™ Group’s OpenVX™
open standard for acceleration of computer vision applications. It is suitable
for embedded use cases such as face, body and gesture tracking, surveillance,
ADAS, and virtual/augmented reality applications.
The following table shows the main components of the MetaWare EV Development Toolkit:
||Single compiler supports C/C++ & OpenCL
C programming for applications and vision kernels
|MetaWare Debugger and nSIM
||Debugger and simulator for debugging, profiling, and optimizing applications and vision kernels
|EV Runtime and Libraries
||OpenVX framework and libraries ease vision graph development|
|CNN Software Development Kit
||CNN graph mapping tool automates mapping to the CNN engine|
|EV Virtualizer Development Kit
||System level simulation model with host for early development|
The MetaWare C/C++ Compiler and MetaWare OpenCL C Compiler are used to build applications and vision kernels targeting the EV6x processors. The OpenCL™ C programming language is used to create kernels that are executed on the EV6x vector DSP. The OpenCL C compiler supports manual and automatic whole-function vectorization and provides methods for additional optimizations through software pipelining and control of instruction scheduling. The MetaWare Debugger is used to debug, profile and optimize the applications and kernels written with these compilers. nSIM is an Instruction Set Simulator used for early software development such as algorithm and graph development.
EV Runtime and Libraries
The EV Runtime is based on the OpenVX standard that defines a vision API specifically developed for embedded systems. A library of vision kernels is included in the standard, along with an API to assemble the kernels into OpenVX graphs. Application programmers can write their own user kernels to implement any complex or leading-edge vision applications.
Simplified View of the EV Runtime Software Stack
The CNN SDK provides tools and software to execute a trained neural network graph on the CNN engine.
The CNN mapping tool takes a pre-trained graph, implemented in the Caffe deep-learning framework, and maps it to the CNN engine. It can also produce a standalone floating point and fixed point model of the graph to aid in comparing the accuracy when moving from floating point to fixed point. The fixed-point models may also be used as part of the ARC nSIM or EV VDK simulation environments.
CNN Graph Mapping Tool
The EV VDK is a virtual prototype of an EV system that allows for early software development. It provides a system-level virtual prototype with a host executing Linux and an EV processor running the embedded vision application. Typical SoC components are also modeled in the EV VDK, including Ethernet controllers, USB ports, UART ports, and so on.
DesignWare ARC MetaWare EV Development Toolkit Datasheet
Downloads and Documentation
- Comprehensive tools and software target face, body and gesture tracking, surveillance, ADAS, and virtual/augmented applications for the EV6x processor family
- Based on familiar open source industry standards such as OpenVX, OpenCV, OpenCL C & C/C++
- Optimizing and vectorizing compilers for efficient software development
- Automatic and optimizing CNN graph mapping tools to reduce computation, memory and bandwidth requirements
- Simulation tools available for early application software development
- Supports software development for ARC EM and HS processors families