aboutsummaryrefslogtreecommitdiff
path: root/applications/message_handler/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'applications/message_handler/CMakeLists.txt')
-rw-r--r--applications/message_handler/CMakeLists.txt13
1 files changed, 11 insertions, 2 deletions
diff --git a/applications/message_handler/CMakeLists.txt b/applications/message_handler/CMakeLists.txt
index 3f87e64..040b27d 100644
--- a/applications/message_handler/CMakeLists.txt
+++ b/applications/message_handler/CMakeLists.txt
@@ -21,7 +21,7 @@ if (NOT TARGET freertos_kernel)
return()
endif()
-set(MESSAGE_HANDLER_ARENA_SIZE 2000000 CACHE STRING "Size of message handler tensor arena")
+set(MESSAGE_HANDLER_ARENA_SIZE 2000000 CACHE STRING "Total size of all message handler tensor arenas")
set(MESSAGE_HANDLER_MODEL_0 FALSE CACHE STRING "Path to built in model 0")
set(MESSAGE_HANDLER_MODEL_1 FALSE CACHE STRING "Path to built in model 1")
set(MESSAGE_HANDLER_MODEL_2 FALSE CACHE STRING "Path to built in model 2")
@@ -42,8 +42,17 @@ ethosu_add_executable(message_handler
target_include_directories(message_handler PRIVATE
${LINUX_DRIVER_STACK_PATH}/kernel)
+# Split total tensor arena equally for each NPU
+if (TARGET ethosu_core_driver AND ETHOSU_TARGET_NPU_COUNT GREATER 0)
+ set(NUM_ARENAS ${ETHOSU_TARGET_NPU_COUNT})
+else()
+ set(NUM_ARENAS 1)
+endif()
+
+math(EXPR TENSOR_ARENA_SIZE "${MESSAGE_HANDLER_ARENA_SIZE} / ${NUM_ARENAS}")
+
target_compile_definitions(message_handler PRIVATE
- TENSOR_ARENA_SIZE=${MESSAGE_HANDLER_ARENA_SIZE}
+ TENSOR_ARENA_SIZE=${TENSOR_ARENA_SIZE}
$<$<BOOL:${MESSAGE_HANDLER_MODEL_0}>:MODEL_0=${MESSAGE_HANDLER_MODEL_0}>
$<$<BOOL:${MESSAGE_HANDLER_MODEL_1}>:MODEL_1=${MESSAGE_HANDLER_MODEL_1}>
$<$<BOOL:${MESSAGE_HANDLER_MODEL_2}>:MODEL_2=${MESSAGE_HANDLER_MODEL_2}>