1# Copyright (c) 2023 Meta Platforms
2# SPDX-License-Identifier: Apache-2.0
3
4config ZEPHYR_CMSIS_NN_MODULE
5	bool
6
7menuconfig CMSIS_NN
8	bool "CMSIS-NN Library Support"
9	depends on CPU_CORTEX_M
10	select CMSIS_DSP
11	help
12	  This option enables the CMSIS-NN library.
13
14if CMSIS_NN
15
16config CMSIS_NN_ACTIVATION
17	bool "Activation"
18	help
19	  This option enables the NN libraries for the activation layers
20	  It can perform activation layers, including ReLU (Rectified
21	  Linear Unit), sigmoid, and tanh.
22
23config CMSIS_NN_BASICMATH
24	bool "Basic Math for NN"
25	help
26	  This option enables the NN libraries for the basic maths operations.
27	  It adds functionality for element-wise add and multiplication functions.
28
29config CMSIS_NN_CONCATENATION
30	bool "Concatenation"
31	help
32	  This option enables the NN libraries for the concatenation layers.
33
34config CMSIS_NN_CONVOLUTION
35	bool "Convolution"
36	imply CMSIS_NN_NNSUPPORT
37	help
38	  Collection of convolution, depthwise convolution functions and
39	  their variants. The convolution is implemented in 2 steps: im2col
40	  and GEMM. GEMM is performed with CMSIS-DSP arm_mat_mult similar options.
41
42config CMSIS_NN_FULLYCONNECTED
43	bool "Fully Connected"
44	imply CMSIS_NN_NNSUPPORT
45	help
46	  Collection of fully-connected and matrix multiplication functions.
47
48config CMSIS_NN_NNSUPPORT
49	bool "NN Support"
50	help
51	  When off, its default behavior is all tables are included.
52
53config CMSIS_NN_POOLING
54	bool "Pooling"
55	imply CMSIS_NN_NNSUPPORT
56	help
57	  This option enables pooling layers, including max pooling,
58	  and average pooling.
59
60config CMSIS_NN_RESHAPE
61	bool "Reshape"
62	help
63	  This option enables the NN libraries for the reshape layers.
64
65config CMSIS_NN_SOFTMAX
66	bool "Softmax"
67	help
68	  This option enables the NN libraries for the softmax layers (exp2 based).
69
70config CMSIS_NN_SVD
71	bool "SVD"
72	imply CMSIS_NN_NNSUPPORT
73	help
74	  This option enabled the NN libraries for Single Value Decomposition Filter layers.
75
76config CMSIS_NN_LSTM
77	bool "Long Short-Term Memory"
78	help
79	  This option enables the NN libraries for Long Short-Term Memory.
80
81endif #CMSIS_NN
82