Skip to main content

Neuromorphic Intermediate Representation

Project description

NIR Logo

NIR - Neuromorphic Intermediate Representation

Static Badge PyPI - Downloads GitHub Tag Discord Neuromorphic Computing

NIR is a set of computational primitives, shared across different neuromorphic frameworks and technology stacks. NIR is currently supported by 9 simulators and 5 hardware platforms, allowing users to seamlessly move between any of these platforms.

NIR is useful when you want to move a model from one platform to another, for instance from a simulator to a hardware platform.

Read more about NIR in our documentation about NIR primitives

See which frameworks are currently supported by NIR.

Usage

Read more in our documentation about NIR usage and see more examples in our examples section

NIR serves as a format between neuromorphic platforms and will be installed alongside your framework of choice. Using NIR is typically a part of your favorite framework's workflow, but follows the same pattern when you want to move from a source to a target platform:

# Define a model
my_model = ...
# Save the model (source platform)
nir.write("my_graph.nir", my_model) 
# Load the model (target platform)
imported_graph = nir.read("my_graph.nir")

See our example section for how to use NIR with your favorite framework.

Recently, NIR has been extended by an intermediate representation for data exchange in spiking neural networks: NIRData.

Frameworks that currently support NIR

Read more in our documentation about NIR support

Framework Write to NIR Read from NIR Examples
hxtorch (BrainScaleS-2) hxtorch examples
jaxsnn (BrainScaleS-2) jaxsnn examples
Lava-DL Lava/Loihi examples
Nengo Nengo examples
Norse Norse examples
Rockpool (SynSense Xylo chip) Rockpool/Xylo examples
Sinabs (SynSense Speck chip) Sinabs/Speck examples
snnTorch snnTorch examples
SpiNNaker2 SpiNNaker2 examples
Spyx Spyx examples

Acknowledgements

This work was originally conceived at the Telluride Neuromorphic Workshop 2023 by the authors below (in alphabetical order):

If you use NIR in your work, please cite the following paper

article{NIR2024, 
    title={Neuromorphic intermediate representation: A unified instruction set for interoperable brain-inspired computing}, 
    author={Pedersen, Jens E. and Abreu, Steven and Jobst, Matthias and Lenz, Gregor and Fra, Vittorio and Bauer, Felix Christian and Muir, Dylan Richard and Zhou, Peng and Vogginger, Bernhard and Heckel, Kade and Urgese, Gianvito and Shankar, Sadasivan and Stewart, Terrence C. and Sheik, Sadique and Eshraghian, Jason K.}, 
    rights={2024 The Author(s)},
    DOI={10.1038/s41467-024-52259-9}, 
    number={1},
    journal={Nature Communications}, 
    volume={15},
    year={2024}, 
    month=sep, 
    pages={8122},
}

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

nir-1.0.8.tar.gz (85.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nir-1.0.8-py3-none-any.whl (27.4 kB view details)

Uploaded Python 3

File details

Details for the file nir-1.0.8.tar.gz.

File metadata

  • Download URL: nir-1.0.8.tar.gz
  • Upload date:
  • Size: 85.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for nir-1.0.8.tar.gz
Algorithm Hash digest
SHA256 8567513d84d975f8df444e50b5875fc7271b7bc61fcf85c5556178df35db089f
MD5 24a4464d97b6dc3a0681af7477747724
BLAKE2b-256 2c4eba1d84d938f1fa50d980102a1e27619ea8c7bd662e411252d75bd9502b53

See more details on using hashes here.

Provenance

The following attestation bundles were made for nir-1.0.8.tar.gz:

Publisher: pypi.yml on neuromorphs/NIR

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file nir-1.0.8-py3-none-any.whl.

File metadata

  • Download URL: nir-1.0.8-py3-none-any.whl
  • Upload date:
  • Size: 27.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for nir-1.0.8-py3-none-any.whl
Algorithm Hash digest
SHA256 75244036d19b2182f92a3c28b6ec13a4af40fa7b07037c62ee93b7b0ef728524
MD5 1cfa161e213ae08454b3b003228aff36
BLAKE2b-256 d0e7c3c19582b1b16d82be622cd2433199648cc7b75725b7dfed05193cd068b5

See more details on using hashes here.

Provenance

The following attestation bundles were made for nir-1.0.8-py3-none-any.whl:

Publisher: pypi.yml on neuromorphs/NIR

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page