How does the aiValidation in X-CUBE-AI run?
We are running X-CUBE-AI on an stm32F746 eval board (and a number of other stm32 eval boards). We are using version 7.1.0, 7.2.0, and 7.3.0, and using the generated source code for CubeIDE.
We then pulse a GPIO whenever ai_mnetwork_run() runs, which would call the network's inference run function, and we use this GPIO pulse to know when to measure, for example, current draw on the board to measure power usage during inference.
Anyway, my question is that in the source code in aiValidation.c, we see a definition for
#if !defined(USE_OBSERVER)
#define USE_OBSERVER 0 /* 0: remove the registration of the user CB to evaluate the inference time by layer */
#endif
#if defined(USE_OBSERVER) && USE_OBSERVER == 1
#ifndef HAS_INSPECTOR
#define HAS_INSPECTOR
#endif
#ifdef HAS_INSPECTOR
#define HAS_OBSERVER
#endif
#endifwhere we can remove or not the INSPECTOR / OBSERVER which seems to observe the inference run for statistics.
Does this observer add any extra time during the inference run itself? Or does it let the inference run cleanly and then later gather the information about the inference run?
