Nengo-loihi

Latest version: v1.1.0

Safety actively analyzes 619599 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 2

1.1.0

==================

*Compatible with Nengo 3.1.0*

*Compatible with NxSDK 0.9.0 - 1.0.0*

**Added**

- Added support for NxSDK 1.0.0. (`317`_)
- Added ``Simulator.clear_probes`` to clear probe histories. This can help reduce memory
usage during long runs, by running for a segment of the full run time, recording the
relevant outputs, calling ``clear_probes``, and resuming the run. (`303`_)
- Added support for ``padding='same'`` on ``nengo.Convolution`` transforms. (`297`_)
- Added support for ``nengo.transforms.ConvolutionTranspose``. (`300`_)
- ``Block`` and ``Compartment`` now have ``.discretize_info`` attributes that store
parameters used for discretizing that block and compartment. (`309`_)
- ``Model`` now has a ``connection_decode_neurons`` attribute that maps ``Connection``
objects that require decode neurons to the corresponding ``Ensemble`` objects
implementing them. (`309`_)
- Added the ``GreedyInterchip`` allocator, which reduces inter-chip communication,
speeding up networks with high traffic between chips. (`309`_)
- Added the ``PartitionInterchip`` allocator, which reduces inter-chip communication
with better partitioning than ``GreedyInterchip``. Requires the ``nxmetis``
package. (`309`_)

**Changed**

- Build errors specify the associated objects, making them easier to debug. (`289`_)
- Deobfuscated NxSDK API calls. (`320`_)
- The builder now respects the `precision.bits`_ attribute in ``nengorc`` files,
allowing for reduced-precision builds to save memory. (`309`_)
- The new ``GreedyInterchip`` allocator is now the default allocator. (`309`_)
- ``NeuronOutputNoise`` classes and NengoDL builders for ``LoihiLIF`` and
``LoihiSpikingRectifiedLinear`` have been moved to NengoExtras. (`325`_)
- Examples have been moved to `NengoExamples`_. (`325`_)

**Fixed**

- Fixed several issues to ensure that memory is freed when a ``Simulator``
is deleted. (`312`_)
- Fixed probe filters such that multiple ``Simulator.run`` calls now results in
the same probe data as a single call of equivalent length. (`271`_, `303`_)
- Convolution with 1 x 1 kernels now works as expected. (`297`_)
- Fixed a bug preventing targeting Loihi even if NxSDK is installed. (`300`_)
- Fixed how ``DecodeNeurons`` handles ``dt != 0.001``. (`309`_)

.. _271: https://github.com/nengo/nengo-loihi/issues/271
.. _289: https://github.com/nengo/nengo-loihi/pull/289
.. _297: https://github.com/nengo/nengo-loihi/pull/297
.. _300: https://github.com/nengo/nengo-loihi/pull/300
.. _303: https://github.com/nengo/nengo-loihi/pull/303
.. _309: https://github.com/nengo/nengo-loihi/pull/309
.. _312: https://github.com/nengo/nengo-loihi/pull/312
.. _317: https://github.com/nengo/nengo-loihi/pull/317
.. _320: https://github.com/nengo/nengo-loihi/pull/320
.. _325: https://github.com/nengo/nengo-loihi/pull/325
.. _NengoExamples: https://www.nengo.ai/nengo-examples/loihi
.. _precision.bits: https://www.nengo.ai/nengo/nengorc.html#configuration-options

1.0.0

========================

*Compatible with Nengo 3.1.0*

*Compatible with NxSDK 0.9.0 - 0.9.9*

**Added**

