tree: 3b43b304313b2ce2c94dbbfe0238873bda5a54e8 [path history] [tgz]
  1. Examples/
  2. Include/
  3. NN_Lib_Tests/
  4. Scripts/
  5. Source/
  6. README.md
CMSIS/NN/README.md

CMSIS NN

About

The table below gives a quick overview of the API's in CMSIS-NN int8 library with symmetric quantization.

Note: The GitHub documentation does not follow the develop branch but rather the last official release in the master branch. Consequently, the group documentation linked to in the table table might not have the listed API. Please refer to the description in the header file instead.

GroupAPIBase OperatorInput ConstraintsAdditional memory required for
optimizations (bytes)
DSP OptimizedMVE OptimizedOther comments
Conv
arm_convolve_s8()CONVdilation = 14 * ker_x * ker_y * input_chYesYes
arm_convolve_1x1_s8_fast()CONVdilation = 1
ker_x = 1, ker_y = 1
pad = 0
stride = 1
input_ch % 4 = 0
4 * input_chYesNo
arm_depthwise_conv_s8()DEPTHWISE_CONVdilation = 1NoNoNo
arm_depthwise_conv_s8_opt()DEPTHWISE_CONVdilation = 1
depth_multiplier = 1
DSP: 2 * ker_x * ker_y * input_ch
MVE: 2 * DSP
YesYesBest case is when channels are multiple of 4 or
at the least >= 4
Fully Connected
arm_fully_connected_s8()FULLY CONNECTED &
MAT MUL
NoneDSP: column length * 2
MVE: None
YesYes
Pooling
arm_avgpool_s8()AVERAGE POOLNoneinput_ch * output_x * 2YesNoBest case case is when channels are multiple of 4 or
at the least >= 4
arm_maxpool_s8()MAX POOLNoneNoneNoNo
arm_maxpool_s8_opt()MAX POOLNoneinput_ch * output_x * 2YesNoBest case case is when channels are multiple of 4 or
at the least >= 4
Softmax
arm_softmax_q7()SOFTMAXNoneNoneYesNoNot bit exact to TFLu but can be up to 70x faster
arm_softmax_s8()SOFTMAXNoneNoneNoNoBit exact to TFLu
arm_softmax_u8()SOFTMAXNoneNoneNoNoBit exact to TFLu
Misc
arm_reshape_s8()SOFTMAXNoneNoneNoNo
arm_elementwise_add_s8()ELEMENTWISE ADDNoneNoneYesNoReshape is not done in this function
Only minor improvements are expected
arm_elementwise_mul_s8()ELEMENTWISE MULNoneNoneYesNoReshape is not done in this function
Only minor improvements are expected
arm_relu_q7()RELUNoneNoneYesNo
arm_relu6_s8()RELUNoneNoneYesNo
Concat
arm_concatenation_s8_w()CONCATNoneNoneNoNo
arm_concatenation_s8_x()CONCATNoneNoneNoNo
arm_concatenation_s8_y()CONCATNoneNoneNoNo
arm_concatenation_s8_z()CONCATNoneNoneNoNo