Collaborative, Fair, and Representative Benchmarks for Neuromorphic Computing
Project description
NeuroBench Algorithm Benchmarks Harness
A harness for running evaluations on NeuroBench algorithm benchmarks.
This framework is in a beta state and is still under active development. Currently, only pytorch-based models and frameworks are supported. Extension of the harness to cover system track benchmarks in the future is planned.
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.
Installation
Install from PyPI:
pip install neurobench
Development
If you clone the repo directly for development, poetry can be used to maintain a virtualenv consistent with a deployment environment. In the algorithms_benchmarks
folder run:
poetry install
poetry run pytest tests/
Currently the end-to-end examples can be run from the algorithms_benchmarks
folder via:
poetry run python neurobench/examples/dvs_gesture.py
poetry run python neurobench/examples/gsc.py
poetry run python neurobench/examples/mackey_glass.py
poetry run python neurobench/examples/primate_reaching.py
The examples may not yet have trained models or a full set of metrics.
Getting started
Example benchmark scripts can be found under the neurobench/examples
folder.
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
andrun()
.
Documentation for the framework interfaces can found in API.md.
Developers
NeuroBench is a collaboration between industry and academic engineers and researchers. This framework is currently maintained by Jason Yik, Noah Pacik-Nelson, and Korneel Van den Berghe, 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.
Contributing
If you are interested in helping to build this framework, please see the contributing guidelines.
Citation
If you use this framework in your research, please cite the following whitepaper:
@misc{neurobench_arxiv2023,
title={NeuroBench: Advancing Neuromorphic Computing through Collaborative, Fair and Representative Benchmarking},
author={Jason Yik and Soikat Hasan Ahmed and Zergham Ahmed and Brian Anderson and Andreas G. Andreou and Chiara Bartolozzi and Arindam Basu and Douwe den Blanken and Petrut Bogdan and Sander Bohte and Younes Bouhadjar and Sonia Buckley and Gert Cauwenberghs and Federico Corradi and Guido de Croon and Andreea Danielescu and Anurag Daram and Mike Davies and Yigit Demirag and Jason Eshraghian and Jeremy Forest and Steve Furber and Michael Furlong and Aditya Gilra and Giacomo Indiveri and Siddharth Joshi and Vedant Karia and Lyes Khacef and James C. Knight and Laura Kriener and Rajkumar Kubendran and Dhireesha Kudithipudi and Gregor Lenz and Rajit Manohar and Christian Mayr and Konstantinos Michmizos and Dylan Muir and Emre Neftci and Thomas Nowotny and Fabrizio Ottati and Ayca Ozcelikkale and Noah Pacik-Nelson and Priyadarshini Panda and Sun Pao-Sheng and Melika Payvand and Christian Pehle and Mihai A. Petrovici and Christoph Posch and Alpha Renner and Yulia Sandamirskaya and Clemens JS Schaefer and André van Schaik and Johannes Schemmel and Catherine Schuman and Jae-sun Seo and Sadique Sheik and Sumit Bam Shrestha and Manolis Sifalakis and Amos Sironi and Kenneth Stewart and Terrence C. Stewart and Philipp Stratmann and Guangzhi Tang and Jonathan Timcheck and Marian Verhelst and Craig M. Vineyard and Bernhard Vogginger and Amirreza Yousefzadeh and Biyan Zhou and Fatima Tuz Zohora and Charlotte Frenkel and Vijay Janapa Reddi},
year={2023},
eprint={2304.04640},
archivePrefix={arXiv},
primaryClass={cs.AI}
}
Project details
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
Hashes for neurobench-0.1.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b2e5a0bb63ced52d3fbf1f1f4ffc23c46e7efc4adc8e78afc94cf8fcfe946d2b |
|
MD5 | bfcb24c754ef7c5946aaa66f637bf5d8 |
|
BLAKE2b-256 | 612c79c910bbb24733493af8df70b6b5fdc808997cab2f52808003a8c8780eca |