SpikeExplorer: hardware-oriented Design Space Exploration for Spiking Neural Networks on FPGA
<|reference_start|>SpikeExplorer: hardware-oriented Design Space Exploration for Spiking Neural Networks on FPGA: One of today's main concerns is to bring Artificial Intelligence power to embedded systems for edge applications. The hardware resources and power consumption required by state-of-the-art models are incompatible with the constrained environments observed in edge systems, such as IoT nodes and wearable devices. Spiking Neural Networks (SNNs) can represent a solution in this sense: inspired by neuroscience, they reach unparalleled power and resource efficiency when run on dedicated hardware accelerators. However, when designing such accelerators, the amount of choices that can be taken is huge. This paper presents SpikExplorer, a modular and flexible Python tool for hardware-oriented Automatic Design Space Exploration to automate the configuration of FPGA accelerators for SNNs. Using Bayesian optimizations, SpikerExplorer enables hardware-centric multi-objective optimization, supporting factors such as accuracy, area, latency, power, and various combinations during the exploration process. The tool searches the optimal network architecture, neuron model, and internal and training parameters, trying to reach the desired constraints imposed by the user. It allows for a straightforward network configuration, providing the full set of explored points for the user to pick the trade-off that best fits the needs. The potential of SpikExplorer is showcased using three benchmark datasets. It reaches 95.8% accuracy on the MNIST dataset, with a power consumption of 180mW/image and a latency of 0.12 ms/image, making it a powerful tool for automatically optimizing SNNs.<|reference_end|>
@article{padovano2024spikeexplorer:,
    title={SpikeExplorer: hardware-oriented Design Space Exploration for Spiking
  Neural Networks on FPGA},
    author={Dario Padovano, Alessio Carpegna, Alessandro Savino and Stefano Di
  Carlo},
    journal={arXiv preprint arXiv:2404.03714},
    year={2024},
    doi={10.3390/electronics13091744},
    archivePrefix={arXiv},
    eprint={2404.03714},
    primaryClass={cs.NE cs.AI}
}