Software Development Tools for RISC-V Heterogeneous Multiprocessor and AI Applications
April 19, 2022
Blog
With the massive demand for AI applications, the underlying hardware needs to be compatible with advanced software tools for optimal product development life-cycle. AndeSight V1.5 is one of the newest IDEs that enables users to efficiently develop embedded use cases for AI and much more.
Andes' most recent release, AndeSight version 5.1 is a Linux-supported, feature-rich Integrated Development Environment (IDE) technology that combines the power of application development, debugging, and analysis with heterogeneous RISC-V multiprocessors. It also includes the Andes RISC-V Superscalar Multicore A(X)45MP and Andes RISC-V Vector Processor NX27V.
AndeSight offers a user-friendly multicore debugging feature for both symmetric and asymmetric multiprocessing (SMP, AMP) systems in a single IDE interface and includes a core grouping feature that sends debug commands to a set of cores in the same debug session to optimize efficiency. AndeSight enables record-and-replay scripting capability in order to save the interactive steps for easy issue reproduction and automatic testing.
To support operating systems with SMP (other than the Linux SMP), Andes offers the first RISC-V port for SMP Zephyr RTOS and Zephyr’s driver subsystem. With the help of this feature, developers need not worry about the underlying software system and can solely focus on their applications. For AMP demands, AndeSight integrates the OpenAMP framework specifically used for providing the software components needed to enable the development of applications for Asymmetric Multiprocessing (AMP) systems. This framework provides a communication infrastructure between heterogeneous systems and enables AMP applications to take advantage of the parallelism offered by multiprocessor systems.
Optimizing AI Computations
The AndeSight IDE provides tools such as RISC-V DSP/SIMD Extension (RVP), RISC-V Vector Extensions (RVV), and auto-vectorization. It offers full support from toolchains for RVP and RVV, their respective intrinsic functions, highly optimized DSP and Vector libraries, and sample codes to guide code optimization. AndeSight IDE v5.1 also enables auto-vectorization to generate RVV instructions automatically by the compiler.
With the help of the RVP extension, multiple data in integer registers can be processed in one single cycle, boosting performance while maintaining low power consumption. It is used for applications like TinyML, AIoT, and signal processing applications on edge and endpoint. The RVV extension targets high-volume data computations with a configurable vector processing architecture. It is scalable, efficient, and has powerful computing capabilities for AI, NN, and other data processing applications in edge and cloud computing. With the support from AndeSight, software developers can utilize the vector computing power in the C language.
Using a processor pipeline analyzer, developers can utilize the full capabilities of processors. This in turn allows developers to achieve the ultimate performance of a sophisticated vector processor like AndesCore NX27. AndesClarity visualizes the pipeline execution and resource bottleneck. In addition, the AndeSoft Neural Network Library can drastically increase the speed of the development of Neural Network algorithms. This NN library is specially optimized for RVP and RVV instructions for INT8 and FP16 data types, and supports several quantization methods such as shift-based, symmetry, and asymmetry.
The NX27V processor with 512-bit SIMD width and 512-bit vector length is capable of achieving a 96x speedup, executing only RISC-V baseline extensions for MobileNet-v1 inference. Furthermore, AndeSoft NN Library can be used by TensorFlow Lite for Microcontroller, for the execution of TensorFlow models on development boards.
To sum it up, AndeSight accelerates the development of embedded systems and provides developers with a versatile integrated environment with advantages including outstanding toolchains and libraries, scripting for automated operations, analysis tools, and OS awareness development. It also provides abundant reference codes that enable new developers to get started easily. With the AndeSight IDE, developers can release their software with more features, better performance, and higher quality in a shorter time.