Skip to content

Lava 0.5.1

Compare
Choose a tag to compare
@mathisrichter mathisrichter released this 31 Oct 10:44
· 167 commits to main since this release
d321a8b

Lava v0.5.1 Release Notes

October 31, 2022

New Features and Improvements

  • Lava now supports LIF reset models with CPU backend. (PR #415)
  • LAVA now supports three factor learning rules. This release introduces a base class for plastic neurons as well as differentiation between Loihi2FLearningRule and Loihi3FLearningRule. (PR #400)
  • New Tutorial shows how to implement and use a three-factor learning rule in Lava with an example of reward-modulated STDP. (PR #400)

Bug Fixes and Other Changes

  • Fixes a bug in network compilation for branching/forking of CProcess and NC Process Models. (PR #391)
  • Fixes a bug to support multiple CPorts to PyPorts connectivity in a single process model. (PR #391)
  • Fixed issues with the uk conditional in the learning engine. (PR #400)
  • Fixed the explicit ordering of subcompilers in compilation stack: C-first-Nc-second heuristic. (PR #408)
  • Fixed the incorrect use of np.logical_and and np.logical_or discovered in learning-related code in Connection ProcessModels. (PR #412)
  • Fixed a warning in Compiler process model discovery and selection due to importing sub process model classes. (PR #418)
  • Fixed a bug in Compiler to select correct CProcessModel based on tag specified in run config. (PR #421)
  • Disabled overwriting of user set environment variables in systems.Loihi2. (PR #428)
  • Process Model selection now works in Jupyter Collab environment. #435
  • Added instructions to download dataset for MNIST tutorial (PR #439)
  • Fixed a bug in run config with respect to initializing pre- and post-execution hooks during multiple runs (PR #440)
  • Added an interface for Lava profiler to enable future implementations on different hardware or chip generations. (PR #444)
  • Updated PyTest and NBConvert dependencies to newer versions in poetry for installation. (PR #447)

Breaking Changes

  • QUBO related processes and process models have now moved to lava-optimization (PR #449)

Known Issues

  • Direct channel connections between Processes using a PyProcessModel and NcProcessModel are not supported.
  • Channel communication between PyProcessModels is slow.
  • Lava networks throw errors if run is invoked too many times due to a leak in shared memory descriptors in CPython implementation.
  • Virtual ports are only supported between Processes using PyProcModels, and between Processes using NcProcModels. Virtual ports are not supported when Processes with CProcModels are involved or between pairs of Processes that have different types of ProcModels. In addition, VirtualPorts do not support concatenation yet.
  • Joining and forking of virtual ports is not supported.
  • The Monitor Process only supports probing a single Var per Process implemented via a PyProcessModel. The Monitor Process does not support probing Vars on Loihi NeuroCores.
  • Some modules, classes, or functions lack proper docstrings and type annotations. Please raise an issue on the GitHub issue tracker in such a case.

Thanks to our Contributors