summaryrefslogtreecommitdiff
path: root/scripts/cmake/tensorflow.cmake
diff options
context:
space:
mode:
authoralexander <alexander.efremov@arm.com>2022-02-10 16:15:54 +0000
committeralexander <alexander.efremov@arm.com>2022-02-10 18:04:42 +0000
commit31ae9f09bb3535975595e999fbc7baca889e46e8 (patch)
tree71f0cadc2620b9d18e474e5d40eda7b3d30a8ce4 /scripts/cmake/tensorflow.cmake
parent3107aa2152de9be8317e62da1d0327bcad6552e2 (diff)
downloadml-embedded-evaluation-kit-31ae9f09bb3535975595e999fbc7baca889e46e8.tar.gz
MLECO-2682: CMake and source refactoring.
MLECO-2930: logging macros were extracted from hal.h and used separately around the code. MLECO-2931: arm_math lib introduced, cmsis-dsp removed from top level linkage. MLECO-2915: platform related post-build steps. Change-Id: Id718884e22f262a5c070ded3f3f5d4b048820147 Signed-off-by: alexander <alexander.efremov@arm.com>
Diffstat (limited to 'scripts/cmake/tensorflow.cmake')
-rw-r--r--scripts/cmake/tensorflow.cmake34
1 files changed, 30 insertions, 4 deletions
diff --git a/scripts/cmake/tensorflow.cmake b/scripts/cmake/tensorflow.cmake
index 43fbb5c..9a4066d 100644
--- a/scripts/cmake/tensorflow.cmake
+++ b/scripts/cmake/tensorflow.cmake
@@ -43,7 +43,7 @@ set(TENSORFLOW_LITE_MICRO_TARGET_TOOLCHAIN_ROOT "${TENSORFLOW_LITE_MICRO_TARGET_
set(TENSORFLOW_LITE_MICRO_PATH "${TENSORFLOW_SRC_PATH}/tensorflow/lite/micro")
set(TENSORFLOW_LITE_MICRO_GENDIR ${CMAKE_CURRENT_BINARY_DIR}/tensorflow/)
-
+set(TENSORFLOW_LITE_MICRO_PLATFORM_LIB_NAME "libtensorflow-microlite.a")
set(ETHOS_EVAL_TARGET_MAKEFILE_INC ${CMAKE_CURRENT_SOURCE_DIR}/scripts/make/cortex_m_ethos_eval_makefile.inc)
@@ -65,6 +65,22 @@ else()
DESTINATION ${TENSORFLOW_LITE_MICRO_PATH}/tools/make/targets/)
endif()
+#TODO: this thing fails the TF build, when the driver is compiled, fatal error: 'ethosETHOSU_ARCH_interface.h' file not found
+#if (CMAKE_SYSTEM_PROCESSOR STREQUAL cortex-m55)
+# set(TENSORFLOW_LITE_MICRO_TARGET "cortex_m_generic")
+# set(TENSORFLOW_LITE_MICRO_TARGET_ARCH ${CMAKE_SYSTEM_PROCESSOR}${CPU_FEATURES})
+# if(ETHOS_U_NPU_ENABLED)
+# # Arm Ethos-U55 NPU is the co-processor for ML workload:
+# set(TENSORFLOW_LITE_MICRO_CO_PROCESSOR "ethos_u")
+# endif()
+#
+# set(TENSORFLOW_LITE_MICRO_OPTIMIZED_KERNEL "cmsis_nn")
+#
+#else()
+# set(TENSORFLOW_LITE_MICRO_TARGET "linux")
+# set(TENSORFLOW_LITE_MICRO_TARGET_ARCH x86_64)
+#endif()
+
if (TENSORFLOW_LITE_MICRO_CLEAN_DOWNLOADS)
list(APPEND MAKE_TARGETS_LIST "clean_downloads")
endif()
@@ -93,10 +109,9 @@ add_custom_target(tensorflow_build ALL
TARGET_ARCH=${TENSORFLOW_LITE_MICRO_TARGET_ARCH}
BUILD_TYPE=${TENSORFLOW_LITE_MICRO_BUILD_TYPE}
ETHOSU_ARCH=${ETHOSU_ARCH}
-
+ ETHOSU_DRIVER_PATH=${ETHOS_U_NPU_DRIVER_SRC_PATH}
+ CMSIS_PATH=${CMSIS_SRC_PATH}
# Conditional arguments
- $<$<NOT:$<STREQUAL:${TARGET_PLATFORM},"native">>:ETHOSU_DRIVER_PATH=${ETHOS_U_NPU_DRIVER_SRC_PATH}>
- $<$<NOT:$<STREQUAL:${TARGET_PLATFORM},"native">>:CMSIS_PATH=${CMSIS_SRC_PATH}>
$<$<BOOL:${ARMCLANG_DEBUG_DWARF_LEVEL}>:ARMCLANG_DEBUG_DWARF_LEVEL=${ARMCLANG_DEBUG_DWARF_LEVEL}>
$<$<BOOL:${TENSORFLOW_LITE_MICRO_CORE_OPTIMIZATION_LEVEL}>:CORE_OPTIMIZATION_LEVEL=${TENSORFLOW_LITE_MICRO_CORE_OPTIMIZATION_LEVEL}>
$<$<BOOL:${TENSORFLOW_LITE_MICRO_KERNEL_OPTIMIZATION_LEVEL}>:KERNEL_OPTIMIZATION_LEVEL=${TENSORFLOW_LITE_MICRO_KERNEL_OPTIMIZATION_LEVEL}>
@@ -116,7 +131,18 @@ add_custom_target(tensorflow_build ALL
WORKING_DIRECTORY ${TENSORFLOW_SRC_PATH})
# Create library
+
add_library(tensorflow-lite-micro STATIC IMPORTED)
+
add_dependencies(tensorflow-lite-micro tensorflow_build)
+
set_property(TARGET tensorflow-lite-micro PROPERTY IMPORTED_LOCATION
"${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${TENSORFLOW_LITE_MICRO_PLATFORM_LIB_NAME}")
+
+target_include_directories(tensorflow-lite-micro
+ INTERFACE
+ ${TENSORFLOW_SRC_PATH})
+
+target_compile_definitions(tensorflow-lite-micro
+ INTERFACE
+ TF_LITE_STATIC_MEMORY)