Skip to content

CMSIS-NN 4.0.0

Compare
Choose a tag to compare
@felix-johnny felix-johnny released this 21 Nov 08:39
· 91 commits to main since this release

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