| // |
| // Copyright © 2017-2023 Arm Ltd and Contributors. All rights reserved. |
| // SPDX-License-Identifier: MIT |
| // |
| |
| //////////////////////////////////////////// |
| // // |
| // libarmnn.a // |
| // // |
| //////////////////////////////////////////// |
| |
| COMMON_SOURCES = [ |
| "src/backends/backendsCommon/TensorHandle.cpp", |
| "src/backends/backendsCommon/DynamicBackend.cpp", |
| "src/backends/backendsCommon/DynamicBackendUtils.cpp", |
| "src/backends/backendsCommon/IBackendInternal.cpp", |
| "src/backends/backendsCommon/ITensorHandleFactory.cpp", |
| "src/backends/backendsCommon/LayerSupportBase.cpp", |
| "src/backends/backendsCommon/MapWorkload.cpp", |
| "src/backends/backendsCommon/MemCopyWorkload.cpp", |
| "src/backends/backendsCommon/MemImportWorkload.cpp", |
| "src/backends/backendsCommon/MemoryManager.cpp", |
| "src/backends/backendsCommon/MemSyncWorkload.cpp", |
| "src/backends/backendsCommon/OptimizationViews.cpp", |
| "src/backends/backendsCommon/TensorHandleFactoryRegistry.cpp", |
| "src/backends/backendsCommon/UnmapWorkload.cpp", |
| "src/backends/backendsCommon/WorkloadData.cpp", |
| "src/backends/backendsCommon/WorkloadFactory.cpp", |
| "src/backends/backendsCommon/WorkloadUtils.cpp", |
| "src/backends/backendsCommon/memoryOptimizerStrategyLibrary/strategies/ConstantMemoryStrategy.cpp", |
| "src/backends/backendsCommon/memoryOptimizerStrategyLibrary/strategies/SingleAxisPriorityList.cpp", |
| "src/backends/backendsCommon/memoryOptimizerStrategyLibrary/strategies/StrategyValidator.cpp", |
| "src/backends/aclCommon/ArmComputeTensorUtils.cpp", |
| "src/backends/aclCommon/BaseMemoryManager.cpp", |
| ] |
| |
| ARMNN_SOURCES = [ |
| "profiling/common/src/CommandHandlerFunctor.cpp", |
| "profiling/common/src/CommandHandlerKey.cpp", |
| "profiling/common/src/CommandHandlerRegistry.cpp", |
| "profiling/common/src/CommonProfilingUtils.cpp", |
| "profiling/common/src/CounterDirectory.cpp", |
| "profiling/common/src/LabelsAndEventClasses.cpp", |
| "profiling/common/src/Logging.cpp", |
| "profiling/common/src/NetworkSockets.cpp", |
| "profiling/common/src/PacketVersionResolver.cpp", |
| "profiling/common/src/Processes.cpp", |
| "profiling/common/src/SwTrace.cpp", |
| "profiling/common/src/Threads.cpp", |
| "profiling/client/src/ActivateTimelineReportingCommandHandler.cpp", |
| "profiling/client/src/BufferManager.cpp", |
| "profiling/client/src/CommandHandler.cpp", |
| "profiling/client/src/ConnectionAcknowledgedCommandHandler.cpp", |
| "profiling/client/src/CounterIdMap.cpp", |
| "profiling/client/src/DeactivateTimelineReportingCommandHandler.cpp", |
| "profiling/client/src/FileOnlyProfilingConnection.cpp", |
| "profiling/client/src/Holder.cpp", |
| "profiling/client/src/IProfilingService.cpp", |
| "profiling/client/src/PacketBuffer.cpp", |
| "profiling/client/src/PeriodicCounterCapture.cpp", |
| "profiling/client/src/PeriodicCounterSelectionCommandHandler.cpp", |
| "profiling/client/src/PerJobCounterSelectionCommandHandler.cpp", |
| "profiling/client/src/ProfilingConnectionDumpToFileDecorator.cpp", |
| "profiling/client/src/ProfilingConnectionFactory.cpp", |
| "profiling/client/src/ProfilingService.cpp", |
| "profiling/client/src/ProfilingStateMachine.cpp", |
| "profiling/client/src/ProfilingUtils.cpp", |
| "profiling/client/src/RegisterBackendCounters.cpp", |
| "profiling/client/src/RequestCounterDirectoryCommandHandler.cpp", |
| "profiling/client/src/SendCounterPacket.cpp", |
| "profiling/client/src/SendThread.cpp", |
| "profiling/client/src/SendTimelinePacket.cpp", |
| "profiling/client/src/SocketProfilingConnection.cpp", |
| "profiling/client/src/TimelinePacketWriterFactory.cpp", |
| "profiling/client/src/TimelineUtilityMethods.cpp", |
| "profiling/client/src/backends/BackendProfiling.cpp", |
| "profiling/client/src/backends/IBackendProfiling.cpp", |
| "profiling/server/src/timelineDecoder/DirectoryCaptureCommandHandler.cpp", |
| "profiling/server/src/timelineDecoder/TimelineCaptureCommandHandler.cpp", |
| "profiling/server/src/timelineDecoder/TimelineDecoder.cpp", |
| "profiling/server/src/timelineDecoder/TimelineDirectoryCaptureCommandHandler.cpp", |
| "src/armnn/ArmNNProfilingServiceInitialiser.cpp", |
| "src/armnn/BackendHelper.cpp", |
| "src/armnn/BackendRegistry.cpp", |
| "src/armnn/Descriptors.cpp", |
| "src/armnn/Exceptions.cpp", |
| "src/armnn/Graph.cpp", |
| "src/armnn/ILayerSupport.cpp", |
| "src/armnn/InternalTypes.cpp", |
| "src/armnn/JsonPrinter.cpp", |
| "src/armnn/Layer.cpp", |
| "src/armnn/LoadedNetwork.cpp", |
| "src/armnn/Logging.cpp", |
| "src/armnn/Network.cpp", |
| "src/armnn/NetworkUtils.cpp", |
| "src/armnn/Observable.cpp", |
| "src/armnn/Optimizer.cpp", |
| "src/armnn/OutputHandler.cpp", |
| "src/armnn/ProfilingEvent.cpp", |
| "src/armnn/Profiling.cpp", |
| "src/armnn/Runtime.cpp", |
| "src/armnn/SerializeLayerParameters.cpp", |
| "src/armnn/SubgraphView.cpp", |
| "src/armnn/SubgraphViewSelector.cpp", |
| "src/armnn/Tensor.cpp", |
| "src/armnn/Threadpool.cpp", |
| "src/armnn/TypesUtils.cpp", |
| "src/armnn/Utils.cpp", |
| "src/armnn/WallClockTimer.cpp", |
| "src/armnn/WorkingMemHandle.cpp", |
| "src/armnnUtils/CompatibleTypes.cpp", |
| "src/armnnUtils/DataLayoutIndexed.cpp", |
| "src/armnnUtils/DotSerializer.cpp", |
| "src/armnnUtils/FloatingPointConverter.cpp", |
| "src/armnnUtils/HeapProfiling.cpp", |
| "src/armnnUtils/LeakChecking.cpp", |
| "src/armnnUtils/ParserHelper.cpp", |
| "src/armnnUtils/Permute.cpp", |
| "src/armnnUtils/TensorUtils.cpp", |
| "src/armnnUtils/VerificationHelpers.cpp", |
| "src/armnnUtils/Filesystem.cpp", |
| "src/armnnUtils/ProfilingOptionsConverter.cpp", |
| "src/armnnUtils/Transpose.cpp", |
| "src/armnn/layers/ActivationLayer.cpp", |
| "src/armnn/layers/AdditionLayer.cpp", |
| "src/armnn/layers/ArgMinMaxLayer.cpp", |
| "src/armnn/layers/BatchMatMulLayer.cpp", |
| "src/armnn/layers/BatchNormalizationLayer.cpp", |
| "src/armnn/layers/BatchToSpaceNdLayer.cpp", |
| "src/armnn/layers/CastLayer.cpp", |
| "src/armnn/layers/ChannelShuffleLayer.cpp", |
| "src/armnn/layers/ComparisonLayer.cpp", |
| "src/armnn/layers/ConcatLayer.cpp", |
| "src/armnn/layers/ConstantLayer.cpp", |
| "src/armnn/layers/Convolution2dLayer.cpp", |
| "src/armnn/layers/Convolution3dLayer.cpp", |
| "src/armnn/layers/ConvertFp16ToFp32Layer.cpp", |
| "src/armnn/layers/ConvertFp32ToFp16Layer.cpp", |
| "src/armnn/layers/DebugLayer.cpp", |
| "src/armnn/layers/DepthToSpaceLayer.cpp", |
| "src/armnn/layers/DepthwiseConvolution2dLayer.cpp", |
| "src/armnn/layers/DequantizeLayer.cpp", |
| "src/armnn/layers/DetectionPostProcessLayer.cpp", |
| "src/armnn/layers/DivisionLayer.cpp", |
| "src/armnn/layers/ElementwiseBaseLayer.cpp", |
| "src/armnn/layers/ElementwiseBinaryLayer.cpp", |
| "src/armnn/layers/ElementwiseUnaryLayer.cpp", |
| "src/armnn/layers/FakeQuantizationLayer.cpp", |
| "src/armnn/layers/FillLayer.cpp", |
| "src/armnn/layers/FloorLayer.cpp", |
| "src/armnn/layers/FullyConnectedLayer.cpp", |
| "src/armnn/layers/GatherLayer.cpp", |
| "src/armnn/layers/GatherNdLayer.cpp", |
| "src/armnn/layers/InputLayer.cpp", |
| "src/armnn/layers/InstanceNormalizationLayer.cpp", |
| "src/armnn/layers/L2NormalizationLayer.cpp", |
| "src/armnn/layers/LogicalBinaryLayer.cpp", |
| "src/armnn/layers/LogSoftmaxLayer.cpp", |
| "src/armnn/layers/LstmLayer.cpp", |
| "src/armnn/layers/MapLayer.cpp", |
| "src/armnn/layers/MaximumLayer.cpp", |
| "src/armnn/layers/MeanLayer.cpp", |
| "src/armnn/layers/MemCopyLayer.cpp", |
| "src/armnn/layers/MemImportLayer.cpp", |
| "src/armnn/layers/MergeLayer.cpp", |
| "src/armnn/layers/MinimumLayer.cpp", |
| "src/armnn/layers/MultiplicationLayer.cpp", |
| "src/armnn/layers/NormalizationLayer.cpp", |
| "src/armnn/layers/OutputLayer.cpp", |
| "src/armnn/layers/PadLayer.cpp", |
| "src/armnn/layers/PermuteLayer.cpp", |
| "src/armnn/layers/Pooling2dLayer.cpp", |
| "src/armnn/layers/Pooling3dLayer.cpp", |
| "src/armnn/layers/PreCompiledLayer.cpp", |
| "src/armnn/layers/PreluLayer.cpp", |
| "src/armnn/layers/QLstmLayer.cpp", |
| "src/armnn/layers/QuantizeLayer.cpp", |
| "src/armnn/layers/QuantizedLstmLayer.cpp", |
| "src/armnn/layers/RankLayer.cpp", |
| "src/armnn/layers/ReduceLayer.cpp", |
| "src/armnn/layers/ReshapeLayer.cpp", |
| "src/armnn/layers/ResizeLayer.cpp", |
| "src/armnn/layers/ShapeLayer.cpp", |
| "src/armnn/layers/SliceLayer.cpp", |
| "src/armnn/layers/SoftmaxLayer.cpp", |
| "src/armnn/layers/SpaceToBatchNdLayer.cpp", |
| "src/armnn/layers/SpaceToDepthLayer.cpp", |
| "src/armnn/layers/SplitterLayer.cpp", |
| "src/armnn/layers/StackLayer.cpp", |
| "src/armnn/layers/StandInLayer.cpp", |
| "src/armnn/layers/StridedSliceLayer.cpp", |
| "src/armnn/layers/SubtractionLayer.cpp", |
| "src/armnn/layers/SwitchLayer.cpp", |
| "src/armnn/layers/TransposeConvolution2dLayer.cpp", |
| "src/armnn/layers/TransposeLayer.cpp", |
| "src/armnn/layers/UnidirectionalSequenceLstmLayer.cpp", |
| "src/armnn/layers/UnmapLayer.cpp", |
| "src/armnnSerializer/Serializer.cpp", |
| "src/armnnSerializer/SerializerUtils.cpp", |
| "src/armnnDeserializer/Deserializer.cpp", |
| ] |
| |
| GPU_BACKEND_SOURCES = [ |
| "src/backends/aclCommon/ArmComputeTuningUtils.cpp", |
| "src/backends/cl/ClBackend.cpp", |
| "src/backends/cl/ClBackendContext.cpp", |
| "src/backends/cl/ClBackendModelContext.cpp", |
| "src/backends/cl/ClContextControl.cpp", |
| "src/backends/cl/ClContextDeserializer.cpp", |
| "src/backends/cl/ClContextSerializer.cpp", |
| "src/backends/cl/ClImportTensorHandleFactory.cpp", |
| "src/backends/cl/ClLayerSupport.cpp", |
| "src/backends/cl/ClRegistryInitializer.cpp", |
| "src/backends/cl/ClTensorHandleFactory.cpp", |
| "src/backends/cl/ClWorkloadFactory.cpp", |
| "src/backends/cl/OpenClTimer.cpp", |
| "src/backends/cl/workloads/ClAbsWorkload.cpp", |
| "src/backends/cl/workloads/ClActivationWorkload.cpp", |
| "src/backends/cl/workloads/ClAdditionWorkload.cpp", |
| "src/backends/cl/workloads/ClArgMinMaxWorkload.cpp", |
| "src/backends/cl/workloads/ClBatchMatMulWorkload.cpp", |
| "src/backends/cl/workloads/ClBatchNormalizationFloatWorkload.cpp", |
| "src/backends/cl/workloads/ClBatchToSpaceNdWorkload.cpp", |
| "src/backends/cl/workloads/ClCastWorkload.cpp", |
| "src/backends/cl/workloads/ClChannelShuffleWorkload.cpp", |
| "src/backends/cl/workloads/ClComparisonWorkload.cpp", |
| "src/backends/cl/workloads/ClConcatWorkload.cpp", |
| "src/backends/cl/workloads/ClConstantWorkload.cpp", |
| "src/backends/cl/workloads/ClConvertFp16ToFp32Workload.cpp", |
| "src/backends/cl/workloads/ClConvertFp32ToFp16Workload.cpp", |
| "src/backends/cl/workloads/ClConvolution2dWorkload.cpp", |
| "src/backends/cl/workloads/ClConvolution3dWorkload.cpp", |
| "src/backends/cl/workloads/ClDepthToSpaceWorkload.cpp", |
| "src/backends/cl/workloads/ClDepthwiseConvolutionWorkload.cpp", |
| "src/backends/cl/workloads/ClDequantizeWorkload.cpp", |
| "src/backends/cl/workloads/ClDivisionWorkload.cpp", |
| "src/backends/cl/workloads/ClExpWorkload.cpp", |
| "src/backends/cl/workloads/ClFillWorkload.cpp", |
| "src/backends/cl/workloads/ClFloorFloatWorkload.cpp", |
| "src/backends/cl/workloads/ClFullyConnectedWorkload.cpp", |
| "src/backends/cl/workloads/ClGatherWorkload.cpp", |
| "src/backends/cl/workloads/ClGatherNdWorkload.cpp", |
| "src/backends/cl/workloads/ClInstanceNormalizationWorkload.cpp", |
| "src/backends/cl/workloads/ClL2NormalizationFloatWorkload.cpp", |
| "src/backends/cl/workloads/ClLogWorkload.cpp", |
| "src/backends/cl/workloads/ClLogicalAndWorkload.cpp", |
| "src/backends/cl/workloads/ClLogicalNotWorkload.cpp", |
| "src/backends/cl/workloads/ClLogicalOrWorkload.cpp", |
| "src/backends/cl/workloads/ClLogSoftmaxWorkload.cpp", |
| "src/backends/cl/workloads/ClLstmFloatWorkload.cpp", |
| "src/backends/cl/workloads/ClMaximumWorkload.cpp", |
| "src/backends/cl/workloads/ClMeanWorkload.cpp", |
| "src/backends/cl/workloads/ClMinimumWorkload.cpp", |
| "src/backends/cl/workloads/ClMultiplicationWorkload.cpp", |
| "src/backends/cl/workloads/ClNegWorkload.cpp", |
| "src/backends/cl/workloads/ClNormalizationFloatWorkload.cpp", |
| "src/backends/cl/workloads/ClPadWorkload.cpp", |
| "src/backends/cl/workloads/ClPermuteWorkload.cpp", |
| "src/backends/cl/workloads/ClPooling2dWorkload.cpp", |
| "src/backends/cl/workloads/ClPooling3dWorkload.cpp", |
| "src/backends/cl/workloads/ClPreluWorkload.cpp", |
| "src/backends/cl/workloads/ClQLstmWorkload.cpp", |
| "src/backends/cl/workloads/ClQuantizedLstmWorkload.cpp", |
| "src/backends/cl/workloads/ClQuantizeWorkload.cpp", |
| "src/backends/cl/workloads/ClReduceWorkload.cpp", |
| "src/backends/cl/workloads/ClReshapeWorkload.cpp", |
| "src/backends/cl/workloads/ClResizeWorkload.cpp", |
| "src/backends/cl/workloads/ClRsqrtWorkload.cpp", |
| "src/backends/cl/workloads/ClSinWorkload.cpp", |
| "src/backends/cl/workloads/ClSliceWorkload.cpp", |
| "src/backends/cl/workloads/ClSoftmaxWorkload.cpp", |
| "src/backends/cl/workloads/ClSpaceToBatchNdWorkload.cpp", |
| "src/backends/cl/workloads/ClSpaceToDepthWorkload.cpp", |
| "src/backends/cl/workloads/ClSplitterWorkload.cpp", |
| "src/backends/cl/workloads/ClSqrtWorkload.cpp", |
| "src/backends/cl/workloads/ClStackWorkload.cpp", |
| "src/backends/cl/workloads/ClStridedSliceWorkload.cpp", |
| "src/backends/cl/workloads/ClSubtractionWorkload.cpp", |
| "src/backends/cl/workloads/ClTransposeConvolution2dWorkload.cpp", |
| "src/backends/cl/workloads/ClTransposeWorkload.cpp", |
| "src/backends/cl/workloads/ClUnidirectionalSequenceLstmFloatWorkload.cpp", |
| ] |
| |
| ARMNN_CFLAGS = [ |
| "-std=c++17", |
| "-fexceptions", |
| "-Wno-unused-parameter", |
| "-DFMT_HEADER_ONLY", |
| "-Wno-ignored-qualifiers", |
| "-Wno-macro-redefined", |
| "-Wno-unreachable-code-loop-increment", |
| "-DARMCOMPUTECL_ENABLED", // TODO: ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1) |
| "-DARMNN_MIXED_PRECISION_FP16_POOLING", |
| ] |
| |
| package { |
| // See: http://go/android-license-faq |
| default_applicable_licenses: [ |
| "external_armnn_license", |
| ], |
| } |
| |
| license { |
| name: "external_armnn_license", |
| visibility: [":__subpackages__"], |
| license_kinds: [ |
| "SPDX-license-identifier-BSD", |
| "SPDX-license-identifier-BSL-1.0", |
| "SPDX-license-identifier-MIT", |
| "SPDX-license-identifier-PSF-2.0", |
| "legacy_unencumbered", |
| ], |
| license_text: [ |
| "LICENSE", |
| ], |
| } |
| |
| // cc_library_shared { |
| cc_library_static { |
| name: "libarmnn", |
| rtti: true, |
| |
| enabled : false, |
| arch: { |
| arm: { |
| enabled : true, |
| }, |
| arm64: { |
| enabled : true, |
| }, |
| }, |
| |
| defaults: [ |
| "neuralnetworks_cl_defaults", |
| ], |
| |
| local_include_dirs: [ |
| "generated", |
| "profiling", |
| "profiling/common/include", |
| "profiling/client/include", |
| "include", |
| "src/timelineDecoder", |
| "third-party", |
| "src", |
| "src/armnn", |
| "src/armnnUtils", |
| "src/profiling", |
| "src/backends", |
| "src/armnnSerializer", |
| "src/armnnDeserializer", |
| ], |
| |
| include_dirs: [ |
| "external/ComputeLibrary", |
| ], |
| |
| static_libs: [ |
| "libflatbuffers-cpp", |
| ], |
| |
| whole_static_libs: [ |
| "arm_compute_library", |
| ], |
| |
| shared_libs: ["liblog"], |
| |
| ldflags: ["-Wl,-Map=libarmnnMapFile.map"], |
| |
| cflags: ARMNN_CFLAGS + [ |
| "-DARMCOMPUTECL_ENABLED", |
| ], |
| |
| srcs: ARMNN_SOURCES + COMMON_SOURCES + GPU_BACKEND_SOURCES, |
| } |