{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "*Copyright (C) 2021 Intel Corporation*
\n", "*SPDX-License-Identifier: BSD-3-Clause*
\n", "*See: https://spdx.org/licenses/*\n", "\n", "---\n", "\n", "# Installing Lava\n", "\n", "## 1. System Requirements\n", "\n", "You can run Lava on any 64-bit systems with the following configuration:\n", "\n", "Language Support\n", "- Python 3.8+\n", "\n", "OS Support\n", "- Ubuntu 20.04 or later\n", "- Windows 10\n", "- MacOS\n", "\n", "We recommend using a 4 core CPU and 8 GB RAM as your machine\n", "configuration setup for compiling and executing your Lava applications.\n", "\n", "\n", "\n", "## 2. Getting Started\n", "\n", "### 2.1 Cloning Lava and Running from Source\n", "\n", "We highly recommend cloning the repository and using pybuilder to setup lava.\n", " You will need to install pybuilder for this purpose.\n", "\n", "Open a python terminal and run based on the OS you are on:\n", "\n", "#### 2.1.1 [Linux/MacOS]\n", "- cd $HOME\n", "- pip install -U pip\n", "- pip install \"poetry>=1.1.13\"\n", "- git clone git@github.com:lava-nc/lava.git\n", "- cd lava\n", "- poetry config virtualenvs.in-project true\n", "- poetry install\n", "- source .venv/bin/activate\n", "- pytest\n", "\n", "Note that you should install the core Lava repository (lava) before installing other Lava libraries such as lava-optimization or lava-dl.\n", "\n", "#### 2.1.2 [Windows]\n", "- # Commands in PowerShell\n", "- cd $HOME\n", "- git clone git@github.com:lava-nc/lava.git\n", "- cd lava\n", "- python3 -m venv .venv\n", "- .venv\\Scripts\\activate\n", "- pip install -U pip\n", "- pip install \"poetry>=1.1.13\"\n", "- poetry config virtualenvs.in-project true\n", "- poetry install\n", "- pytest\n", "\n", "Note that you should install the core Lava repository (lava) before installing other Lava libraries such as lava-optimization or lava-dl.\n", "\n", "### 2.2 [Alternative] Installing Lava from Binaries\n", "\n", "If you only need the lava package in your python environment, we will publish\n", "Lava releases via\n", "[GitHub Releases](https://github.com/lava-nc/lava/releases). Please download\n", "the package and install it.\n", "\n", "Open a python terminal and run:\n", "\n", "#### [Windows]\n", "- python3 -m venv .venv\n", "- .venv\\Scripts\\activate\n", "- pip install -U pip\n", "- pip install lava-nc-\\.tar.gz\n", "\n", "#### [MacOS/Linux]\n", "- python3 -m venv .venv\n", "- source .venv/bin/activate\n", "- pip install -U pip\n", "- pip install lava-nc-\\.tar.gz\n", "\n", "## When running tests if you see 'OSError: [Errno 24] Too many open files' consider setting ulimit using `ulimit -n 4096`\n" ] }, { "cell_type": "markdown", "metadata": { "pycharm": { "name": "#%% md\n" } }, "source": [ "## 3. Running Lava on Intel Loihi\n", "\n", "Intel's neuromorphic Loihi 1 or 2 research systems are currently not available\n", "commercially. Developers interested in using Lava with Loihi systems, need to\n", "join the [Intel Neuromorphic Research Community (INRC)](https://www.intel.com/content/www/us/en/research/neuromorphic-community.html). Once a member of the\n", "INRC, developers will gain access to cloud-hosted Loihi systems or are able\n", "to obtain physical Loihi systems on a loan basis. In addition, Intel will\n", "provide further proprietary components of the magma library which enable\n", "compiling processes for Loihi systems that need to be installed into the\n", "same Lava namespace.\n", "\n", "To request INRC membership, please write an email to inrc_interest@intel.com with a research proposal.\n", "\n", "Instructions how to run Lava on Loihi were sent to you during\n", "your INRC Account Setup. If you need support, email: nrc_support@intel-research.net" ] }, { "cell_type": "markdown", "metadata": { "pycharm": { "name": "#%% md\n" } }, "source": [ "## 4. Lava Developer Guide\n", "\n", "We have published a [Lava Developer Guide](https://lava-nc.org/developer_guide.html \"Lava Developer Guide\") which will help you to\n", "understand how you can contribute to Lava by following some known best\n", "practices and CI/CD processes." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 5. Tutorials\n", "\n", "Lava helps you to get started by providing a range of [Tutorials](https://github.com/lava-nc/lava/tree/main/tutorials/ \"Lava Tutorials\"). \n", "\n", "#### 5.1 [Linux/MacOS]\n", "- export PYTHONPATH=~/lava/src\n", "- pip install jupyter\n", "- jupyter notebook\n", "- Open browser based on URL shown in the jupyter log\n", "- Navigate in the notebook to *lava ~> tutorials*\n", "\n", "#### 5.2 [Windows]\n", "- set PYTHONPATH=~/lava/src\n", "- pip install jupyter\n", "- jupyter notebook\n", "- Open browser based on URL shown in the jupyter log\n", "- Navigate in the notebook to *lava ~> tutorials*" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## How to learn more?\n", "\n", "To dive into Lava, start by writing your own end-to-end [MNIST classifier](../end_to_end/tutorial01_mnist_digit_classification.ipynb \"Tutorial on MNIST in Lava\") or by diving into our series of in-depth tutorials, starting with a introduction to [Processes](./tutorial02_processes.ipynb \"Tutorial on Processes\").\n", "\n", "If you want to find out more about Lava, have a look at the [Lava documentation](https://lava-nc.org/ \"Lava Documentation\").\n", "\n", "To receive regular updates on the latest developments and releases of the Lava Software Framework please subscribe to the [INRC newsletter](http://eepurl.com/hJCyhb \"INRC Newsletter\")." ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.4" } }, "nbformat": 4, "nbformat_minor": 4 }