CMSIS-NN 4.0.0
Release Notes
The following are the updates compared to previous release in CMSIS 5.9.0
Return Type Change
The return type of all API's that returned a status is now changed. CMSIS-NN used error codes from CMSIS-DSP in the form of enum 'arm_status'. This is now replaced by enum 'arm_cmsis_nn_status'. The status values are still the same. It is reccomended that users change the return type in their applications.
Removal of Legacy Functions
Neural Network(NN) operators which do not follow the quantization specification of TensorFlow Lite for Microcontrollers is removed. Existing users can use CMSIS 5.9.0 release to continue using it.
As a consequence of this, the data type aliases q7_t, q15_t, q31_t and q63_t are replaced by int8_t, int16_t, int32_t, int64_t respectively.
New Operators
Scalar implementation of LSTM with unit tests. We plan to add optimizations for DSP extension and Multi Vector Extension(MVE) in the next release.
New Features
These are new optimizations to existing operators.
- DSP extension optimization for int16 average pooling
- MVE optimization for int16 max and average pooling
- MVE optimization for int16 add and mul
- MVE optimization for int16 fully connected
- MVE and DSP extension optimization for int16 depthwise convolution
- MVE and DSP extension optimization for non-unity stride 1x1 convolution
Performance Improvements
- 3x3 depthwise convolution for DSP extension
- 1x1 convolution for MVE