aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthew Sloyan <matthew.sloyan@arm.com>2023-01-23 10:20:04 +0000
committerMatthew Sloyan <matthew.sloyan@arm.com>2023-01-23 14:51:11 +0000
commitc01da459e63461dc0ecfe855fd3254c938689386 (patch)
treede12240bac086b5ec751c3f76a2f64340b2e082a
parent6b74da0d8bca1d51c520bea275df1cc5560c0c96 (diff)
downloadarmnn-c01da459e63461dc0ecfe855fd3254c938689386.tar.gz
Refactor TOSA Common to be built without enabling the TOSA Reference backend
* The only way to build TOSA common was to enable ARMNNTOSAREF. * Only include and link the required headers/libraries for TOSA Common. * Remove duplicate include_directories calls. Signed-off-by: Matthew Sloyan <matthew.sloyan@arm.com> Change-Id: Ia5a19bf5b0bb903be0248ac550439df1e8ac5aa7
-rw-r--r--CMakeLists.txt20
-rw-r--r--cmake/GlobalConfig.cmake20
-rw-r--r--src/backends/tosaCommon/CMakeLists.txt6
-rw-r--r--src/backends/tosaCommon/common.cmake4
-rw-r--r--src/backends/tosaReference/CMakeLists.txt7
5 files changed, 32 insertions, 25 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 476e080442..9eab90afef 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -508,34 +508,36 @@ endif()
# Flatbuffers is not included in armnn if the armnnSerializer is not present
# Required to target link both flatbuffers and tosa_serialization_lib to armnn
-if (ARMNNTOSAREF)
+if(ARMNNTOSACOMMON)
if (FLATBUFFERS_LIBRARY)
target_link_libraries(armnn PUBLIC ${FLATBUFFERS_LIBRARY})
else()
# Use PATH_SUFFIXES to help find separate libs for debug/release on Windows builds
find_library(FLATBUFFERS_LIBRARY_DEBUG NAMES flatbuffers
- HINTS ${FLATBUFFERS_BUILD_DIR}
- PATH_SUFFIXES "Debug")
+ HINTS ${FLATBUFFERS_BUILD_DIR}
+ PATH_SUFFIXES "Debug")
find_library(FLATBUFFERS_LIBRARY_RELEASE NAMES flatbuffers
- HINTS ${FLATBUFFERS_BUILD_DIR}
- PATH_SUFFIXES "Release")
+ HINTS ${FLATBUFFERS_BUILD_DIR}
+ PATH_SUFFIXES "Release")
target_link_libraries(armnn PUBLIC
- debug ${FLATBUFFERS_LIBRARY_DEBUG}
- optimized ${FLATBUFFERS_LIBRARY_RELEASE})
+ debug ${FLATBUFFERS_LIBRARY_DEBUG}
+ optimized ${FLATBUFFERS_LIBRARY_RELEASE})
endif()
if (TOSA_SERIALIZATION_LIB)
target_link_libraries(armnn PUBLIC -Wl,--whole-archive ${TOSA_SERIALIZATION_LIB} -Wl,--no-whole-archive)
else()
find_library(TOSA_SERIALIZATION_LIB
- NAMES libtosa_serialization_lib.a tosa_serialization_lib
- HINTS ${TOSA_SERIALIZATION_LIB_ROOT}/lib /usr/local/lib /usr/lib)
+ NAMES libtosa_serialization_lib.a tosa_serialization_lib
+ HINTS ${TOSA_SERIALIZATION_LIB_ROOT}/lib /usr/local/lib /usr/lib)
message(STATUS "TOSA serialization library set to ${TOSA_SERIALIZATION_LIB}")
target_link_libraries(armnn PUBLIC -Wl,--whole-archive ${TOSA_SERIALIZATION_LIB} -Wl,--no-whole-archive)
endif()
+endif()
+if (ARMNNTOSAREF)
if (TOSA_REFERENCE_MODEL_LIB)
target_link_libraries(armnn PUBLIC -Wl,--whole-archive ${TOSA_REFERENCE_MODEL_LIB} -Wl,--no-whole-archive)
else()
diff --git a/cmake/GlobalConfig.cmake b/cmake/GlobalConfig.cmake
index e9eb0a9757..0c35422544 100644
--- a/cmake/GlobalConfig.cmake
+++ b/cmake/GlobalConfig.cmake
@@ -376,9 +376,13 @@ if(ARMNNREF)
add_definitions(-DARMNNREF_ENABLED)
endif()
-# ArmNN TOSA reference backend
+# If a backend requires TOSA common, add it here.
if(ARMNNTOSAREF)
- # Locate the includes for the TOSA serialization library.
+ set(ARMNNTOSACOMMON ON)
+endif()
+
+if(ARMNNTOSACOMMON)
+ # Locate the includes for the TOSA serialization library as it is needed for TOSA common and TOSA backends.
message(STATUS "TOSA serialization library root set to ${TOSA_SERIALIZATION_LIB_ROOT}")
find_path(TOSA_SERIALIZATION_LIB_INCLUDE tosa_serialization_handler.h
@@ -390,13 +394,23 @@ if(ARMNNTOSAREF)
HINTS ${TOSA_SERIALIZATION_LIB_ROOT}/lib /usr/local/lib /usr/lib)
message(STATUS "TOSA serialization library set to ${TOSA_SERIALIZATION_LIB}")
- # Next, locate the includes for the TOSA Reference Model.
+ # Include required headers for TOSA Serialization Library
+ include_directories(SYSTEM ${FLATBUFFERS_INCLUDE_PATH})
+ include_directories(SYSTEM ${PROJECT_SOURCE_DIR}/third-party/half)
+ include_directories(SYSTEM ${TOSA_SERIALIZATION_LIB_INCLUDE})
+endif()
+
+# ArmNN TOSA reference backend
+if(ARMNNTOSAREF)
+ # Locate the includes for the TOSA Reference Model, which is specific to the TOSA Reference Backend.
message(STATUS "TOSA Reference Model root set to ${TOSA_REFERENCE_MODEL_ROOT}")
find_path(TOSA_REFERENCE_MODEL_INCLUDE model_runner.h
HINTS ${TOSA_REFERENCE_MODEL_ROOT}/include)
message(STATUS "TOSA Reference Model include directory located at: ${TOSA_REFERENCE_MODEL_INCLUDE}")
+ include_directories(SYSTEM ${TOSA_REFERENCE_MODEL_INCLUDE})
+
find_library(TOSA_REFERENCE_MODEL_LIB
NAMES tosa_reference_model_lib.a tosa_reference_model_lib
HINTS ${TOSA_REFERENCE_MODEL_ROOT}/lib /usr/local/lib /usr/lib)
diff --git a/src/backends/tosaCommon/CMakeLists.txt b/src/backends/tosaCommon/CMakeLists.txt
index 1b1cc55eab..4a9cd574a9 100644
--- a/src/backends/tosaCommon/CMakeLists.txt
+++ b/src/backends/tosaCommon/CMakeLists.txt
@@ -1,12 +1,8 @@
#
-# Copyright © 2022 Arm Ltd and Contributors. All rights reserved.
+# Copyright © 2022-2023 Arm Ltd and Contributors. All rights reserved.
# SPDX-License-Identifier: MIT
#
-include_directories(SYSTEM ${FLATBUFFERS_INCLUDE_PATH})
-include_directories(SYSTEM ${PROJECT_SOURCE_DIR}/third-party/half)
-include_directories(SYSTEM ${TOSA_SERIALIZATION_LIB_INCLUDE})
-
list(APPEND armnnTosaBackend_sources
TosaMappings.hpp
TosaMappings.cpp
diff --git a/src/backends/tosaCommon/common.cmake b/src/backends/tosaCommon/common.cmake
index f15c063700..3823cf1d72 100644
--- a/src/backends/tosaCommon/common.cmake
+++ b/src/backends/tosaCommon/common.cmake
@@ -1,9 +1,9 @@
#
-# Copyright © 2022 Arm Ltd and Contributors. All rights reserved.
+# Copyright © 2022-2023 Arm Ltd and Contributors. All rights reserved.
# SPDX-License-Identifier: MIT
#
-if(ARMNNTOSAREF)
+if(ARMNNTOSACOMMON)
add_subdirectory(${PROJECT_SOURCE_DIR}/src/backends/tosaCommon)
list(APPEND armnnLibraries armnnTosaBackend)
list(APPEND armnnLibraries armnnTosaBackendOperators)
diff --git a/src/backends/tosaReference/CMakeLists.txt b/src/backends/tosaReference/CMakeLists.txt
index c053def50f..35393cc915 100644
--- a/src/backends/tosaReference/CMakeLists.txt
+++ b/src/backends/tosaReference/CMakeLists.txt
@@ -1,13 +1,8 @@
#
-# Copyright © 2022 Arm Ltd and Contributors. All rights reserved.
+# Copyright © 2022-2023 Arm Ltd and Contributors. All rights reserved.
# SPDX-License-Identifier: MIT
#
-include_directories(SYSTEM ${FLATBUFFERS_INCLUDE_PATH})
-include_directories(SYSTEM ${PROJECT_SOURCE_DIR}/third-party/half)
-include_directories(SYSTEM ${TOSA_SERIALIZATION_LIB_INCLUDE})
-include_directories(SYSTEM ${TOSA_REFERENCE_MODEL_INCLUDE})
-
if(ARMNNTOSAREF)
list(APPEND armnnTosaRefBackend_sources
TosaRefBackend.cpp