From 0d50560d25c00402db182e828b99bf933b17e840 Mon Sep 17 00:00:00 2001 From: iabdalkader Date: Wed, 9 Oct 2024 21:02:51 +0200 Subject: [PATCH] lib/tflm: Add extra padding to arena size. * Fixes an issue with certain models. --- src/lib/tflm/tflm_backend.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/lib/tflm/tflm_backend.cc b/src/lib/tflm/tflm_backend.cc index 82f83030e..9a2e37d6e 100644 --- a/src/lib/tflm/tflm_backend.cc +++ b/src/lib/tflm/tflm_backend.cc @@ -51,6 +51,7 @@ extern "C" { #include "py_ml.h" using namespace tflite; +#define TF_ARENA_EXTRA (512) #define TF_ARENA_ALIGN (16 - 1) #define TF_ARENA_ROUND(x) (((x) + TF_ARENA_ALIGN) & ~(TF_ARENA_ALIGN)) typedef MicroMutableOpResolver<113> MicroOpsResolver; @@ -235,7 +236,7 @@ int ml_backend_init_model(py_ml_model_obj_t *model) { mp_raise_msg(&mp_type_ValueError, MP_ERROR_TEXT("Failed to allocate tensors")); } // Round up the optimal arena size to a multiple of the alignment. - arena_size = TF_ARENA_ROUND(interpreter.arena_used_bytes()); + arena_size = TF_ARENA_ROUND(interpreter.arena_used_bytes()) + TF_ARENA_EXTRA; m_free(arena_memory); // Allocate the persistent model state and interpreter.