- Added Legendre Memory Unit example.
(`267 <https://github.com/nengo/nengo-loihi/pull/267>`__)
- Added a ``timers`` attribute to ``Simulator`` that tracks the wall time
taken by various parts of the model, including build time and run time.
(`260 <https://github.com/nengo/nengo-loihi/pull/260>`__)
- Added the ``pop_type`` configuration option to the ``Connection`` config.
See `nengo_loihi.add_params
<https://www.nengo.ai/nengo-loihi/api.html#nengo_loihi.add_params>`__
for details. (`261 <https://github.com/nengo/nengo-loihi/pull/261>`__)
- Added the ``block_shape`` configuration option to the ``Ensemble`` config,
and added the ``nengo_loihi.BlockShape`` class to set that option.
See `nengo_loihi.add_params
<https://www.nengo.ai/nengo-loihi/api.html#nengo_loihi.add_params>`__
for details. (`264 <https://github.com/nengo/nengo-loihi/pull/264>`__)
- Added the ``Greedy`` allocator, which uses all cores on one chip before
proceeding to the next chip. ``Greedy`` is now the default allocator.
(`266 <https://github.com/nengo/nengo-loihi/pull/266>`__)
- Added the ``n_chips`` parameter to ``HardwareInterface`` for specifying
the number of chips on the board.
(`266 <https://github.com/nengo/nengo-loihi/pull/266>`__)
- Added ``Model.utilization_summary`` to provide a summary of how much of
the various resources of each block are utilized.
(`279 <https://github.com/nengo/nengo-loihi/pull/279>`__)
- Added some `new documentation <https://www.nengo.ai/nengo-loihi/tips>`__ focused on
mapping large models onto Loihi.
(`279 <https://github.com/nengo/nengo-loihi/pull/279>`__)
- Added a
`new example <https://www.nengo.ai/nengo-loihi/examples/cifar10-convnet.html>`_
showing how to map larger convolutional networks to Loihi (applied to CIFAR-10
dataset). (`282 <https://github.com/nengo/nengo-loihi/pull/282>`__)
- Added a
`Keras example <https://www.nengo.ai/nengo-loihi/examples/keras-to-loihi.html>`_
showing how to directly convert a Keras convolutional network to run on Loihi
using the NengoDL Keras Converter.
(`281 <https://github.com/nengo/nengo-loihi/pull/281>`__)
- Added support for NxSDK 0.9.8 and 0.9.9.
(`296 <https://github.com/nengo/nengo-loihi/pull/296>`__)
- Added support for the ``nengo.RegularSpiking`` neuron type, when using ``LIFRate``
or ``RectifiedLinear`` as the base type (these are equivalent to ``LIF`` and
``SpikingRectifiedLinear``, respectively).
(`296 <https://github.com/nengo/nengo-loihi/pull/296>`__)
- Added ``nengo_loihi.dvs.DVSFileChipProcess``, for getting input from a pre-recorded
DVS file and sending it to the Loihi board.
(`306 <https://github.com/nengo/nengo-loihi/pull/306>`__)

**Changed**

- We improved performance when ``precompute=False`` through better spike packing,
larger packets, and communicating to the host over a socket.
(`260 <https://github.com/nengo/nengo-loihi/pull/260>`__)
- The ``precompute`` argument of ``Simulator`` now defaults to ``None``
and will be automatically set to ``True`` if the model can be precomputed.
(`260 <https://github.com/nengo/nengo-loihi/pull/260>`__)
- Added the ``add_to_container`` argument to ``DecodeNeurons.get_ensemble``,
which makes it easier to add a decode neurons ensemble to a network.
(`260 <https://github.com/nengo/nengo-loihi/pull/260>`__)
- ``Convolution`` transforms with ``channels_last=True`` now work with outputs
up to 1024 neurons.
(`261 <https://github.com/nengo/nengo-loihi/pull/261>`__)
- The ``Probe`` has been renamed to ``LoihiProbe`` to mirror the ``LoihiBlock``
and ``LoihiInput`` classes, which are conceptually very similar.
It has also been moved from ``nengo_loihi.block`` to ``nengo_loihi.probe``.
(`264 <https://github.com/nengo/nengo-loihi/pull/264>`__)
- We now raise a more informative error if connecting to Loihi hardware fails.
(`264 <https://github.com/nengo/nengo-loihi/pull/264>`__)
- It is now possible to build models with larger ensembles because
the builder can now split large Loihi blocks into smaller ones.
(`264 <https://github.com/nengo/nengo-loihi/pull/264>`__)
- Modules for discretizing and validating models have been moved to the
``builder`` directory.
(`264 <https://github.com/nengo/nengo-loihi/pull/264>`__)
- It is now possible to use multi-chip allocators with all models,
including those that cannot be precomputed.
(`266 <https://github.com/nengo/nengo-loihi/pull/266>`__)
- Allocators like ``RoundRobin`` no longer accept the ``n_chips`` parameter.
Instead, the ``__call__`` method accepts ``n_chips``.
(`266 <https://github.com/nengo/nengo-loihi/pull/266>`__)
- NengoLoihi now supports NxSDK version 0.9.5.rc1.
(`272 <https://github.com/nengo/nengo-loihi/pull/272>`__)
- NengoLoihi now supports Nengo version 3.1. Support for Nengo 3.0 has been dropped.
(`296 <https://github.com/nengo/nengo-loihi/pull/296>`__)
- Minimum NengoDL version is now 3.4.0.
(`296 <https://github.com/nengo/nengo-loihi/pull/296>`__)

