Skip to content

Commit

Permalink
Merge pull request #310 from ARM-software/features/cmsis_nn_2
Browse files Browse the repository at this point in the history
Adding CMSIS-NN component with Neural Network functions.
  • Loading branch information
JonatanAntoni authored Jan 23, 2018
2 parents a28e804 + ac25191 commit f8c5612
Show file tree
Hide file tree
Showing 133 changed files with 31,080 additions and 5 deletions.
82 changes: 81 additions & 1 deletion ARM.CMSIS.pdsc
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@
<releases>
<release version="5.2.1-dev3">
Active development...
CMSIS-NN: 1.0.0
- Initial contribution of the bare metal Neural Network Library.
</release>
<release version="5.2.1-dev2">
Updated company brand.
Expand Down Expand Up @@ -1991,7 +1993,13 @@ and 8-bit Java bytecodes in Jazelle state.
<require condition="ARMCC GCC"/>
<require Cclass="CMSIS" Cgroup="CORE"/>
</condition>


<!-- CMSIS NN -->
<condition id="CMSIS NN">
<description>Components required for NN</description>
<require condition="CMSIS DSP"/>
</condition>

<!-- RTOS RTX -->
<condition id="RTOS RTX">
<description>Components required for RTOS RTX</description>
Expand Down Expand Up @@ -2537,6 +2545,48 @@ and 8-bit Java bytecodes in Jazelle state.

</files>
</component>

<!-- CMSIS-NN component -->
<component Cclass="CMSIS" Cgroup="NN" Cversion="1.0.0" condition="CMSIS NN">
<description>CMSIS-NN Neural Network Library</description>
<files>
<file category="doc" name="CMSIS/Documentation/NN/html/index.html"/>
<file category="header" name="CMSIS/NN/Include/arm_nnfunctions.h"/>

<file category="source" name="CMSIS/NN/Source/ActivationFunctions/arm_nn_activations_q7.c"/>
<file category="source" name="CMSIS/NN/Source/ActivationFunctions/arm_nn_activations_q15.c"/>
<file category="source" name="CMSIS/NN/Source/ActivationFunctions/arm_relu_q7.c"/>
<file category="source" name="CMSIS/NN/Source/ActivationFunctions/arm_relu_q15.c"/>

<file category="source" name="CMSIS/NN/Source/ConvolutionFunctions/arm_convolve_HWC_q7_RGB.c"/>
<file category="source" name="CMSIS/NN/Source/ConvolutionFunctions/arm_convolve_HWC_q15_basic.c"/>
<file category="source" name="CMSIS/NN/Source/ConvolutionFunctions/arm_convolve_HWC_q15_fast.c"/>
<file category="source" name="CMSIS/NN/Source/ConvolutionFunctions/arm_depthwise_separable_conv_HWC_q7.c"/>
<file category="source" name="CMSIS/NN/Source/ConvolutionFunctions/arm_depthwise_separable_conv_HWC_q7_nonsquare.c"/>
<file category="source" name="CMSIS/NN/Source/ConvolutionFunctions/arm_nn_mat_mult_kernel_q7_q15.c"/>
<file category="source" name="CMSIS/NN/Source/ConvolutionFunctions/arm_nn_mat_mult_kernel_q7_q15_reordered.c"/>
<file category="source" name="CMSIS/NN/Source/ConvolutionFunctions/arm_convolve_1x1_HWC_q7_fast_nonsquare.c"/>
<file category="source" name="CMSIS/NN/Source/ConvolutionFunctions/arm_convolve_HWC_q7_basic.c"/>
<file category="source" name="CMSIS/NN/Source/ConvolutionFunctions/arm_convolve_HWC_q7_fast.c"/>
<file category="source" name="CMSIS/NN/Source/ConvolutionFunctions/arm_convolve_HWC_q7_fast_nonsquare.c"/>

