A Multi-Threading Kernel for Enabling Neuromorphic Edge Applications
Lars Niedermeier, Vyom Shah, Jeffrey L. Krichmar
TL;DR
This paper tackles the challenge of running neuromorphic SNNs on edge devices by introducing a multi-threading kernel that scales across multiple CPU cores and dynamically allocates cores to meet real-time constraints. Using CARLsim, it deploys Synfire and Chainfire benchmarks on Intel and ARM processors and demonstrates substantial performance gains (up to ~4x on Chainfire and ~1.4–1.7x on Synfire) along with energy savings (up to ~70%) through dynamic core assignment. The contributions include a scalable, partition-independent parallel kernel, a dynamic load-balancing scheme, a dedicated synthetic load network, and a public release, enabling real-time edge neuromorphic applications without specialized hardware. This work paves the way for deploying neuromorphic edge solutions on mobile devices and wearables, reducing SWaP and supporting prototyping of neuromorphic chips.
Abstract
Spiking Neural Networks (SNNs) have sparse, event driven processing that can leverage neuromorphic applications. In this work, we introduce a multi-threading kernel that enables neuromorphic applications running at the edge, meaning they process sensory input directly and without any up-link to or dependency on a cloud service. The kernel shows speed-up gains over single thread processing by a factor of four on moderately sized SNNs and 1.7X on a Synfire network. Furthermore, it load-balances all cores available on multi-core processors, such as ARM, which run today's mobile devices and is up to 70% more energy efficient compared to statical core assignment. The present work can enable the development of edge applications that have low Size, Weight, and Power (SWaP), and can prototype the integration of neuromorphic chips.
