Published September 28, 2020 | Version v1
Conference paper Open

Memory Footprint Optimization Techniques for Machine Learning Applications in Embedded Systems

  • 1. Microprocessors and Digital Systems Laboratory, ECE, National Technical University of Athens, Greece
  • 2. IMEC-NL, Eindhoven, The Netherlands
  • 3. Katholieke Universiteit Leuven, Kasteelpark Arenberg 10, 3001 Heverlee, Belgium; IMEC, Kapeldreef 75, 3001 Heverlee, Belgium


Effective memory management is an important requirement for embedded devices that operate at the edges of Internet of Things(IoT) networks. In this paper, we present a set of memory optimization techniques for machine learning applications developed in Python. The proposed techniques aim to avoid the main drawbacks of static memory allocation and to promote dynamic memory management, in order to optimize memory usage and execution latency. The results of the presented techniques are evaluated in a biomedical application, showing significant memory utilization and performance improvements (64% reduction in memory size requirements and 51% execution time reduction). Additionally, we highlight the applicability of the proposed techniques to a wide variety of IoT applications that leverage machine learning algorithms. Finally, the results of the optimized biomedical application in Python are compared with the corresponding version of the application in C and we identify trade-offs between software maintainability and memory size requirements.



Files (2.2 MB)

Name Size Download all
2.2 MB Preview Download

Additional details


EXA2PRO – Enhancing Programmability and boosting Performance Portability for Exascale Computing Systems 801015
European Commission