<file category="source" name="CMSIS/NN/Source/FullyConnectedFunctions/arm_fully_connected_q7.c"/>
<file category="source" name="CMSIS/NN/Source/FullyConnectedFunctions/arm_fully_connected_q7_opt.c"/>
<file category="source" name="CMSIS/NN/Source/FullyConnectedFunctions/arm_fully_connected_q15.c"/>
<file category="source" name="CMSIS/NN/Source/FullyConnectedFunctions/arm_fully_connected_q15_opt.c"/>
<file category="source" name="CMSIS/NN/Source/FullyConnectedFunctions/arm_fully_connected_mat_q7_vec_q15.c"/>
<file category="source" name="CMSIS/NN/Source/FullyConnectedFunctions/arm_fully_connected_mat_q7_vec_q15_opt.c"/>

<file category="source" name="CMSIS/NN/Source/NNSupportFunctions/arm_q7_to_q15_reordered_no_shift.c"/>
<file category="source" name="CMSIS/NN/Source/NNSupportFunctions/arm_nntables.c"/>
<file category="source" name="CMSIS/NN/Source/NNSupportFunctions/arm_q7_to_q15_no_shift.c"/>

<file category="source" name="CMSIS/NN/Source/PoolingFunctions/arm_pool_q7_HWC.c"/>

<file category="source" name="CMSIS/NN/Source/SoftmaxFunctions/arm_softmax_q15.c"/>
<file category="source" name="CMSIS/NN/Source/SoftmaxFunctions/arm_softmax_q7.c"/>
</files>
</component>

<!-- CMSIS-RTOS Keil RTX component -->
<component Cclass="CMSIS" Cgroup="RTOS" Csub="Keil RTX" Cversion="4.81.1" Capiversion="1.0.0" isDefaultVariant="1" condition="RTOS RTX">
Expand Down Expand Up @@ -3194,6 +3244,36 @@ and 8-bit Java bytecodes in Jazelle state.
</attributes>
</example>

<example name="NN Library CIFAR10" doc="readme.txt" folder="CMSIS/NN/Examples/ARM/arm_nn_examples/cifar10">
<description>Neural Network CIFAR10 example</description>
<board name="uVision Simulator" vendor="Keil"/>
<project>
<environment name="uv" load="arm_nnexamples_cifar10.uvprojx"/>
</project>
<attributes>
<component Cclass="CMSIS" Cgroup="CORE"/>
<component Cclass="CMSIS" Cgroup="DSP"/>
<component Cclass="CMSIS" Cgroup="NN"/>
<component Cclass="Device" Cgroup="Startup"/>
<category>Getting Started</category>
</attributes>
</example>

<example name="NN Library GRU" doc="readme.txt" folder="CMSIS/NN/Examples/ARM/arm_nn_examples/gru">
<description>Neural Network GRU example</description>
<board name="uVision Simulator" vendor="Keil"/>
<project>
<environment name="uv" load="arm_nnexamples_gru.uvprojx"/>
</project>
<attributes>
<component Cclass="CMSIS" Cgroup="CORE"/>
<component Cclass="CMSIS" Cgroup="DSP"/>
<component Cclass="CMSIS" Cgroup="NN"/>
<component Cclass="Device" Cgroup="Startup"/>
<category>Getting Started</category>
</attributes>
</example>

<example name="CMSIS-RTOS2 Blinky" doc="Abstract.txt" folder="CMSIS/RTOS2/RTX/Examples/Blinky">
<description>CMSIS-RTOS2 Blinky example</description>
<board name="uVision Simulator" vendor="Keil"/>
Expand Down
1 change: 1 addition & 0 deletions CMSIS/DoxyGen/Doxygen_Templates/printComponentTabs.js
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ var arr = [];
arr.push( new tabElement( "CORE_M", "/Core/html/", "CMSIS-Core(M)") );
arr.push( new tabElement( "DRV", "/Driver/html/", "Driver") );
arr.push( new tabElement( "DSP", "/DSP/html/", "DSP") );
arr.push( new tabElement( "NN", "/NN/html/", "NN") );
arr.push( new tabElement( "RTOSv1", "/RTOS/html/", "RTOS v1") );
arr.push( new tabElement( "RTOSv2", "/RTOS2/html/", "RTOS v2") );
arr.push( new tabElement( "PACK", "/Pack/html/", "Pack") );
Expand Down
Binary file removed CMSIS/DoxyGen/General/src/images/CMSISv4_small.png
Binary file not shown.
Binary file added CMSIS/DoxyGen/General/src/images/Overview.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
7 changes: 5 additions & 2 deletions CMSIS/DoxyGen/General/src/introduction.txt
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,9 @@ The CMSIS components are:

