![]() |
NMSIS-DSP
Version 1.3.1
NMSIS DSP Software Library
|
This user manual describes the NMSIS DSP software library, a suite of common compute processing functions for use on RISC-V processor based devices.
The library is divided into a number of functions each covering a specific category:
The library has generally separate functions for operating on 8-bit integers, 16-bit integers, 32-bit integer and 32-bit floating-point values and 64-bit floating-point values.
The library is providing vectorized versions of most algorithms for Helium and of most f32 algorithms for Neon.
When using a vectorized version, provide a little bit of padding after the end of a buffer (3 words) because the vectorized code may read a little bit after the end of a buffer. You don't have to modify your buffers but just ensure that the end of buffer + padding is not outside of a memory region.
NMSIS-DSP pack is containing an optional project : The NMSIS-DSP Compute Graph. The documentation for this project is available on the NMSIS-DSP github repository.
A Python wrapper is also available with a Python API as close as possible to the C one. It can be used to start developing and testing an algorithm with NumPy and SciPy before writing the C version. Is is available on PyPI.org. It can be installed with : pip install nmsisdsp
The library is released in source form. It is strongly advised to compile the library using -Ofast to have the best performances.
The library ships with a number of examples which demonstrate how to use the library functions.
The library has been developed and tested with nuclei riscv gcc toolchain.
In NMSIS repo, it contains a Makefile to rebuild libraries on nuclei riscv gcc toolchain in the NMSIS/
folder.
make gen_dsp_lib
to build and install DSP library into NMSIS/Library/DSP/GCC folder.Each library project have different preprocessor macros controlled via CMakeLists.txt.