**Removed**

- Removed the ``OneToOne`` allocator, which only worked for one chip.
The ``Greedy`` allocator is identical for models that fit on one chip.
(`266 <https://github.com/nengo/nengo-loihi/pull/266>`__)

**Fixed**

- We no longer create a spike generator if we are communicating through Snips.
(`260 <https://github.com/nengo/nengo-loihi/pull/260>`__)
- Fixed an issue in which ignored axons were still having an effect in
convolutional networks where not all input pixels are used in the output.
(`261 <https://github.com/nengo/nengo-loihi/pull/261>`__)
- Fixed an issue that prevented population spikes to be sent to the chip when
``precompute=True``. (`261 <https://github.com/nengo/nengo-loihi/pull/261>`__)
- Fixed a bug preventing making sparse connections to an ensemble.
(`245 <https://github.com/nengo/nengo-loihi/issues/245>`__,
`246 <https://github.com/nengo/nengo-loihi/pull/246>`__)
- We now ignore TensorFlow and NengoDL if an incompatible version is installed
rather than exiting with an exception.
(`264 <https://github.com/nengo/nengo-loihi/pull/264>`__)
- We now shut down the connection to the board more reliably, which should
reduce the number of cases in which a model hangs indefinitely.
(`266 <https://github.com/nengo/nengo-loihi/pull/266>`__)
- ``LoihiLIF`` neurons now round ``tau_rc`` to mimic the discretization that occurs on
Loihi, for more accurate simulation in Nengo (this was already done in the rate
equation and NengoDL implementation of this neuron).
(`275 <https://github.com/nengo/nengo-loihi/pull/275>`__)
- ``LoihiLIF`` and ``LoihiSpikingRectifiedLinear`` now add the appropriate NengoDL
builders when instantiated, so they work properly if used in NengoDL without making
a NengoLoihi simulator.
(`248 <https://github.com/nengo/nengo-loihi/issues/248>`__,
`275 <https://github.com/nengo/nengo-loihi/pull/275>`__)
- Fixed bug when probing sliced objects.
(`284 <https://github.com/nengo/nengo-loihi/pull/284>`__)
- Fixed bug when connecting to a single neuron ensemble with a single scalar
weight. (`287 <https://github.com/nengo/nengo-loihi/pull/287>`__)
- Added an error if more than 32 "populations" (e.g. convolutional filters) are used
with ``pop_type=16`` axons, since this is not yet supported by NxSDK.
(`286 <https://github.com/nengo/nengo-loihi/pull/286>`__)

0.10.0

==========================

*Compatible with Nengo 3.0.0*

*Compatible with NxSDK 0.8.7 - 0.9.0*

**Changed**

- Nengo Loihi now requires NxSDK version 0.8.7 and supports NxSDK version 0.9.0.
(`255 <https://github.com/nengo/nengo-loihi/pull/255>`__)

0.9.0

=========================

*Compatible with Nengo 3.0.0*

*Compatible with NxSDK 0.8.5*

**Added**

- It is now possible to slice the ``pre`` neurons in a neuron->neuron
connection.
(`226 <https://github.com/nengo/nengo-loihi/pull/226>`__)
- Connections now support ``Sparse`` transforms.
(`240 <https://github.com/nengo/nengo-loihi/pull/240>`__)
- A more informative error message is raised if any encoders contain NaNs.
(`251 <https://github.com/nengo/nengo-loihi/pull/251>`__)