- <a href="../../DSP/html/index.html"><b>CMSIS-DSP</b></a>: DSP Library Collection with over 60 Functions for various data types: fixed-point (fractional q7, q15, q31) and single precision floating-point (32-bit).
The library is available for all Cortex-M cores. Implementations that are optimized for the SIMD instruction set are available for Cortex-M4, Cortex-M7, and Cortex-M33.

- <a href="../../NN/html/index.html"><b>CMSIS-NN</b></a>: CMSIS-NN is a collection of efficient neural network kernels developed to maximize the performance and minimize the memory footprint of neural networks on Cortex-M processor cores.


- <a href="../../RTOS/html/index.html"><b>CMSIS-RTOS v1</b></a>: Common API for Real-Time Operating Systems along with reference implementation based on RTX.
It provides a standardized programming interface that is portable to many RTOS and enables software components that can work across multiple RTOS systems.

Expand All @@ -53,7 +54,7 @@ The CMSIS components are:

\note Refer to \ref CM_Pack_Content for more information on the content of the Software Pack.

\image html CMSISv4_small.png "CMSIS Structure"
\image html Overview.png "CMSIS Structure"

\section Motivation Motivation

Expand Down Expand Up @@ -155,6 +156,7 @@ Directory |Content
\b DAP |<a href="../../DAP/html/index.html"><b>CMSIS-DAP</b></a> Debug Access Port source code and reference implementations
\b Driver |Header files for the <a href="../../Driver/html/index.html"><b>CMSIS-Driver</b></a> peripheral interface API
\b DSP_Lib |<a href="../../DSP/html/index.html"><b>CMSIS-DSP</b></a> software library source code
\b NN |<a href="../../NN/html/index.html"><b>CMSIS-NN</b></a> software library source code
\b Include |Include files for <a href="../../Core/html/index.html"><b>CMSIS-Core (Cortex-M)</b></a> and <a href="../../DSP/html/index.html"><b>CMSIS-DSP</b></a>
\b Lib |<a href="../../DSP/html/index.html"><b>CMSIS-DSP</b></a> generated libraries for ARMCC and GCC
\b Pack |<a href="../../Pack/html/pack_Example.html"><b>CMSIS-Pack</b></a> example
Expand All @@ -178,6 +180,7 @@ In addition, each CMSIS component has its own release history:
- <a href="../../Core/html/rev_histCoreA.html"><b>CMSIS-Core (Cortex-A) Revision History</b></a>
- <a href="../../Driver/html/driver_revisionHistory.html"><b>Driver Revision History</b></a>
- <a href="../../DSP/html/ChangeLog_pg.html"><b>DSP Revision History (Change Log)</b></a>
- <a href="../../NN/html/ChangeLog_pg.html"><b>NN Revision History (Change Log)</b></a>
- <a href="../../RTOS/html/rtos_revisionHistory.html"><b>RTOS v1 Revision History</b></a>
- <a href="../../RTOS2/html/rtos_revisionHistory.html"><b>RTOS v2 Revision History</b></a>
- <a href="../../Pack/html/pack_revisionHistory.html"><b>Pack Revision History</b></a>
Expand Down
1 change: 1 addition & 0 deletions CMSIS/DoxyGen/NN/doxygen_nn.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
doxygen nn.dxy
Loading

0 comments on commit f8c5612

Please sign in to comment.