diff options
author | Matteo Martincigh <matteo.martincigh@arm.com> | 2019-08-14 14:05:46 +0100 |
---|---|---|
committer | Matteo Martincigh <matteo.martincigh@arm.com> | 2019-08-22 17:30:13 +0100 |
commit | e67edb238a3304dd767a34eca484d84bfebf76f5 (patch) | |
tree | fb0b7f1c13c7234c77e85953b4a9f6d4a0602617 /src/backends/reference | |
parent | c33882d1369927ad02f665b273af129c89834229 (diff) | |
download | armnn-e67edb238a3304dd767a34eca484d84bfebf76f5.tar.gz |
IVGCVSW-3656 Make the reference backend optional
* Made the build of the reference backend depend on a new ARMCOMPUTEREF
macro
* Made the relevant targets dependent on the ref backend
* Moved Cl and Neon static registry initializers to separate files
* Wrapped some of the unit tests into proper ifdefs where necessary
Change-Id: I7f2c42699682630233a4c4b6aed2f005083de189
Signed-off-by: Matteo Martincigh <matteo.martincigh@arm.com>
Diffstat (limited to 'src/backends/reference')
-rw-r--r-- | src/backends/reference/CMakeLists.txt | 53 | ||||
-rw-r--r-- | src/backends/reference/backend.cmake | 10 | ||||
-rw-r--r-- | src/backends/reference/backend.mk | 28 |
3 files changed, 67 insertions, 24 deletions
diff --git a/src/backends/reference/CMakeLists.txt b/src/backends/reference/CMakeLists.txt index 6852ab0b74..ff253787a1 100644 --- a/src/backends/reference/CMakeLists.txt +++ b/src/backends/reference/CMakeLists.txt @@ -3,30 +3,39 @@ # SPDX-License-Identifier: MIT # -list(APPEND armnnRefBackend_sources - RefBackend.cpp - RefBackend.hpp - RefBackendId.hpp - RefTensorHandle.hpp - RefTensorHandle.cpp - RefLayerSupport.cpp - RefLayerSupport.hpp - RefMemoryManager.hpp - RefMemoryManager.cpp - RefRegistryInitializer.cpp - RefWorkloadFactory.cpp - RefWorkloadFactory.hpp - RefTensorHandleFactory.hpp - RefTensorHandleFactory.cpp -) +if(ARMCOMPUTEREF) + list(APPEND armnnRefBackend_sources + RefBackend.cpp + RefBackend.hpp + RefBackendId.hpp + RefTensorHandle.hpp + RefTensorHandle.cpp + RefLayerSupport.cpp + RefLayerSupport.hpp + RefMemoryManager.hpp + RefMemoryManager.cpp + RefRegistryInitializer.cpp + RefWorkloadFactory.cpp + RefWorkloadFactory.hpp + RefTensorHandleFactory.cpp + RefTensorHandleFactory.hpp + ) + + add_subdirectory(workloads) + + if(BUILD_UNIT_TESTS) + add_subdirectory(test) + endif() + +else() + list(APPEND armnnRefBackend_sources + RefBackendId.hpp + RefLayerSupport.cpp + RefLayerSupport.hpp + ) +endif() add_library(armnnRefBackend OBJECT ${armnnRefBackend_sources}) target_include_directories(armnnRefBackend PRIVATE ${PROJECT_SOURCE_DIR}/src/armnn) target_include_directories(armnnRefBackend PRIVATE ${PROJECT_SOURCE_DIR}/src/armnnUtils) target_include_directories(armnnRefBackend PRIVATE ${PROJECT_SOURCE_DIR}/src/backends) - -add_subdirectory(workloads) - -if(BUILD_UNIT_TESTS) - add_subdirectory(test) -endif() diff --git a/src/backends/reference/backend.cmake b/src/backends/reference/backend.cmake index 5ae088a124..e88968de8b 100644 --- a/src/backends/reference/backend.cmake +++ b/src/backends/reference/backend.cmake @@ -4,5 +4,11 @@ # add_subdirectory(${PROJECT_SOURCE_DIR}/src/backends/reference) -list(APPEND armnnLibraries armnnRefBackend armnnRefBackendWorkloads) -list(APPEND armnnUnitTestLibraries armnnRefBackendUnitTests) +list(APPEND armnnLibraries armnnRefBackend) + +if(ARMCOMPUTEREF) + list(APPEND armnnLibraries armnnRefBackendWorkloads) + list(APPEND armnnUnitTestLibraries armnnRefBackendUnitTests) +else() + message("Reference backend is disabled") +endif() diff --git a/src/backends/reference/backend.mk b/src/backends/reference/backend.mk index a8df565947..13251b779a 100644 --- a/src/backends/reference/backend.mk +++ b/src/backends/reference/backend.mk @@ -7,6 +7,12 @@ # in the Android build and it is picked up by the Android.mk # file in the root of ArmNN +# The variable to enable/disable the reference backend (ARMNN_COMPUTE_REF_ENABLED is declared in android-nn-driver/Android.mk) +ifeq ($(ARMNN_COMPUTE_REF_ENABLED),1) + +# ARMNN_COMPUTE_REF_ENABLED == 1 +# Include the source files for the reference backend + BACKEND_SOURCES := \ RefBackend.cpp \ RefLayerSupport.cpp \ @@ -78,11 +84,25 @@ BACKEND_SOURCES := \ workloads/Softmax.cpp \ workloads/Splitter.cpp \ workloads/TransposeConvolution2d.cpp +else + +# ARMNN_COMPUTE_REF_ENABLED == 0 +# No source file will be compiled for the reference backend + +BACKEND_SOURCES := + +endif # BACKEND_TEST_SOURCES contains the list of files to be included # in the Android unit test build (armnn-tests) and it is picked # up by the Android.mk file in the root of ArmNN +# The variable to enable/disable the CL backend (ARMNN_COMPUTE_REF_ENABLED is declared in android-nn-driver/Android.mk) +ifeq ($(ARMNN_COMPUTE_REF_ENABLED),1) + +# ARMNN_COMPUTE_REF_ENABLED == 1 +# Include the source files for the CL backend tests + BACKEND_TEST_SOURCES := \ test/RefCreateWorkloadTests.cpp \ test/RefDetectionPostProcessTests.cpp \ @@ -93,3 +113,11 @@ BACKEND_TEST_SOURCES := \ test/RefMemoryManagerTests.cpp \ test/RefOptimizedNetworkTests.cpp \ test/RefRuntimeTests.cpp +else + +# ARMNN_COMPUTE_REF_ENABLED == 0 +# No source file will be compiled for the reference backend tests + +BACKEND_TEST_SOURCES := + +endif |