xref: /aosp_15_r20/external/armnn/src/backends/neon/backend.mk (revision 89c4ff92f2867872bb9e2354d150bf0c8c502810)
1#
2# Copyright © 2017 ARM Ltd and Contributors. All rights reserved.
3# SPDX-License-Identifier: MIT
4#
5
6# BACKEND_SOURCES contains the list of files to be included
7# in the Android build and it is picked up by the Android.mk
8# file in the root of ArmNN
9
10# The variable to enable/disable the NEON backend (ARMNN_COMPUTE_NEON_ENABLED is declared in android-nn-driver/Android.mk)
11ifeq ($(ARMNN_COMPUTE_NEON_ENABLED),1)
12
13# ARMNN_COMPUTE_NEON_ENABLED == 1
14# Include the source files for the NEON backend
15
16BACKEND_SOURCES := \
17        NeonBackend.cpp \
18        NeonBackendModelContext.cpp \
19        NeonInterceptorScheduler.cpp \
20        NeonLayerSupport.cpp \
21        NeonRegistryInitializer.cpp \
22        NeonTensorHandleFactory.cpp \
23        NeonTimer.cpp \
24        NeonWorkloadFactory.cpp \
25        workloads/NeonAbsWorkload.cpp \
26        workloads/NeonActivationWorkload.cpp \
27        workloads/NeonAdditionWorkload.cpp \
28        workloads/NeonArgMinMaxWorkload.cpp \
29        workloads/NeonBatchMatMulWorkload.cpp \
30        workloads/NeonBatchNormalizationWorkload.cpp \
31        workloads/NeonBatchToSpaceNdWorkload.cpp \
32        workloads/NeonCastWorkload.cpp \
33        workloads/NeonChannelShuffleWorkload.cpp \
34        workloads/NeonComparisonWorkload.cpp \
35        workloads/NeonConcatWorkload.cpp \
36        workloads/NeonConstantWorkload.cpp \
37        workloads/NeonConvertFp16ToFp32Workload.cpp \
38        workloads/NeonConvertFp32ToFp16Workload.cpp \
39        workloads/NeonConvolution2dWorkload.cpp \
40        workloads/NeonConvolution3dWorkload.cpp \
41        workloads/NeonDepthToSpaceWorkload.cpp \
42        workloads/NeonDepthwiseConvolutionWorkload.cpp \
43        workloads/NeonDequantizeWorkload.cpp \
44        workloads/NeonDetectionPostProcessWorkload.cpp \
45        workloads/NeonExpWorkload.cpp \
46        workloads/NeonFillWorkload.cpp \
47        workloads/NeonFloorFloatWorkload.cpp \
48        workloads/NeonFullyConnectedWorkload.cpp \
49        workloads/NeonGatherWorkload.cpp \
50        workloads/NeonGatherNdWorkload.cpp \
51        workloads/NeonInstanceNormalizationWorkload.cpp \
52        workloads/NeonL2NormalizationFloatWorkload.cpp \
53        workloads/NeonLogWorkload.cpp \
54        workloads/NeonLogicalAndWorkload.cpp \
55        workloads/NeonLogicalNotWorkload.cpp \
56        workloads/NeonLogicalOrWorkload.cpp \
57        workloads/NeonLogSoftmaxWorkload.cpp \
58        workloads/NeonLstmFloatWorkload.cpp \
59        workloads/NeonMaximumWorkload.cpp \
60        workloads/NeonMeanWorkload.cpp \
61        workloads/NeonMinimumWorkload.cpp \
62        workloads/NeonMultiplicationWorkload.cpp \
63        workloads/NeonDivisionWorkload.cpp \
64        workloads/NeonNegWorkload.cpp \
65        workloads/NeonNormalizationFloatWorkload.cpp \
66        workloads/NeonPadWorkload.cpp \
67        workloads/NeonPermuteWorkload.cpp \
68        workloads/NeonPooling2dWorkload.cpp \
69        workloads/NeonPooling3dWorkload.cpp \
70        workloads/NeonPreluWorkload.cpp \
71        workloads/NeonQLstmWorkload.cpp \
72        workloads/NeonQuantizedLstmWorkload.cpp \
73        workloads/NeonQuantizeWorkload.cpp \
74        workloads/NeonReduceWorkload.cpp \
75        workloads/NeonReshapeWorkload.cpp \
76        workloads/NeonResizeWorkload.cpp \
77        workloads/NeonRsqrtWorkload.cpp \
78        workloads/NeonSinWorkload.cpp \
79        workloads/NeonSliceWorkload.cpp \
80        workloads/NeonSoftmaxWorkload.cpp \
81        workloads/NeonSpaceToBatchNdWorkload.cpp \
82        workloads/NeonSpaceToDepthWorkload.cpp \
83        workloads/NeonSplitterWorkload.cpp \
84        workloads/NeonSqrtWorkload.cpp \
85        workloads/NeonStackWorkload.cpp \
86        workloads/NeonStridedSliceWorkload.cpp \
87        workloads/NeonSubtractionWorkload.cpp \
88        workloads/NeonTransposeConvolution2dWorkload.cpp \
89        workloads/NeonTransposeWorkload.cpp \
90        workloads/NeonUnidirectionalSequenceLstmFloatWorkload.cpp \
91        workloads/NeonUnidirectionalSequenceLstmWorkload.cpp
92
93else
94
95# ARMNN_COMPUTE_NEON_ENABLED == 0
96# No source file will be compiled for the NEON backend
97
98BACKEND_SOURCES :=
99
100endif
101
102# BACKEND_TEST_SOURCES contains the list of files to be included
103# in the Android unit test build (armnn-tests) and it is picked
104# up by the Android.mk file in the root of ArmNN
105
106# The variable to enable/disable the NEON backend (ARMNN_COMPUTE_NEON_ENABLED is declared in android-nn-driver/Android.mk)
107ifeq ($(ARMNN_COMPUTE_NEON_ENABLED),1)
108
109# ARMNN_COMPUTE_NEON_ENABLED == 1
110# Include the source files for the NEON backend tests
111
112BACKEND_TEST_SOURCES := \
113        test/NeonBackendTests.cpp \
114        test/NeonCreateWorkloadTests.cpp \
115        test/NeonEndToEndTests.cpp \
116        test/NeonJsonPrinterTests.cpp \
117        test/NeonLayerSupportTests.cpp \
118        test/NeonLayerTests.cpp \
119        test/NeonOptimizedNetworkTests.cpp \
120        test/NeonRuntimeTests.cpp \
121        test/NeonTimerTest.cpp
122
123ifeq ($(ARMNN_REF_ENABLED),1)
124BACKEND_TEST_SOURCES += \
125        test/NeonMemCopyTests.cpp
126endif # ARMNN_REF_ENABLED == 1
127
128else
129
130# ARMNN_COMPUTE_NEON_ENABLED == 0
131# No source file will be compiled for the NEON backend tests
132
133BACKEND_TEST_SOURCES :=
134
135endif
136