Просмотр исходного кода

CMSIS-NN: Update API Index and history

Change-Id: I838ddb450d94ac17a90eb4ea05d79498cde91e3c
Felix Johnny 6 лет назад
Родитель
Сommit
073331645d
2 измененных файлов с 31 добавлено и 8 удалено
  1. 14 2
      CMSIS/DoxyGen/NN/src/history.txt
  2. 17 6
      CMSIS/NN/README.md

+ 14 - 2
CMSIS/DoxyGen/NN/src/history.txt

@@ -12,19 +12,31 @@
       Added following functions for int8 operators with symmetric quantization.<br>
       <ul>
         <li>arm_convolve_s8</li>
+        <li>arm_convolve_1x1_s8_fast</li>
         <li>arm_depthwise_conv_s8</li>
         <li>arm_depthwise_conv_s8_opt</li>
-        <li>arm_convolve_1x1_s8_fast</li>
         <li>arm_fully_connected_s8</li>
         <li>arm_softmax_q7</li>
+        <li>arm_softmax_s8</li>
+        <li>arm_softmax_u8</li>
+        <li>arm_elementwise_mul_s8</li>
         <li>arm_elementwise_add_s8</li>
         <li>arm_avgpool_s8</li>
-        <li>arm_elementwise_add_s8</li>
+        <li>arm_maxpool_s8</li>
+        <li>arm_maxpool_s8_opt</li>
+        <li>arm_relu6_s8</li>
+        <li>arm_reshape_s8</li>
+        <li>arm_fully_connected_s8</li>
+        <li>arm_concatenation_s8_w/li>
+        <li>arm_concatenation_s8_x/li>
+        <li>arm_concatenation_s8_y/li>
+        <li>arm_concatenation_s8_z/li>
       </ul>
       Added following support functions.<br>
       <ul>
         <li>arm_nn_mat_mul_kernel_s8_s16</li>
         <li>arm_nn_mat_mul_kernel_s8_s16_reordered</li>
+        <li>arm_nn_depthwise_conv_s8_core/li>
       </ul>
     </td>
   </tr>

+ 17 - 6
CMSIS/NN/README.md

@@ -6,22 +6,33 @@ The table below gives  a quick overview of the API's in CMSIS-NN int8 library wi
 **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](https://github.com/ARM-software/CMSIS_5/blob/develop/CMSIS/NN/Include/arm_nnfunctions.h) file instead.
 
 
-Group | API | Base Operator | Input Constraints | Additional memory required for <br/> DSP optimizations (bytes) | DSP Optimized |  MVE Optimized | Other comments |
+Group | API | Base Operator | Input Constraints | Additional memory required for <br/> optimizations (bytes) | DSP Optimized |  MVE Optimized | Other comments |
 |:----| :---| :------------ | :---------------- | :--------------------------------------------------------| :-------------| :------------- | :------------- |
 |[Conv](https://arm-software.github.io/CMSIS_5/NN/html/group__NNConv.html)||||| |  ||
-||arm_convolve_s8()|CONV|dilation = 1|4 * ker_x * ker_y * input_ch| Yes | No ||
+||arm_convolve_s8()|CONV|dilation = 1|4 * ker_x * ker_y * input_ch| Yes | Yes ||
 ||arm_convolve_1x1_s8_fast() | CONV | dilation = 1 <br/> ker_x = 1, ker_y = 1 <br/> pad = 0<br/> stride = 1<br/> input_ch % 4 = 0| 4 * input_ch | Yes |No ||
 | | arm_depthwise_conv_s8() | DEPTHWISE_CONV | dilation = 1  | No|No|No||
-|| arm_depthwise_conv_s8_opt()| DEPTHWISE_CONV | dilation = 1 <br/> depth_multiplier = 1 | 4 * ker_x * ker_y * input_ch | Yes| No| Best case is when channels are multiple of 4 or <br/>at the least >= 4 |
+|| arm_depthwise_conv_s8_opt()| DEPTHWISE_CONV | dilation = 1 <br/> depth_multiplier = 1 | DSP: 2 * ker_x * ker_y * input_ch <br/> MVE: 2 * DSP | Yes| Yes| Best case is when channels are multiple of 4 or <br/>at the least >= 4 |
 |[Fully Connected](https://arm-software.github.io/CMSIS_5/NN/html/group__FC.html)||||| |  | |
-|| arm_fully_connected_s8() |FULLY CONNECTED & <br/> MAT MUL  | None | column length * 2 | Yes | No | |
+|| arm_fully_connected_s8() |FULLY CONNECTED & <br/> MAT MUL  | None | DSP: column length * 2 <br/> MVE: None | Yes | Yes | |
 |[Pooling](https://arm-software.github.io/CMSIS_5/NN/html/group__Pooling.html)||||| |  ||
 || arm_avgpool_s8() | AVERAGE POOL | None | input_ch * output_x * 2 | Yes| No| Best case case is when channels are multiple of 4 or <br/> at the least >= 4 |
-|[Misc](https://arm-software.github.io/CMSIS_5/NN/html/group__groupNN.html)||||| |  ||
+|| arm_maxpool_s8() | MAX POOL | None | None | No| No|  |
+|| arm_maxpool_s8_opt() | MAX POOL | None | input_ch * output_x * 2 | Yes| No| Best case case is when channels are multiple of 4 or <br/> at the least >= 4 |
+|[Softmax](https://arm-software.github.io/CMSIS_5/NN/html/group__Softmax.html)||||| |  ||
 ||arm_softmax_q7()| SOFTMAX | None | None | Yes | No | Not bit exact to TFLu but can be up to 70x faster |
+||arm_softmax_s8()| SOFTMAX | None | None | No | No | Bit exact to TFLu |
+||arm_softmax_u8()| SOFTMAX | None | None | No | No | Bit exact to TFLu |
+|[Misc](https://arm-software.github.io/CMSIS_5/NN/html/group__groupNN.html)||||| |  ||
+||arm_reshape_s8()| SOFTMAX | None | None | No | No | |
 ||arm_elementwise_add_s8()| ELEMENTWISE ADD | None | None | Yes| No| Reshape is not done in this function <br/> Only minor improvements are expected |
 ||arm_elementwise_mul_s8()| ELEMENTWISE MUL | None | None | Yes| No| Reshape is not done in this function <br/> Only minor improvements are expected |
 ||arm_relu_q7() | RELU | None | None | Yes| No|
 ||arm_relu6_s8() | RELU | None | None | Yes| No|
-| |  |  | | | ||
+|[Concat](https://arm-software.github.io/CMSIS_5/NN/html/group__groupNN.html)||||| |  ||
+||arm_concatenation_s8_w() | CONCAT | None | None | No| No||
+||arm_concatenation_s8_x() | CONCAT | None | None | No| No||
+||arm_concatenation_s8_y() | CONCAT | None | None | No| No||
+||arm_concatenation_s8_z() | CONCAT | None | None | No| No||
+