**Changed**

- Connections from neurons with scalar transforms are now sparse internally.
This allows much larger neuron->neuron connections with scalar transforms.
(`226 <https://github.com/nengo/nengo-loihi/pull/226>`__)
- The ``scipy`` package is now required to run Nengo Loihi.
(`240 <https://github.com/nengo/nengo-loihi/pull/240>`__)
- Increased minimum NengoDL version to 3.0 (and this transitively increases the minimum
TensorFlow version to 2.0).
(`259 <https://github.com/nengo/nengo-loihi/pull/259>`__)
- Nengo Loihi is now compatible with Nengo version 3.0.0.
(`259 <https://github.com/nengo/nengo-loihi/pull/259>`__)

**Fixed**

- Fixed a bug in which ``scipy`` was not imported properly in some situations.
(`252 <https://github.com/nengo/nengo-loihi/issues/252>`__,
`258 <https://github.com/nengo/nengo-loihi/pull/258>`__)

0.8.0

=====================

*Compatible with Nengo 2.8.0*

*Compatible with NxSDK 0.8.5*

**Changed**

- Nengo Loihi now requires NxSDK version 0.8.5.
(`225 <https://github.com/nengo/nengo-loihi/pull/225>`__)

0.7.0

=====================

*Compatible with Nengo 2.8.0*

*Compatible with NxSDK 0.8.0 - 0.8.1*

**Added**

- Added ``RoundRobin`` allocator, which allows networks to be run across
multiple chips (multi-chip) by assigning each ensemble to a different chip
in a round-robin format. This allocator can be selected using the
``hardware_options`` argument when creating ``nengo_loihi.Simulator``.
(`197 <https://github.com/nengo/nengo-loihi/pull/197>`__)
- Added support for ``Ensemble.neurons -> Ensemble`` connections.
(`156 <https://github.com/nengo/nengo-loihi/pull/156>`__)

**Changed**

- Switched to nengo-bones templating system for TravisCI config/scripts.
(`204 <https://github.com/nengo/nengo-loihi/pull/204>`__)
- It is no longer possible to pass ``network=None`` to ``Simulator``.
Previously this was possible, but unlikely to work as expected.
(`202 <https://github.com/nengo/nengo-loihi/pull/202>`__)
- Better error messages are raised when attempting to simulate networks
in which certain objects participating in a learning rule are on-chip.
(`202 <https://github.com/nengo/nengo-loihi/pull/202>`__,
`208 <https://github.com/nengo/nengo-loihi/issues/208>`__,
`209 <https://github.com/nengo/nengo-loihi/issues/209>`__)
- Nengo Loihi now requires at least NxSDK version 0.8.0.
(`218 <https://github.com/nengo/nengo-loihi/pull/218>`__)
- The default intercept range set by ``nengo_loihi.set_defaults()`` is now
(-1, 0.5), instead of (-0.5, 0.5).
(`126 <https://github.com/nengo/nengo-loihi/pull/126>`__)
- Obfuscated non-public information related to Intel's NxSDK.
(`228 <https://github.com/nengo/nengo-loihi/pull/228>`__)

**Fixed**

- The splitting and passthrough removal procedures were significantly
refactored, which fixed an issue in which networks could be modified
in the splitting process.
(`202 <https://github.com/nengo/nengo-loihi/pull/202>`__,
`211 <https://github.com/nengo/nengo-loihi/issues/211>`__)
- It is now possible to make connections and probes with object slices
(e.g., ``nengo.Probe(my_ensemble[0])``).
(`202 <https://github.com/nengo/nengo-loihi/pull/202>`__,
`205 <https://github.com/nengo/nengo-loihi/issues/205>`__,
`206 <https://github.com/nengo/nengo-loihi/issues/206>`__)
- We no longer disable the Nengo decoder cache for all models.
(`202 <https://github.com/nengo/nengo-loihi/pull/202>`__,
`207 <https://github.com/nengo/nengo-loihi/issues/207>`__)
- Transforms to on-chip neurons are now applied on-chip,
which avoids scaling issues and large off-chip transforms.
(`126 <https://github.com/nengo/nengo-loihi/pull/126>`__)

Page 1 of 2

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.