Table of Contents
Fetching ...

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.

A Multi-Threading Kernel for Enabling Neuromorphic Edge Applications

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.
Paper Structure (12 sections, 2 equations, 3 figures, 3 tables, 1 algorithm)

This paper contains 12 sections, 2 equations, 3 figures, 3 tables, 1 algorithm.

Figures (3)

  • Figure 1: The CARLsim Synfire network with normal spike generator for the stimulus. (a) Izhikevich neurons in four partitions recurrently linked. (b) Neural activity visualized in CARLsim spike monitor. (c) Paritions with fixed core affinity in pthreads kernel of CARLsim4. (d) The new kernel is more energy efficient by assigning cores dynamically to free up SoC compute resources.
  • Figure 2: Chainfire SNN for validation, tuning, and scaling of the parallelization. The blue rectangles contain groups of excitatory neurons. It can induce specific loads on the multi-threading kernel. The green squares depict synchronization neurons that dictate the fan-in and fan-out between neuron groups.
  • Figure 3: Performance improvements by multi-threading kernel over allocated cores. (a) Chainfire (2k neurons) on 11th Gen Intel Core i9-11900K @ 3.5 GHz (8 cores, 16 logical). (b) Synfire (1.2k neurons, 77k synapses) on Intel i9. (c) Synfire on several ARM Cortex processors. (d) Dynamic core allocation saves up to 70% energy as overhead for over-allocated cores thread synchornization is avoided. The performance monitor Intel PCM shows this at ms precision at timeline of the SNN.