Skip to content

Commit

Permalink
Lava 0.3.0 (#201)
Browse files Browse the repository at this point in the history
* Update RELEASE.md

* Update docs, poetry, templates

Signed-off-by: Marcus G K Williams <Marcus G K Williams [email protected]>
  • Loading branch information
mgkwill authored Mar 9, 2022
1 parent cd0a10f commit f6583e0
Show file tree
Hide file tree
Showing 6 changed files with 79 additions and 38 deletions.
10 changes: 6 additions & 4 deletions .github/ISSUE_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,13 +16,15 @@ Objective of issue:
<!-- Lava Version bug found in or Lava Version feature is targeting-->

**Lava version:**
- [ ] **0.3.0** (feature release)
- [ ] **0.2.1** (bug fixes)
- [x] **0.2.0** (current version)
<!-- remove version not chosen below -->
- [ ] **0.4.0** (feature release)
- [ ] **0.3.1** (bug fixes)
- [x] **0.3.0** (current version)
- [ ] **0.2.0**
- [ ] **0.1.2**

**I'm submitting a ...**
<!-- (check one with "x") -->
<!-- (Mark one with "x") remove not chosen below -->
- [ ] bug report
- [ ] feature request
- [ ] documentation request
Expand Down
5 changes: 4 additions & 1 deletion .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ Issue Number:
Objective of pull request:

## Pull request checklist

<!-- (Mark with "x") -->
Your PR fulfills the following requirements:
- [ ] [Issue](https://github.com/lava-nc/lava/issues) created that explains the change and why it's needed
- [ ] Tests are part of the PR (for bug fixes / features)
Expand All @@ -28,6 +28,8 @@ Your PR fulfills the following requirements:
<!-- Please limit your pull request to one type, submit multiple pull requests if needed. -->

Please check your PR type:
<!-- (Mark one with "x") remove not chosen below -->

- [ ] Bugfix
- [ ] Feature
- [ ] Code style update (formatting, renaming)
Expand All @@ -46,6 +48,7 @@ Please check your PR type:
-

## Does this introduce a breaking change?
<!-- (Mark one with "x") remove not chosen below -->

- [ ] Yes
- [ ] No
Expand Down
87 changes: 61 additions & 26 deletions RELEASE.md
Original file line number Diff line number Diff line change
@@ -1,34 +1,69 @@
# Release 0.1.0
# Release 0.3.0

This first release of Lava introduces its high-level, hardware-agnostic API for developing algorithms of distributed, parallel, and asynchronous processes that communicate with each other via message-passing over channels with each other. The API is released together with the Lava compiler and runtime which together form the Magma layer of the Lava software framework.
Lava 0.3.0 includes bug fixes, updated documentation, improved error handling, refactoring of the Lava Runtime and support for sigma delta neuron enconding and decoding.

Our initial version of Magma allows you to familiarize yourself with the Lava user interface and to build first algorithms in Python that can be executed on CPU without requiring access to physical or cloud based Loihi resources.
## Features and Improvements

# New Features and Improvements
* Added sigma delta neuron enconding and decoding support ([PR #180](https://github.com/lava-nc/lava/pull/180), [Issue #179](https://github.com/lava-nc/lava/issues/179))
* Implementation of ReadVar and ResetVar IO process ([PR #156](https://github.com/lava-nc/lava/pull/156), [Issue #155](https://github.com/lava-nc/lava/issues/155))
* Added Runtime handling of exceptions occuring in ProcessModels and the Runtime now returns exeception stack traces ([PR #135](https://github.com/lava-nc/lava/pull/135), [Issue #83](https://github.com/lava-nc/lava/issues/83))
* Virtual ports for reshaping and transposing (permuting) are now supported. ([PR #187](https://github.com/lava-nc/lava/pull/187), [Issue #185](https://github.com/lava-nc/lava/issues/185), [PR #195](https://github.com/lava-nc/lava/pull/195), [Issue #194](https://github.com/lava-nc/lava/issues/194))
* A Ternary-LIF neuron model was added to the process library. This new variant supports both positive and negative threshold for processing of signed signals ([PR #151](https://github.com/lava-nc/lava/pull/151), [Issue #150](https://github.com/lava-nc/lava/issues/150))
* Refactored runtime to reduce the number of channels used for communication([PR #157](https://github.com/lava-nc/lava/pull/157), [Issue #86](https://github.com/lava-nc/lava/issues/86))
* Refactored Runtime to follow a state machine model and refactored ProcessModels to use command design pattern, implemented PAUSE and RUN CONTINOUS ([PR #180](https://github.com/lava-nc/lava/pull/171), [Issue #86](https://github.com/lava-nc/lava/issues/86), [Issue #52](https://github.com/lava-nc/lava/issues/53))
* Refactored builder to its own package ([PR #170](https://github.com/lava-nc/lava/pull/170), [Issue #169](https://github.com/lava-nc/lava/issues/169))
* Refactored PyPorts implementation to fix incomplete PyPort hierarchy ([PR #131](https://github.com/lava-nc/lava/pull/131), [Issue #84](https://github.com/lava-nc/lava/issues/84))
* Added improvements to the MNIST tutorial ([PR #147](https://github.com/lava-nc/lava/pull/147), [Issue #146](https://github.com/lava-nc/lava/issues/146))
* A standardized template is now in use on new Pull Requests and Issues ([PR #140](https://github.com/lava-nc/lava/pull/140))
* Support added for editable install ([PR #93](https://github.com/lava-nc/lava/pull/93), [Issue #19](https://github.com/lava-nc/lava/issues/19))
* Improved runtime documentation ([PR #167](https://github.com/lava-nc/lava/pull/167))

* New Lava API to build networks of interacting Lava processes
* New Lava Compiler to map Lava processes to executable Python code for CPU execution (support for Intel Loihi will follow)
* New Lava Runtime to execute Lave processes
* A range of fundamental tutorials illustrating the basic concepts of Lava
## Bug Fixes and Other Changes
* Fixed multiple Monitor related issues ([PR #128](https://github.com/lava-nc/lava/pull/128), [Issue #103](https://github.com/lava-nc/lava/issues/103), [Issue #104](https://github.com/lava-nc/lava/issues/104), [Issue #116](https://github.com/lava-nc/lava/issues/116), [Issue #127](https://github.com/lava-nc/lava/issues/127))
* Fixed packaging issue regarding the dataloader for MNIST ([PR #133](https://github.com/lava-nc/lava/pull/133))
* Fixed multiprocessing bug by checking process lineage before join ([PR #177](https://github.com/lava-nc/lava/pull/177), [Issue #176](https://github.com/lava-nc/lava/issues/176))
* Fixed priority of channel commands in model ([PR #190](https://github.com/lava-nc/lava/pull/190), [Issue #186](https://github.com/lava-nc/lava/issues/186))
* Fixed RefPort time step handling ([PR #205](https://github.com/lava-nc/lava/pull/205), [Issue #204](https://github.com/lava-nc/lava/issues/204))

# Bug Fixes and Other Changes
## Known Issues
* No support for Intel Loihi
* CSP channels process communication, implemented with Python multiprocessing, needs improvement to reduce the overhead from inter-process communication to approach native execution speeds of similar implementations without CSP channel overhead
* Virtual ports for concatenation are not supported
* Joining and forking of virtual ports is not supported
* A Monitor process cannot monitor more than one Var/InPort of a process, as a result multi-var probing with a singular Monitor process is not supported
* Limited API documentation

* This is the first release of Lava. No bug fixes or other changes
## What's Changed
* Fixing multiple small issues of the Monitor proc by @elvinhajizada in https://github.com/lava-nc/lava/pull/128
* GitHub Issue/Pull request template by @mgkwill in https://github.com/lava-nc/lava/pull/140
* Fixing MNIST dataloader by @tihbe in https://github.com/lava-nc/lava/pull/133
* Runtime error handling by @PhilippPlank in https://github.com/lava-nc/lava/pull/135
* Reduced the number of channels between service and process (#1) by @ysingh7 in https://github.com/lava-nc/lava/pull/157
* TernaryLIF and refactoring of LIF to inherit from AbstractLIF by @srrisbud in https://github.com/lava-nc/lava/pull/151
* Proc_params for communicating arbitrary object between process and process model by @bamsumit in https://github.com/lava-nc/lava/pull/162
* Support editable install by @matham in https://github.com/lava-nc/lava/pull/93
* Implementation of ReadVar and ResetVar IO process and bugfixes for LIF, Dense and Conv processes by @bamsumit in https://github.com/lava-nc/lava/pull/156
* Refactor builder to module by @mgkwill in https://github.com/lava-nc/lava/pull/170
* Use unittest ci by @mgkwill in https://github.com/lava-nc/lava/pull/173
* Improve mnist tutorial by @srrisbud in https://github.com/lava-nc/lava/pull/147
* Multiproc bug by @mgkwill in https://github.com/lava-nc/lava/pull/177
* Refactoring py/ports by @PhilippPlank in https://github.com/lava-nc/lava/pull/131
* Adds runtime documentation by @joyeshmishra in https://github.com/lava-nc/lava/pull/167
* Implementation of Pause and Run Continuous with refactoring of Runtime by @ysingh7 in https://github.com/lava-nc/lava/pull/171
* Ref port debug by @PhilippPlank in https://github.com/lava-nc/lava/pull/183
* Sigma delta neuron, encoding and decoding support by @bamsumit in https://github.com/lava-nc/lava/pull/180
* Add NxSDKRuntimeService by @mgkwill in https://github.com/lava-nc/lava/pull/182
* Partial implementation of virtual ports for PyProcModels by @mathisrichter in https://github.com/lava-nc/lava/pull/187
* Remove old runtime_service.py by @mgkwill in https://github.com/lava-nc/lava/pull/192
* Fixing priority of channel commands in model by @PhilippPlank in https://github.com/lava-nc/lava/pull/190
* Virtual ports between RefPorts and VarPorts by @mathisrichter in https://github.com/lava-nc/lava/pull/195
* RefPort's sometimes handled a time step late by @PhilippPlank in https://github.com/lava-nc/lava/pull/205
* Fixed reset timing offset by @bamsumit in https://github.com/lava-nc/lava/pull/207
* Update README.md by @mgkwill in https://github.com/lava-nc/lava/pull/202

# Thanks to our Contributors
## New Contributors
* @tihbe made their first contribution in https://github.com/lava-nc/lava/pull/133
* @ysingh7 made their first contribution in https://github.com/lava-nc/lava/pull/157
* @matham made their first contribution in https://github.com/lava-nc/lava/pull/93

@GaboFGuerra, @joyeshmishra, @PhilippPlank, @drager-intel, @mathisrichter, @srrisbud, @ysingh7, @phstratmann, @mgkwill, @awintel

# Breaking Changes

* This is the first release of Lava. No breaking or other changes.

# Known Issues

* No support for Intel Loihi yet
* Multiprocessing and channel-based communication not very performant yet
* Virtual ports for reshaping and concatenation are not supported yet
* No support for direct memory access via RefPorts yet
* Connectivity from one to many or from many to one port not supported yet
* No support for live state monitoring yet
* Still limited API documentation
**Full Changelog**: https://github.com/lava-nc/lava/compare/v0.2.0...v0.3.0
9 changes: 5 additions & 4 deletions poetry.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ repository = "https://github.com/lava-nc/lava"
authors = [
"Intel's Neuromorphic Computing Lab and the open source community <[email protected]>"
]
license = "Lava uses multiple licenses is licensed under BSD-3-Clause or LGPL-2.1-or-later"
license = "Lava uses multiple licenses and is licensed under BSD-3-Clause or LGPL-2.1-or-later"
keywords = [
"neuromorphic",
"ai",
Expand Down Expand Up @@ -67,7 +67,7 @@ flake8-mutable = "^1.2.0"
flake8-pytest-style = "^1.6.0"
flake8-spellcheck = "^0.25.0"
flakeheaven = "^0.11.1"
pep8-naming = "^0.11.1"
pep8-naming = "^0.12.1"
poetry = "^1.1.13"
pytest = "^7.0.1"
pytest-cov = "^3.0.0"
Expand Down

0 comments on commit f6583e0

Please sign in to comment.