{"id":13615900,"url":"https://github.com/lava-nc/lava","last_synced_at":"2025-05-14T15:02:18.510Z","repository":{"id":37899233,"uuid":"411813745","full_name":"lava-nc/lava","owner":"lava-nc","description":"A Software Framework for Neuromorphic Computing","archived":false,"fork":false,"pushed_at":"2025-03-25T17:12:59.000Z","size":31560,"stargazers_count":600,"open_issues_count":111,"forks_count":153,"subscribers_count":28,"default_branch":"main","last_synced_at":"2025-04-12T20:43:35.867Z","etag":null,"topics":["deep-learning","neural-networks","neuromorphic","neuromorphic-computing","neuroscience","python"],"latest_commit_sha":null,"homepage":"https://lava-nc.org","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lava-nc.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2021-09-29T20:03:24.000Z","updated_at":"2025-04-07T15:09:26.000Z","dependencies_parsed_at":"2023-10-20T21:09:02.453Z","dependency_job_id":"10e536d3-bea9-4124-b764-a615520e5dca","html_url":"https://github.com/lava-nc/lava","commit_stats":{"total_commits":331,"total_committers":40,"mean_commits":8.275,"dds":0.8308157099697885,"last_synced_commit":"36bb33e17348ec08270644fb6d763040f46393f0"},"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lava-nc%2Flava","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lava-nc%2Flava/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lava-nc%2Flava/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lava-nc%2Flava/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lava-nc","download_url":"https://codeload.github.com/lava-nc/lava/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254168260,"owners_count":22026126,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["deep-learning","neural-networks","neuromorphic","neuromorphic-computing","neuroscience","python"],"created_at":"2024-08-01T20:01:20.156Z","updated_at":"2025-05-14T15:02:13.416Z","avatar_url":"https://github.com/lava-nc.png","language":"Jupyter Notebook","readme":"![image](https://user-images.githubusercontent.com/68661711/135301797-400e163d-71a3-45f8-b35f-e849e8c74f0c.png)\n\u003cp align=\"center\"\u003e\u003cb\u003e\n  A Software Framework for Neuromorphic Computing\n\u003c/b\u003e\u003c/p\u003e\n\n[![Codacy Badge](https://app.codacy.com/project/badge/Grade/40792fa7db054279bdf7532e36f0cfab)](https://app.codacy.com/gh/lava-nc/lava/dashboard?utm_source=gh\u0026utm_medium=referral\u0026utm_content=\u0026utm_campaign=Badge_grade)\n[![Codacy Badge](https://app.codacy.com/project/badge/Coverage/40792fa7db054279bdf7532e36f0cfab)](https://app.codacy.com/gh/lava-nc/lava/dashboard?utm_source=gh\u0026utm_medium=referral\u0026utm_content=\u0026utm_campaign=Badge_coverage)\n\nIf you like lava and want to support it, the easiest way is to star our repo (click star in the upper right corner).\n\n# Overview\n\nLava is an open source SW framework to develop applications for\nneuromorphic hardware architectures. It provides developers with the abstractions\nand tools to develop distributed and massively parallel applications. These\napplications can be deployed to heterogeneous system architectures containing\nconventional processors as well as neuromorphic chips that exploit event-based\nmessage passing for communication. The Lava framework comprises high-level\nlibraries for deep learning, constrained optimization, and others for productive\nalgorithm development. It also includes tools to map those algorithms to\ndifferent types of hardware architectures.\n\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"https://user-images.githubusercontent.com/68661711/135412508-4a93e20a-8b64-4723-a69b-de8f4b5902f7.png\" alt=\"Lava organization\" width=\"500\"/\u003e\n\u003c/p\u003e\n\nToday Lava supports conventional CPUs and Intel's Loihi architecture, but\nits compiler and runtime are open to extension for other architectures.\n\nTo learn more about the Lava Software Framework, please refer to the\ndetailed documentation at http://lava-nc.org/.\n\nThe Lava framework is licensed with permissive open source\nBSD 3 licensing to highly encourage community contributions.\nLower level components in Lava, that map algorithms to different\nhardware backends, are licensed with the LGPL-2.1 license to discourage\ncommercial proprietary forks. Specific sensitive components\nsupporting architectures like Intel Loihi may remain proprietary\nto Intel and will be shared as extensions to eligible users.\n\n\u003e### Lava extension for Intel's Loihi\n\u003eThe Lava extension for Loihi is available for members of the Intel Neuromorphic Research Community (INRC). The extension enables execution of Lava on Intel's Loihi hardware platform.\n\u003e\n\u003eDevelopers interested in using Lava with Loihi systems need to join the INRC. Loihi 1 and 2 research systems are currently not available commercially. Once a member of the INRC, developers will gain access to cloud-hosted Loihi systems or may be able to obtain physical Loihi systems on a loan basis.\n\u003e\n\u003eTo join the INRC, visit [http://neuromorphic.intel.com](http://neuromorphic.intel.com) or email at [inrc_interest@intel.com](mailto:inrc_interest@intel.com).\n\u003e\n\u003e If you are already a member of the INRC, please read how to [get started with the Lava extension for Loihi](https://intel-ncl.atlassian.net/wiki/spaces/NAP/pages/1785856001/Get+started+with+the+Lava+extension+for+Loihi). This page is **only** accessible to members of the INRC.\n\n\n# Getting started\nThe open-source Lava Software framework and its complementary algorithm\nlibraries are hosted at [http://github.com/lava-nc](http://github.com/lava-nc) and\nthe framework supports at minimimum CPU backends.\n\nNote that you should install the core Lava repository [lava](http://github.com/lava-nc/lava)\nbefore installing other Lava libraries such as [lava-optimization](http://github.com/lava-nc/lava-optimization)\nor [lava-dl](http://github.com/lava-nc/lava-dl).\n\n## Installing Lava from source\n\nIf you are interested in developing in Lava and modifying Lava source code,\nwe recommend cloning the repository and using `poetry` to setup Lava. You\nwill need to install the `poetry` Python package.\n\nOpen a **python 3** terminal and run based on the OS you are on:\n\n### Linux/MacOS\n\n```bash\ncd $HOME\ncurl -sSL https://install.python-poetry.org | python3 -\ngit clone git@github.com:lava-nc/lava.git\ncd lava\ngit checkout v0.9.0\n./utils/githook/install-hook.sh\npoetry config virtualenvs.in-project true\npoetry install\nsource .venv/bin/activate\npytest\n\n## See FAQ for more info: https://github.com/lava-nc/lava/wiki/Frequently-Asked-Questions-(FAQ)#install\n```\n\n### Windows\n\n```powershell\n# Commands using PowerShell\ncd $HOME\ngit clone git@github.com:lava-nc/lava.git\ncd lava\ngit checkout v0.9.0\npython3 -m venv .venv\n.venv\\Scripts\\activate\npip install -U pip\ncurl -sSL https://install.python-poetry.org | python3 -\npoetry config virtualenvs.in-project true\npoetry install\npytest\n```\n\nYou should expect the following output after running the unit tests:\n\n```\n$ pytest\n============================================== test session starts ==============================================\nplatform linux -- Python 3.8.10, pytest-7.0.1, pluggy-1.0.0\nrootdir: /home/user/lava, configfile: pyproject.toml, testpaths: tests\nplugins: cov-3.0.0\ncollected 205 items\n\ntests/lava/magma/compiler/test_channel_builder.py .                                                       [  0%]\ntests/lava/magma/compiler/test_compiler.py ........................                                       [ 12%]\ntests/lava/magma/compiler/test_node.py ..                                                                 [ 13%]\ntests/lava/magma/compiler/builder/test_channel_builder.py .                                               [ 13%]\n\n...... pytest output ...\n\ntests/lava/proc/sdn/test_models.py ........                                                               [ 98%]\ntests/lava/proc/sdn/test_process.py ...                                                                   [100%]\n=============================================== warnings summary ================================================\n\n...... pytest output ...\n\nsrc/lava/proc/lif/process.py                                                           38      0   100%\nsrc/lava/proc/monitor/models.py                                                        27      0   100%\nsrc/lava/proc/monitor/process.py                                                       79      0   100%\nsrc/lava/proc/sdn/models.py                                                           159      9    94%   199-202, 225-231\nsrc/lava/proc/sdn/process.py                                                           59      0   100%\n-----------------------------------------------------------------------------------------------------------------TOTAL\n                                                                                     4048    453    89%\n\nRequired test coverage of 85.0% reached. Total coverage: 88.81%\n============================ 199 passed, 6 skipped, 2 warnings in 118.17s (0:01:58) =============================\n\n```\n\n## Alternative: Installing Lava via Conda\n\nIf you use the Conda package manager, you can simply install the Lava package\nvia:\n\n```bash\nconda install lava -c conda-forge\n```\n\nAlternatively with intel numpy and scipy:\n\n```bash\nconda create -n lava python=3.9 -c intel\nconda activate lava\nconda install -n lava -c intel numpy scipy\nconda install -n lava -c conda-forge lava --freeze-installed\n```\n\n## Alternative: Installing Lava from pypi\n\nIf you would like to install Lava as a user you can install via pypi binaries.\nInstalling in this way does not give you access to run tests.\n\nOpen a Python terminal and run:\n\n### Windows/MacOS/Linux\n\n```bash\npython -m venv .venv\nsource .venv/bin/activate ## Or Windows: .venv\\Scripts\\activate\npip install -U pip\npip install lava-nc\n```\n\n## Alternative: Installing Lava from binaries\n\nYou can also install Lava as a user with published Lava releases via\n[GitHub Releases](https://github.com/lava-nc/lava/releases). Please download\nthe package and install it with the following commands. Installing in this way does not\ngive you access to run tests.\n\nOpen a Python terminal and run:\n\n### Windows/MacOS/Linux\n\n```bash\npython -m venv .venv\nsource .venv/bin/activate ## Or Windows: .venv\\Scripts\\activate\npip install -U pip\n# Substitute lava version needed for lava-nc-\u003cversion here\u003e.tar.gz below\npip install lava-nc-0.9.0.tar.gz\n```\n\n## Linting, testing, documentation and packaging\n\n```bash\n# Install poetry\ncurl -sSL https://install.python-poetry.org | python3 -\npoetry config virtualenvs.in-project true\npoetry install\npoetry shell\n\n# Run linting\nflakeheaven lint src/lava tests\n\n# Run unit tests\npytest\n\n# Create distribution\npoetry build\n#### Find builds at dist/\n\n# Run Secuity Linting\nbandit -r src/lava/.\n\n#### If security linting fails run bandit directly\n#### and format failures\nbandit -r src/lava/. --format custom --msg-template '{abspath}:{line}: {test_id}[bandit]: {severity}: {msg}'\n```\n##\n\u003eRefer to the tutorials directory for in-depth as well as end-to-end tutorials on how to write Lava Processes, connect them, and execute the code.\n\n# Stay in touch\n\nTo receive regular updates on the latest developments and releases of the Lava\nSoftware Framework\nplease [subscribe to our newsletter](http://eepurl.com/hJCyhb).\n","funding_links":[],"categories":["Jupyter Notebook","Computation and Communication Optimisation"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flava-nc%2Flava","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flava-nc%2Flava","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flava-nc%2Flava/lists"}