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