Collaborative, Fair, and Representative Benchmarks for Neuromorphic Computing
Project description
Introduction
A harness for running evaluations on NeuroBench algorithm benchmarks.
NeuroBench is a community-driven project, and we welcome further development from the community. If you are interested in developing extensions to features, programming frameworks, or metrics and tasks, please see the Contributing Guidelines.
NeuroBench Structure
NeuroBench contains the following sections:
Section |
Description |
Neurobench benchmarks, including workload metrics and static metrics |
|
Neurobench benchmark datasets |
|
Neurobench framework for Torch and SNNTorch models |
|
Pre-processing of data, conversion to spikes |
|
Post-processors take the spiking output from the models and provide several methods of combining them |
Installation
Install from PyPI:
pip install neurobench
Benchmarks
The following benchmarks are currently available:
v1.0 benchmarks
Keyword Few-shot Class-incremental Learning (FSCIL)
Event Camera Object Detection
Non-human Primate (NHP) Motor Prediction
Chaotic Function Prediction
Leaderboards
Proposed solutions for the benchmark tasks are evaluated on a set of metrics and compared to the performance of other solutions.
The leaderboards for these benchmarks can be found here.
Additional benchmarks
DVS Gesture Recognition
Google Speech Commands (GSC) Classification
Neuromorphic Human Activity Recognition (HAR)
Getting started
Example benchmark scripts can be found under the examples folder. (https://github.com/NeuroBench/neurobench/tree/main/examples/)
In general, the design flow for using the framework is as follows:
Train a network using the train split from a particular dataset.
Wrap the network in a NeuroBenchModel.
Pass the model, evaluation split dataloader, pre-/post-processors, and a list of metrics to the Benchmark and run().
Documentation for the framework interfaces can found in the API Overview.
Development
If you clone the repo directly for development, poetry can be used to maintain a virtualenv consistent with a deployment environment. In the root directory run:
pip install poetry poetry install
Poetry requires python >=3.9. Installation should not take more than a few minutes.
End-to-end examples can be run from the poetry environment. As a demo, try the Google Speech Commands keyword classification benchmark:
# ANN Benchmark Example
poetry run python examples/gsc/benchmark_ann.py
# Expected results:
# {'Footprint': 109228, 'ConnectionSparsity': 0.0,
# 'ClassificationAccuracy': 0.8653339412687909, 'ActivationSparsity': 0.3854464619019532,
# 'SynapticOperations': {'Effective_MACs': 1728071.1701953658, 'Effective_ACs': 0.0, 'Dense': 1880256.0}}
# SNN Benchmark Example
poetry run python examples/gsc/benchmark_snn.py
# Expected results:
# {'Footprint': 583900, 'ConnectionSparsity': 0.0,
# 'ClassificationAccuracy': 0.85633802969095, 'ActivationSparsity': 0.9668664144456199,
# 'SynapticOperations': {'Effective_MACs': 0.0, 'Effective_ACs': 3289834.3206724217, 'Dense': 29030400.0}}
These demos should download the dataset, then run in a couple minutes. Other baseline result scripts and notebook tutorials are available in the examples folder.
Developers
NeuroBench is a collaboration between industry and academic engineers and researchers. This framework is currently maintained by Jason Yik, Noah Pacik-Nelson, Korneel Van den Berghe and Benedetto Leto and there have been technical contributions from many others. A non-exhaustive list includes Gregor Lenz, Denis Kleyko, Younes Bouhadjar, Paul Hueber, Vincent Sun, Biyan Zhou, George Vathakkattil Joseph, Douwe den Blanken, Maxime Fabre, Shenqi Wang, Guangzhi Tang, Anurag Kumar Mishra, Soikat Hasan Ahmed, Aurora Micheli, Tao Sun.
Contributing
If you are interested in helping to build this framework, please see the Contribution Guidelines.
Citation
If you use this framework in your research, please cite the following article:
@article{yik2025neurobench,
title={The neurobench framework for benchmarking neuromorphic computing algorithms and systems},
author={Yik, Jason and Van den Berghe, Korneel and den Blanken, Douwe and Bouhadjar, Younes and Fabre, Maxime and Hueber, Paul and Ke, Weijie and Khoei, Mina A and Kleyko, Denis and Pacik-Nelson, Noah and others},
journal={Nature communications},
volume={16},
number={1},
pages={1545},
year={2025},
publisher={Nature Publishing Group UK London}
}
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file neurobench-2.3.0.tar.gz.
File metadata
- Download URL: neurobench-2.3.0.tar.gz
- Upload date:
- Size: 53.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.4.1 CPython/3.11.15 Linux/6.17.0-1010-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8ada7afaa3a46f7c214736a14b939017de61cde09f1a552db784ec8f2ab57d13
|
|
| MD5 |
8dc755bb1ca600c771d6e422a84d0297
|
|
| BLAKE2b-256 |
0bbcf3e3a9c9e5dda9be4e65ade655d73680be5ad890393b356776cf5efefacc
|
File details
Details for the file neurobench-2.3.0-py3-none-any.whl.
File metadata
- Download URL: neurobench-2.3.0-py3-none-any.whl
- Upload date:
- Size: 76.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.4.1 CPython/3.11.15 Linux/6.17.0-1010-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9b188a50baa78a727e2c99df534bb38b6b1a61afd1d83b43b3410b0da9afc807
|
|
| MD5 |
cec475b9e128a82cff9137a94368d7d1
|
|
| BLAKE2b-256 |
47c43ce5f407267a6e53c6e3d8ebcf7dbf892460bef79355e77adda4e6fe0c75
|