The Nengo team is thrilled to announce the release of NengoLoihi version 1.0.0.
What is NengoLoihi?
NengoLoihi is a backend for the Nengo neural simulator allowing standard spiking Nengo models to run on Intel’s new Loihi neuromorphic chip. NengoLoihi includes an emulator so that you can develop spiking neuron models for Loihi without having access to hardware.
How do I use it?
Once installed, NengoLoihi simulates Nengo networks. After defining your network, instead of simulating it with
and that’s it!
Improved communication speed
We improved communication speed between the host machine (running NengoLoihi in Python) and the Loihi board, particularly when using the
precompute=False option on the
Simulator. This is most critical for applications where a real-time feedback loop is essential, for example controlling a robot arm.
We made use of these changes to run our robot arm simulation in real-time on Loihi. A video of the simulation is available here and shows that the Loihi implementation is faster than the equivalent CPU implementation. For more detail about applying adaptive control methods on Loihi, see the adaptive control notebook.
Automatic ensemble splitting
Prior to this release, NengoLoihi constrained ensembles to have 1024 neurons or fewer, such that each one could fit on its own Loihi core. In this release, we remove that restriction by automatically splitting large ensembles behind the scenes to fit across multiple Loihi cores. This makes it much easier to transfer larger Nengo networks to Loihi, with little to no changes required.
For networks that do not use
nengo.Convolution transforms, the default parameters for ensemble splitting often work well, with no changes required. For networks that do use
nengo.Convolution transforms, you may need to specify how to split an ensemble across multiple cores. This can be done using the
BlockShape configuration option. For detailed help on fitting large networks onto Loihi, see the splitting large ensembles tips and tricks document. For a practical example of a convolutional network, see the updated CIFAR-10 example, now included with NengoLoihi.
More support for multi-chip networks
Along with the automatic ensemble splitting, we also support larger models by adding better support for multi-chip models.
allocator is now a multi-chip allocator called
Greedy. This allocator will fill all the cores on one chip first, before requesting an additional chip. This means that for any model using fewer than the 128 cores available on one chip, behaviour should remain the same. For any model that uses more than 128 cores, the default allocator will automatically start using more chips. The maximum number of chips defaults to two, to be compatible with any existing Loihi device. If your Loihi device has more chips available, you can change this with the
n_chips argument in the
hardware_options dictionary when creating your
We also have better support for connections that use population axons under the hood (which are currently only connections with a
Convolution transform). We now support these connections between chips, as well as from the host to the chip. These features are only supported on newer Loihi hardware (Nahuku32) with the newer versions of NxSDK (>= 0.9.5), so we suggest using this setup if possible.
Multi-chip support and ensemble splitting enable much larger models to be run on Loihi in real-time. For examples of these changes in action, see the reworked CIFAR-10 example and the new Keras-to-Loihi example. We’ve also documented some tips for getting models to fit on Loihi.
Other additions include an example of the Legendre Memory Unit (LMU) recurrent neural network on Loihi and support for loading Dynamic Vision Sensor (DVS, a.k.a. spiking camera) data from files.
See the full changelog for the complete list of changes.
How do I get it?
If you are using the emulator, then you can simply use
pip install nengo-loihi
If you are setting up NengoLoihi to use Loihi hardware for the first time, see the NengoLoihi installation instructions.
Where can I learn more?
- NengoLoihi documentation
- Instructions for installing Nengo and NengoLoihi
- An introduction to Nengo
- General Nengo documentation