Unexpectedly high ROM usage

Question/Issue:

Hi, I’m new to the Edge Impulse platform and trying to deploy a simple model for animal activity classification on an Actinius Icarus (nRF9160) board. At the Deployment section of the Edge Impulse interface, I see that the estimation for my quantized model (C++ library) is 15.1 kB of flash memory. I integrated the model on my application (developed using nRF connect SDK and therefore Zephyr), it worked fine but when checking the flash footprint I found out it increased by about 85 kB. I checked the Memory report and found put most of the extra space (around 60 kB) appeared as “No paths”, so I’m not sure where it came from. My build is already configured with the optimize for space option.

So my question is, what does the interface take into account when estimating the flash footprint? Does it leave out, ofr example, feature extraction libraries? Also, is there something I can do to reduce this memory usage (I’ already using EON compiler and quantized model)?

Project ID:
1071877

Context/Use case:
Downloading the C++ library and integrating it on a preexistent nRF connect application.

Steps Taken:
Compile the application including the edge impulse library and run “memory report” from the nRF connect expansion for VSCode

Reproducibility:
I tried with different models and this happens every time.

Environment:

  • Platform: Actinius Icarus nRF9160 board
  • Build Environment Details: nRF connect SDK

Hello @RocioCabral first of all welcome to the Edge Impulse community!

Let me check with the team and we will get back to you!

Thanks!

Hi @RocioCabral
Our estimation in the Studio exclude common C++ libraries etc. So it is purely the model, tflm runtime code and eventually required libs (CMSIS DSP, NN etc.).
What do you exactly mean by “I checked the Memory report and found put most of the extra space (around 60 kB) appeared as “No paths””?
Is it possible to share the *.map file with us?

Best regards,
Matt

Thanks for your reply! Here’s two pictures of my memory report, before and after Edge Impulse:


The space taken by the Edge Impulse project and C++ libraries makes sense to me, but check the “No Paths” section. When I open the tab, lots of small symbols appear, so it is hard to tell which were there before and which are new.

I found some entries talking about this section occupying lots of space on the Nordic forum, such as:
https://devzone.nordicsemi.com/search?q=no%20paths%20memory#serp=2

So this seems to be normal. But it surprised me how it increased after adding the Edge Impulse library, and I thought maybe you could help me track this increase.

Hi @RocioCabral
Could you share both map files (you can find it in build/<project_name>/zephyr/zephyr.map)?
nRF Connect Map Report isn’t very detailed, but the map file has more info internally and those No paths components have origins.

BR,
Matt

1 Like