aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRyan OShea <ryan.oshea3@arm.com>2023-03-20 11:10:40 +0000
committerFrancis Murtagh <francis.murtagh@arm.com>2023-05-08 16:59:40 +0000
commita3dc95ec2b0ac9e7f87dd32d03679a4b2a9b5d2a (patch)
treef65bf6ebae620be85cd1122e32889b9e8b69e1b8 /src
parentf6ed6d410dca0bbf22f338ca6e2fafd36d5c963f (diff)
downloadarmnn-a3dc95ec2b0ac9e7f87dd32d03679a4b2a9b5d2a.tar.gz
Improve reusability of code that is defined out by cmake build paths
* Added new ARMNN_STUB_PROFILING and ARMNN_DISABLE_DYNAMIC_BACKEND defines to replace BUILD_BARE_METAL and BUILD_EXECUTE_NETWORK_STATIC * Add new CMake variables to disable sample apps and dynamic backends * Improve BUILD_SHARED_LIBS CMake variable * Add new archive output location to various libraries so that the static libraries appear in the same location as the shared libraries * Fixes for bare metal build * Add ARMNN_DISABLE_FILE_SYSTEM defines to missing locations Signed-off-by: Ryan OShea <ryan.oshea3@arm.com> Change-Id: I1db9a8f483e7134bd261294b35240cf21b150d45
Diffstat (limited to 'src')
-rw-r--r--src/armnn/Network.cpp2
-rw-r--r--src/armnn/Runtime.cpp10
-rwxr-xr-xsrc/armnnDeserializer/CMakeLists.txt7
-rwxr-xr-xsrc/armnnSerializer/CMakeLists.txt26
-rwxr-xr-xsrc/armnnTestUtils/CMakeLists.txt13
-rwxr-xr-xsrc/armnnTfLiteParser/CMakeLists.txt8
-rw-r--r--src/backends/backends.cmake17
-rw-r--r--src/backends/backendsCommon/CMakeLists.txt2
-rw-r--r--src/backends/dynamic/reference/CMakeLists.txt4
-rw-r--r--src/backends/reference/workloads/Debug.cpp2
-rw-r--r--src/timelineDecoder/CMakeLists.txt1
11 files changed, 49 insertions, 43 deletions
diff --git a/src/armnn/Network.cpp b/src/armnn/Network.cpp
index a069585216..b768ea888f 100644
--- a/src/armnn/Network.cpp
+++ b/src/armnn/Network.cpp
@@ -1950,8 +1950,10 @@ IOptimizedNetworkPtr Optimize(const Graph& inGraph,
// Setup the output file path
try
{
+#if !defined(ARMNN_DISABLE_FILESYSTEM)
auto result = armnnUtils::Filesystem::CreateDirectory("/ArmNNIntermediateLayerOutputs");
ARMNN_LOG(info) << "Intermediate tensors will be written to: " << result;
+#endif
Optimizer::Pass(optGraph, MakeOptimizations(InsertDebugToFileLayer()));
}
catch (const armnn::RuntimeException& e)
diff --git a/src/armnn/Runtime.cpp b/src/armnn/Runtime.cpp
index ff64e856f4..f71fad1f35 100644
--- a/src/armnn/Runtime.cpp
+++ b/src/armnn/Runtime.cpp
@@ -20,7 +20,7 @@
#include <armnn/utility/PolymorphicDowncast.hpp>
#include <armnn/utility/Timer.hpp>
-#if !defined(ARMNN_BUILD_BARE_METAL) && !defined(ARMNN_EXECUTE_NETWORK_STATIC)
+#if !defined(ARMNN_DISABLE_DYNAMIC_BACKENDS)
#include <backendsCommon/DynamicBackendUtils.hpp>
#endif
@@ -337,7 +337,7 @@ RuntimeImpl::RuntimeImpl(const IRuntime::CreationOptions& options)
throw RuntimeException(
"It is not possible to enable timeline reporting without profiling being enabled");
}
-#if !defined(ARMNN_BUILD_BARE_METAL) && !defined(ARMNN_EXECUTE_NETWORK_STATIC)
+#if !defined(ARMNN_DISABLE_DYNAMIC_BACKENDS)
// Load any available/compatible dynamic backend before the runtime
// goes through the backend registry
LoadDynamicBackends(options.m_DynamicBackendsPath);
@@ -357,7 +357,7 @@ RuntimeImpl::RuntimeImpl(const IRuntime::CreationOptions& options)
if (customAllocatorMapIterator != options.m_CustomAllocatorMap.end() &&
customAllocatorMapIterator->second == nullptr)
{
-#if !defined(ARMNN_BUILD_BARE_METAL) && !defined(ARMNN_EXECUTE_NETWORK_STATIC)
+#if !defined(ARMNN_DISABLE_DYNAMIC_BACKENDS)
// We need to manually clean up the dynamic backends before throwing an exception.
DynamicBackendUtils::DeregisterDynamicBackends(m_DeviceSpec.GetDynamicBackends());
m_DeviceSpec.ClearDynamicBackends();
@@ -584,7 +584,7 @@ RuntimeImpl::~RuntimeImpl()
<< std::endl;
}
}
-#if !defined(ARMNN_BUILD_BARE_METAL) && !defined(ARMNN_EXECUTE_NETWORK_STATIC)
+#if !defined(ARMNN_DISABLE_DYNAMIC_BACKENDS)
// Clear all dynamic backends.
DynamicBackendUtils::DeregisterDynamicBackends(m_DeviceSpec.GetDynamicBackends());
m_DeviceSpec.ClearDynamicBackends();
@@ -769,7 +769,7 @@ void RuntimeImpl::RegisterDebugCallback(NetworkId networkId, const DebugCallback
loadedNetwork->RegisterDebugCallback(func);
}
-#if !defined(ARMNN_BUILD_BARE_METAL) && !defined(ARMNN_EXECUTE_NETWORK_STATIC)
+#if !defined(ARMNN_DISABLE_DYNAMIC_BACKENDS)
void RuntimeImpl::LoadDynamicBackends(const std::string& overrideBackendPath)
{
// Get the paths where to load the dynamic backends from
diff --git a/src/armnnDeserializer/CMakeLists.txt b/src/armnnDeserializer/CMakeLists.txt
index 630eb370df..e77235881f 100755
--- a/src/armnnDeserializer/CMakeLists.txt
+++ b/src/armnnDeserializer/CMakeLists.txt
@@ -29,12 +29,17 @@ if(BUILD_ARMNN_DESERIALIZER)
Deserializer.hpp
Deserializer.cpp
)
-
+if(BUILD_SHARED_LIBS)
add_library_ex(armnnDeserializer SHARED ${armnn_deserializer_sources})
+else()
+ add_library_ex(armnnDeserializer STATIC ${armnn_deserializer_sources})
+endif()
include_directories(SYSTEM "${FLATBUFFERS_INCLUDE_PATH}")
set_target_properties(armnnDeserializer PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR})
+ set_target_properties(armnnDeserializer PROPERTIES ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR})
+
target_include_directories(armnnDeserializer PRIVATE ../armnn)
target_include_directories(armnnDeserializer PRIVATE ../armnnUtils)
target_include_directories(armnnDeserializer PRIVATE ../../generated)
diff --git a/src/armnnSerializer/CMakeLists.txt b/src/armnnSerializer/CMakeLists.txt
index 01c51e65d7..20faae955e 100755
--- a/src/armnnSerializer/CMakeLists.txt
+++ b/src/armnnSerializer/CMakeLists.txt
@@ -36,28 +36,30 @@ if(BUILD_ARMNN_SERIALIZER)
../armnnDeserializer/Deserializer.cpp
)
- if(BUILD_BARE_METAL OR EXECUTE_NETWORK_STATIC)
- add_library_ex(armnnSerializer STATIC ${armnn_serializer_sources})
- else()
+ include_directories(SYSTEM "${FLATBUFFERS_INCLUDE_PATH}")
+
+ if(BUILD_SHARED_LIBS)
# We're going to export both a STATIC library and a SHARED library here.
# In some instances it's easier to include the serializer directly into
# the target executable or library rather than have yet another .so.
add_library(armnnSerializer-static STATIC ${armnn_serializer_sources})
add_library_ex(armnnSerializer SHARED ${armnn_serializer_sources})
- endif()
- include_directories(SYSTEM "${FLATBUFFERS_INCLUDE_PATH}")
-
- set_target_properties(armnnSerializer PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR})
- target_include_directories(armnnSerializer PRIVATE ../armnn)
- target_include_directories(armnnSerializer PRIVATE ../armnnUtils)
- target_include_directories(armnnSerializer PRIVATE ../../generated)
- if (NOT BARE_METAL AND NOT EXECUTE_NETWORK_STATIC)
target_include_directories(armnnSerializer-static PRIVATE ../armnn)
target_include_directories(armnnSerializer-static PRIVATE ../armnnUtils)
target_include_directories(armnnSerializer-static PRIVATE ../../generated)
+
+ set_target_properties(armnnSerializer PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR})
+ set_target_properties(armnnSerializer-static PROPERTIES ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR})
+ else()
+ add_library_ex(armnnSerializer STATIC ${armnn_serializer_sources})
+ set_target_properties(armnnSerializer PROPERTIES ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR})
endif()
+ target_include_directories(armnnSerializer PRIVATE ../armnn)
+ target_include_directories(armnnSerializer PRIVATE ../armnnUtils)
+ target_include_directories(armnnSerializer PRIVATE ../../generated)
+
list(APPEND armnn_serializer_sources
ArmnnSchema_generated.h
)
@@ -66,7 +68,7 @@ if(BUILD_ARMNN_SERIALIZER)
target_include_directories(armnnSerializer SYSTEM PRIVATE ${CMAKE_CURRENT_BINARY_DIR})
target_link_libraries(armnnSerializer armnn ${FLATBUFFERS_LIBRARY})
- if (NOT BARE_METAL AND NOT EXECUTE_NETWORK_STATIC)
+ if (BUILD_SHARED_LIBS)
install(TARGETS armnnSerializer-static
EXPORT armnn-targets
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
diff --git a/src/armnnTestUtils/CMakeLists.txt b/src/armnnTestUtils/CMakeLists.txt
index a4333cf306..b2f31245b7 100755
--- a/src/armnnTestUtils/CMakeLists.txt
+++ b/src/armnnTestUtils/CMakeLists.txt
@@ -31,23 +31,20 @@ list(APPEND armnnTestUtils_sources
TestUtils.hpp
)
-if(NOT BUILD_BARE_METAL AND NOT EXECUTE_NETWORK_STATIC)
list(APPEND armnnTestUtils_sources
UnitTests.cpp
UnitTests.hpp
)
-endif()
-
-if(BUILD_BARE_METAL)
- add_library_ex(armnnTestUtils STATIC ${armnnTestUtils_sources})
-elseif(EXECUTE_NETWORK_STATIC)
- add_library_ex(armnnTestUtils OBJECT ${armnnTestUtils_sources})
-else()
+if(BUILD_SHARED_LIBS)
add_library_ex(armnnTestUtils SHARED ${armnnTestUtils_sources})
+else()
+ add_library_ex(armnnTestUtils STATIC ${armnnTestUtils_sources})
endif()
set_target_properties(armnnTestUtils PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR})
+set_target_properties(armnnTestUtils PROPERTIES ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR})
+
target_include_directories(armnnTestUtils
PUBLIC
diff --git a/src/armnnTfLiteParser/CMakeLists.txt b/src/armnnTfLiteParser/CMakeLists.txt
index 6096d1bf8c..782aa1ccee 100755
--- a/src/armnnTfLiteParser/CMakeLists.txt
+++ b/src/armnnTfLiteParser/CMakeLists.txt
@@ -11,14 +11,15 @@ if(BUILD_TF_LITE_PARSER)
TfLiteParser.cpp
)
- if(EXECUTE_NETWORK_STATIC)
- add_library_ex(armnnTfLiteParser OBJECT ${armnn_tf_lite_parser_sources})
- else()
+ if(BUILD_SHARED_LIBS)
add_library_ex(armnnTfLiteParser SHARED ${armnn_tf_lite_parser_sources})
+ else()
+ add_library_ex(armnnTfLiteParser STATIC ${armnn_tf_lite_parser_sources})
endif()
include_directories(SYSTEM "${FLATBUFFERS_INCLUDE_PATH}")
set_target_properties(armnnTfLiteParser PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR})
+ set_target_properties(armnnTfLiteParser PROPERTIES ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR})
target_include_directories(armnnTfLiteParser PRIVATE ../armnn)
target_include_directories(armnnTfLiteParser PRIVATE ../armnnUtils)
target_include_directories(armnnTfLiteParser SYSTEM PRIVATE "${TF_LITE_SCHEMA_INCLUDE_PATH}")
@@ -66,7 +67,6 @@ if(BUILD_TF_LITE_PARSER)
endif()
set_target_properties(armnnTfLiteParser PROPERTIES VERSION ${TFLITE_PARSER_LIB_VERSION} SOVERSION ${TFLITE_PARSER_LIB_SOVERSION} )
-
install(TARGETS armnnTfLiteParser
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
diff --git a/src/backends/backends.cmake b/src/backends/backends.cmake
index aca3b63ca9..98af2716e3 100644
--- a/src/backends/backends.cmake
+++ b/src/backends/backends.cmake
@@ -19,11 +19,12 @@ foreach(includeFile ${backendIncludes})
message(STATUS "Including backend into the build: ${includeFile}")
include(${includeFile})
endforeach()
-
-# parse dynamic backend sub-directories
-file(GLOB dynamicBackendDirs ${PROJECT_SOURCE_DIR}/src/backends/dynamic/*)
-foreach(dynamicBackendDir ${dynamicBackendDirs})
- if (EXISTS ${dynamicBackendDir} AND IS_DIRECTORY ${dynamicBackendDir})
- add_subdirectory(${dynamicBackendDir})
- endif()
-endforeach()
+if(NOT DISABLE_DYNAMIC_BACKENDS)
+ # parse dynamic backend sub-directories
+ file(GLOB dynamicBackendDirs ${PROJECT_SOURCE_DIR}/src/backends/dynamic/*)
+ foreach(dynamicBackendDir ${dynamicBackendDirs})
+ if (EXISTS ${dynamicBackendDir} AND IS_DIRECTORY ${dynamicBackendDir})
+ add_subdirectory(${dynamicBackendDir})
+ endif()
+ endforeach()
+endif()
diff --git a/src/backends/backendsCommon/CMakeLists.txt b/src/backends/backendsCommon/CMakeLists.txt
index 28ff205d6e..977067b48f 100644
--- a/src/backends/backendsCommon/CMakeLists.txt
+++ b/src/backends/backendsCommon/CMakeLists.txt
@@ -3,7 +3,7 @@
# SPDX-License-Identifier: MIT
#
-if(NOT BUILD_BARE_METAL AND NOT EXECUTE_NETWORK_STATIC)
+if(NOT DISABLE_DYNAMIC_BACKENDS)
list(APPEND armnnBackendsCommon_sources
DynamicBackend.cpp
DynamicBackend.hpp
diff --git a/src/backends/dynamic/reference/CMakeLists.txt b/src/backends/dynamic/reference/CMakeLists.txt
index fe875282f5..acf53383a1 100644
--- a/src/backends/dynamic/reference/CMakeLists.txt
+++ b/src/backends/dynamic/reference/CMakeLists.txt
@@ -3,7 +3,6 @@
# SPDX-License-Identifier: MIT
#
-if((NOT BUILD_BARE_METAL) AND (NOT EXECUTE_NETWORK_STATIC))
# File needed to wrap the existing backend into a dynamic one
list(APPEND armnnRefDynamicBackend_sources
@@ -32,6 +31,3 @@ target_include_directories(Arm_CpuRef_backend PRIVATE ${PROJECT_SOURCE_DIR}/prof
target_include_directories(Arm_CpuRef_backend PRIVATE ${PROJECT_SOURCE_DIR}/profiling/client/include)
set_target_properties(Arm_CpuRef_backend PROPERTIES PREFIX "")
target_link_libraries(Arm_CpuRef_backend armnn)
-
-# BUILD_BARE_METAL && EXECUTE_NETWORK_STATIC
-endif()
diff --git a/src/backends/reference/workloads/Debug.cpp b/src/backends/reference/workloads/Debug.cpp
index f4f9792fc1..50aecc8b66 100644
--- a/src/backends/reference/workloads/Debug.cpp
+++ b/src/backends/reference/workloads/Debug.cpp
@@ -103,10 +103,12 @@ void Debug(const TensorInfo& inputInfo,
{
if (outputsToFile)
{
+#if !defined(ARMNN_DISABLE_FILESYSTEM)
fs::path tmpDir = fs::temp_directory_path();
std::ofstream out(tmpDir.generic_string() + "/ArmNNIntermediateLayerOutputs/" + layerName + ".numpy");
PrintOutput<T>(inputInfo, inputData, guid, layerName, slotIndex, out);
out.close();
+#endif
}
else
{
diff --git a/src/timelineDecoder/CMakeLists.txt b/src/timelineDecoder/CMakeLists.txt
index 3aabf5be76..0f15771a3e 100644
--- a/src/timelineDecoder/CMakeLists.txt
+++ b/src/timelineDecoder/CMakeLists.txt
@@ -22,6 +22,7 @@ if(BUILD_TIMELINE_DECODER)
add_library_ex(timelineDecoderJson SHARED ${timelineDecoderJson_sources})
set_target_properties(timelineDecoderJson PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR})
+ set_target_properties(timelineDecoderJson PROPERTIES ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR})
set_target_properties(timelineDecoderJson PROPERTIES VERSION ${GENERIC_LIB_VERSION} SOVERSION ${GENERIC_LIB_SOVERSION} )
target_link_libraries(timelineDecoderJson armnn)