From 3adc1e44125dc42e04568a5da5f7a7a2af3909df Mon Sep 17 00:00:00 2001 From: Michael McGeagh Date: Wed, 25 Nov 2020 14:23:08 +0000 Subject: MLBEDSW-3457 Merge README and PYPI Instead of maintaining two almost identical readme files, have setup.py read in the canonical README.md and modify it to replace the links accordingly. Signed-off-by: Michael McGeagh Change-Id: Ia27cd48f3c945b3fac892ab1784ce394119968ac --- PYPI.md | 197 --------------------------------------------------------------- setup.py | 9 ++- 2 files changed, 8 insertions(+), 198 deletions(-) delete mode 100644 PYPI.md diff --git a/PYPI.md b/PYPI.md deleted file mode 100644 index 82fa5224..00000000 --- a/PYPI.md +++ /dev/null @@ -1,197 +0,0 @@ -# Vela - -This tool is used to compile a -[TensorFlow Lite for Microcontrollers](https://www.tensorflow.org/lite/microcontrollers) -neural network model into an optimised version that can run on an embedded -system containing an -[Arm Ethos-U NPU](https://www.arm.com/products/silicon-ip-cpu). - -In order to be accelerated by the Ethos-U NPU the network operators must be -quantised to either 8-bit (unsigned or signed) or 16-bit (signed). - -The optimised model will contain TensorFlow Lite Custom operators for those -parts of the model that can be accelerated by the Ethos-U NPU. Parts of the -model that cannot be accelerated are left unchanged and will instead run on the -Cortex-M series CPU using an appropriate kernel (such as the -[Arm](https://www.arm.com) optimised -[CMSIS-NN](https://github.com/ARM-software/CMSIS_5/tree/develop/CMSIS/NN) -kernels). - -After compilation the optimised model can only be run on an Ethos-U NPU -embedded system. - -The tool will also generate performance estimates (EXPERIMENTAL) for the -compiled model. - -## TensorFlow Support - -Vela supports TensorFlow 2.3.0 - -## Environment - -Vela runs on the Linux operating system. - -## Prerequisites - -The following should be installed prior to the installation of Vela: - -* Python >= 3.6 -* Pip3 -* GNU toolchain (GCC, Binutils and libraries) or alternative C compiler/linker -toolchain - -And optionally: - -* Pipenv virtual environment tool - -## Installation - -Vela is available to install as a package from -[PyPi](https://pypi.org/project/ethos-u-vela/), or as -source code from -[ML Platform](https://review.mlplatform.org/plugins/gitiles/ml/ethos-u/ethos-u-vela). -Both methods will automatically install all the required dependencies. - -### PyPi - -Install Vela from PyPi using the following command: - -```bash -pip3 install ethos-u-vela -``` - -### ML Platform - -First obtain the source code by either downloading the desired TGZ file from: - - -Or by cloning the git repository: - -```bash -git clone https://review.mlplatform.org/ml/ethos-u/ethos-u-vela.git -``` - -Once you have the source code, Vela can be installed using the following -command: - -```bash -pip3 install -U setuptools>=40.1.0 -pip3 install . -``` - -Or, if you use `pipenv`: - -```bash -pipenv install . -``` - -#### Advanced Installation for Developers - -If you plan to modify the Vela codebase then it is recommended to install Vela -as an editable package to avoid the need to re-install after every modification. -This is done by adding the `-e` option to the above install commands like so: - -```bash -pip3 install -e . -``` - -Or, if you use `pipenv`: - -```bash -pipenv install -e . -``` - -If you plan to contribute to the Vela project (highly encouraged!) then it is -recommended to install Vela along with the pre-commit tools (see -[Vela Testing](https://review.mlplatform.org/plugins/gitiles/ml/ethos-u/ethos-u-vela/+/refs/tags/1.2.0/TESTING.md) -for more details). - -## Running - -Vela is run with an input `.tflite` file passed on the command line. This file -contains the neural network to be compiled. The tool then outputs an optimised -version with a `_vela.tflite` file prefix, along with the performance estimate -(EXPERIMENTAL) CSV files, all to the output directory. - -If you use the `pipenv` virtual environment tool then first start by spawning a -shell in the virtual environment: - -```bash -pipenv shell -``` - -After which running Vela is the same regardless of whether you are in a virtual -environment or not. - -Example usage: - -1) Compile the network `my_model.tflite`. The optimised version will be output -to `./output/my_network_vela.tflite`. - -```bash -vela my_model.tflite -``` - -1) Compile the network `/path/to/my_model.tflite` and specify the output to go -in the directory `./results_dir/`. - -```bash -vela --output-dir ./results_dir /path/to/my_model.tflite -``` - -1) To specify information about the embedded system's configuration use Vela's -system configuration file. The following command selects the `MySysConfig` -settings that are described in the `sys_cfg_vela.ini` system configuration file. -More details can be found in the next section. - -```bash -vela --config sys_cfg_vela.ini --system-config MySysConfig my_model.tflite -``` - -1) To get a list of all available options: - -```bash -vela --help -``` - -Information about all of Vela's CLI options as well as the system configuration -file format can be found in -[Vela Options](https://review.mlplatform.org/plugins/gitiles/ml/ethos-u/ethos-u-vela/+/refs/tags/1.2.0/OPTIONS.md). - -## Example Networks - -Some example networks that contain quantised operators which can be compiled by -Vela to run on the Ethos-U NPU can be found at: - - -## Testing - -Please see -[Vela Testing](https://review.mlplatform.org/plugins/gitiles/ml/ethos-u/ethos-u-vela/+/refs/tags/1.2.0/TESTING.md). - -## Contributions - -Please see -[Vela Contributions](https://review.mlplatform.org/plugins/gitiles/ml/ethos-u/ethos-u-vela/+/refs/tags/1.2.0/CONTRIBUTIONS.md). - -## Security - -Please see -[Vela Security](https://review.mlplatform.org/plugins/gitiles/ml/ethos-u/ethos-u-vela/+/refs/tags/1.2.0/SECURITY.md). - -## Releases - -Please see -[Vela Releases](https://review.mlplatform.org/plugins/gitiles/ml/ethos-u/ethos-u-vela/+/refs/tags/1.2.0/RELEASES.md). - -## Resources - -Additional useful information: - -* [Arm Products: Ethos-U55 NPU](https://www.arm.com/products/silicon-ip-cpu/ethos/ethos-u55) -* [Arm Developer: Ethos-U55 NPU](https://developer.arm.com/ip-products/processors/machine-learning/ethos-u55) - -## License - -Vela is licensed under -[Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0). diff --git a/setup.py b/setup.py index 35284114..f5f82bd0 100644 --- a/setup.py +++ b/setup.py @@ -15,6 +15,7 @@ # limitations under the License. # Description: # Packaging for the Vela compiler +import re from os import path from setuptools import Extension @@ -23,8 +24,14 @@ from setuptools import setup # Read the contents of README.md file this_directory = path.abspath(path.dirname(__file__)) -with open(path.join(this_directory, "PYPI.md"), encoding="utf-8") as f: +with open(path.join(this_directory, "README.md"), encoding="utf-8") as f: long_description = f.read() + # Replace local Markdown links with URLs + tag = "2.0.0" + url = f"https://review.mlplatform.org/plugins/gitiles/ml/ethos-u/ethos-u-vela/+/refs/tags/{tag}/" + for markdown in set(re.findall(r"\(.+\.md\)", long_description)): + link = f"({url}{markdown[1:-1]})" + long_description = long_description.replace(markdown, link) mlw_module = Extension( "ethosu.mlw_codec", -- cgit v1.2.1