The following table shows the main components of the MetaWare MX Development Toolkit:
|MetaWare Development Toolkit
||The MetaWare Development Toolkit contains the C/C++, OpenCL C, and Vector C compilers that support programming for kernel and application development. It also includes a debugger and ARC nSIM, which is an instruction set simulator for debugging, profiling, and optimizing kernels and applications
||For model-based design, this plug-in automatically generates optimized code from a MATLAB model to execute on ARC processors
|DSP & Math Libraries
||These are libraries optimized for execution on ARC processors and include a Vector DSP and a Vector Linear Algebra Library
|MetaWare Neural Network SDK
||The SDK includes a neural network compiler that compiles and runs AI models optimized for the ARC NPX NPU IP and ARC VPX processors
|Virtual Platforms SDK
||Includes simulation platforms that enable system-level model integration for architectural exploration and early software development prior to silicon
||Provides a library of classic computer vision kernels to accelerate vision algorithms and applications running on the ARC VPX DSPs
MetaWare Development Toolkit
The MetaWare Development Toolkit contains compilers, a debugger and a simulator. It includes the MetaWare C/C++ Compiler and MetaWare OpenCL C Compiler used to build applications and kernels to execute on ARC processors. The compilers support manual and automatic vectorization and provide methods for additional optimizations through software pipelining and control of instruction scheduling. The MetaWare Debugger is used to debug, profile, and optimize applications and kernels built with these compilers. ARC nSIM is an Instruction Set Simulator used for early software development such as algorithm development.
This plug-in enables model-based design for algorithm development at a higher level of abstraction. It achieves this by integrating the MetaWare Development Toolkit into the MATLAB/Simulink® environment. The MATLAB/Simulink-generated C code can then be compiled for the ARC processors, including the ARC VPX family. The MATLAB Plugin uses Vector DSP and Vector Linear Algebra libraries to produce further optimized code that can run on the ARC processors, including the VPX family.
DSP and Linear Algebra Libraries
The MetaWare Vector DSP library is a software library that provides a set of optimized software DSP functions that can ease the development of applications for the Vector DSP of the ARC VPX processor. By using the library, you can simplify your application development by applying pre-verified functions that have been optimized for the ARC VPX processors.
The MetaWare Vector Linear Algebra Library is a software library of BLAS/LAPACK and supplementary algorithms. It is available in an OpenCL C and a C/C++ version. This library can be used to easily develop applications requiring linear algebra functionality.
These libraries can be used by the MATLAB Plug-in for code replacement to produce highly optimized code for the ARC VPX processors.
MetaWare NN SDK
The MetaWare NN SDK provides a Neural Network Compiler and runtime software to execute a neural network model on the ARC NPX NPU IP or ARC VPX DSPs. The MetaWare NN Compiler takes a pre-trained model, implemented in the TensorFlow framework or available in the ONNX format, and compiles it to run on the ARC NPX NPU IP or ARC VPX DSPs. It can also produce a standalone fixed-point model to aid in comparing the accuracy when moving from floating point to fixed point.
MetaWare Virtual Platforms SDK
The MetaWare Virtual Platforms SDK enables system-level simulation for early software development, benchmarking, and architectural exploration before hardware availability. The MetaWare Virtual Platforms SDK includes Fast Performance Models – Fast Timed (FPM-FT) with cycle-based simulation models enabling wider SoC simulations combining ARC NPX NPU IP and ARC VPX DSPs.
MetaWare Vision SDK
Provides a library of classic computer vision kernels to accelerate vision algorithms and applications running on the ARC VPX. Kernels include resize, color space conversion, various filters and pixel-wise processing. Kernels can be used standalone, or in conjunction with the NN SDK to do pre- and post-processing of Neural Network data.