June 22, 2026 8 min read

What Is NIR? Neuromorphic Intermediate Representation Explained

NIR is the closest thing the neuromorphic computing field has to a universal file format - a way to describe a spiking neural network once and run it across simulators and hardware from different vendors.

Neuromorphic Intermediate Representation, or NIR, is a vendor-neutral graph format for spiking neural networks, published in Nature Communications in 2024 and documented at neuroir.org. Before NIR, a model trained in one framework generally had to be rewritten, sometimes substantially, to run on a different simulator or a different vendor's hardware. NIR aims to remove that friction by giving the field a shared description of what a spiking network actually computes, independent of any one tool's internal representation.

What NIR supports today

NIR currently supports 8 simulators - Lava-DL, Nengo, Norse, Rockpool, Sinabs, snnTorch, Spyx, and others in the PyTorch-adjacent SNN ecosystem - and 5 hardware platforms, including Intel's Loihi 2, SpiNNaker 2, and SynSense's Speck and Xylo chips. In practice, this means a model can be exported from one supported tool and imported into another without manual translation of the underlying network structure.

A model exported to NIR isn't stranded if the tool that created it stops being maintained.

Why a vendor-neutral format matters right now

This portability matters more than it might seem on paper. As covered in our piece on Intel's Lava framework going archived, tooling in this space can lose active maintenance with little warning. A model trapped in a single vendor's proprietary export format becomes harder to move forward when that happens. A model exported to NIR retains a path to other NIR-supporting tools regardless of what happens to the tool that originally produced it.

Where NIR tooling still struggles: residual networks

NIR's biggest practical limitation today is architectural, not conceptual. Reference NIR tooling round-trips simple feed-forward graphs reliably, but commonly struggles with residual architectures - networks like ResNet that have skip connections requiring multiple input branches to be summed correctly at a single node. Getting this right requires a topological execution order that explicitly handles multi-input summation, which isn't implemented consistently across NIR tooling.

NeuroCUDA's NIR executor (nir_executor.py) addresses this specific gap using Kahn's algorithm for topological sorting with explicit multi-input summation at branch nodes. The result is verified bit-exact on a full ResNet-18 round-trip - 0.000000 maximum absolute difference between the original and NIR-round-tripped model's outputs. This is a narrow, specific contribution: it doesn't replace the broader NIR ecosystem, it closes one well-defined gap in it.

NIR capabilityReference toolingNeuroCUDA's executor
Feed-forward graph round-tripReliableReliable
Residual / skip-connection graphsKnown difficult case0.000000 max abs diff, bit-exact
Supported simulators8 (Lava-DL, Nengo, Norse, Rockpool, Sinabs, snnTorch, Spyx, etc.)Exports standard NIR, compatible with all
Supported hardware5 (Loihi 2, SpiNNaker 2, Speck, Xylo, etc.)Exports standard NIR, compatible with all

Using NIR with NeuroCUDA

import neurocuda

snn_model = neurocuda.convert(your_pytorch_model, train_loader)
neurocuda.to_nir(snn_model, "model.nir")

Once exported, model.nir is not tied to NeuroCUDA - it can, in principle, be loaded by any tool that implements the NIR specification, which is the entire point of the format.

Sources & further reading

  1. NIR specification and documentation, neuroir.org
  2. NIR paper, arXiv:2311.14641, published in Nature Communications (2024)
  3. NeuroCUDA source and NIR executor implementation, github.com/Krishnav1/neurocuda

Frequently asked questions

What is NIR in neuromorphic computing?

NIR, or Neuromorphic Intermediate Representation, is a vendor-neutral graph format for describing spiking neural networks so they can move between different simulators and hardware platforms without being rewritten for each one. It is documented at neuroir.org and was published in Nature Communications in 2024.

Which simulators and hardware support NIR?

NIR supports 8 simulators, including Lava-DL, Nengo, Norse, Rockpool, Sinabs, snnTorch, and Spyx, and 5 hardware platforms, including Intel Loihi 2, SpiNNaker 2, and SynSense's Speck and Xylo chips.

Does NIR handle residual networks like ResNet correctly?

Reference NIR tooling round-trips simple feed-forward graphs reliably but commonly struggles with residual architectures that have skip connections, because correctly summing multiple incoming branches at a node during execution requires careful topological handling that isn't always implemented.

What is the benefit of exporting a model to NIR instead of a vendor-specific format?

A model exported to NIR is not locked to the tool that created it. If the original tool is discontinued or archived, as happened with Intel's Lava framework, a NIR-exported model can still move to other NIR-compatible simulators and hardware.