forked from Qortal/Brooklyn
187 lines
9.3 KiB
Markdown
187 lines
9.3 KiB
Markdown
|
# How to install ArmNN via our APT repository on Ubuntu's Launchpad
|
||
|
|
||
|
* [Introduction](#introduction)
|
||
|
* [Add the Ubuntu Launchpad PPA to your system](#add-the-ubuntu-launchpad-ppa-to-your-system)
|
||
|
* [Outline of available packages](#outline-of-available-packages)
|
||
|
+ [x86_64](#x86-64)
|
||
|
+ [arm64](#arm64)
|
||
|
+ [armhf](#armhf)
|
||
|
* [Check latest version of packages](#check-latest-version-of-packages)
|
||
|
* [Install desired combination of packages](#install-desired-combination-of-packages)
|
||
|
* [Uninstall packages](#uninstall-packages)
|
||
|
|
||
|
|
||
|
## Introduction
|
||
|
These are the step by step instructions on how to install the Arm NN core, TensorflowLite Parser
|
||
|
as well as PyArmNN for x86_64, Arm64 and Armhf for Ubuntu 20.04.
|
||
|
The packages will also be added to Debian Bullseye, their progress can be tracked here:
|
||
|
https://tracker.debian.org/pkg/armnn
|
||
|
|
||
|
|
||
|
## Add the Ubuntu Launchpad PPA to your system
|
||
|
* Add the PPA to your sources using a command contained in software-properties-common package:
|
||
|
```
|
||
|
sudo apt install software-properties-common
|
||
|
sudo add-apt-repository ppa:armnn/ppa
|
||
|
sudo apt update
|
||
|
```
|
||
|
* More information about our PPA and the Ubuntu Launchpad service can be found at [launchpad.net](https://launchpad.net/~armnn/+archive/ubuntu/ppa)
|
||
|
## Outline of available packages
|
||
|
|
||
|
We provide a number of packages for each architecture; x86_64, aarch64 and armhf as outlined below.
|
||
|
|
||
|
ARMNN_MAJOR_VERSION: This is the ABI version of the Arm NN source that has been packaged based on
|
||
|
include/armnn/Version.hpp.
|
||
|
|
||
|
ARMNN_RELEASE_VERSION: This is the marketing release version based on the date source was released on github e.g. 20.11.
|
||
|
|
||
|
PACKAGE_VERSION: This is the version of the source package used to build the binaries packages from.
|
||
|
|
||
|
### x86_64
|
||
|
* Runtime Packages
|
||
|
```
|
||
|
libarmnn-cpuref-backend{ARMNN_MAJOR_VERSION}_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_amd64.deb
|
||
|
libarmnntfliteparser{ARMNN_MAJOR_VERSION}_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_amd64.deb
|
||
|
libarmnn{ARMNN_MAJOR_VERSION}_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_amd64.deb
|
||
|
python3-pyarmnn_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_amd64.deb
|
||
|
```
|
||
|
* Development Packages
|
||
|
```
|
||
|
libarmnn-dev_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_amd64.deb
|
||
|
libarmnntfliteparser-dev_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_amd64.deb
|
||
|
```
|
||
|
* Dependency Packages (These are empty packages that provide a user-friendly name for other packages they will install)
|
||
|
```
|
||
|
armnn-latest-all_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_amd64.deb
|
||
|
armnn-latest-ref_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_amd64.deb
|
||
|
```
|
||
|
### arm64
|
||
|
* Runtime Packages
|
||
|
```
|
||
|
libarmnn-aclcommon{ARMNN_MAJOR_VERSION}_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_arm64.deb
|
||
|
libarmnn-cpuacc-backend{ARMNN_MAJOR_VERSION}_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_arm64.deb
|
||
|
libarmnn-cpuref-backend{ARMNN_MAJOR_VERSION}_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_arm64.deb
|
||
|
libarmnn-gpuacc-backend{ARMNN_MAJOR_VERSION}_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_arm64.deb
|
||
|
libarmnntfliteparser{ARMNN_MAJOR_VERSION}_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_arm64.deb
|
||
|
libarmnn{ARMNN_MAJOR_VERSION}_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_arm64.deb
|
||
|
python3-pyarmnn_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_arm64.deb
|
||
|
|
||
|
```
|
||
|
* Development Packages
|
||
|
```
|
||
|
libarmnn-dev_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_arm64.deb
|
||
|
libarmnntfliteparser-dev_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_arm64.deb
|
||
|
|
||
|
```
|
||
|
* Dependency Packages (These are empty packages that provide a user-friendly name for other packages they will install)
|
||
|
```
|
||
|
armnn-latest-all_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_arm64.deb
|
||
|
armnn-latest-cpu_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_arm64.deb
|
||
|
armnn-latest-cpu-gpu_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_arm64.deb
|
||
|
armnn-latest-cpu-gpu-ref_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_arm64.deb
|
||
|
armnn-latest-gpu_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_arm64.deb
|
||
|
armnn-latest-ref_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_arm64.deb
|
||
|
```
|
||
|
### armhf
|
||
|
* Runtime Packages
|
||
|
```
|
||
|
libarmnn-aclcommon{ARMNN_MAJOR_VERSION}_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_armhf.deb
|
||
|
libarmnn-cpuacc-backend{ARMNN_MAJOR_VERSION}_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_armhf.deb
|
||
|
libarmnn-cpuref-backend{ARMNN_MAJOR_VERSION}_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_armhf.deb
|
||
|
libarmnn-gpuacc-backend{ARMNN_MAJOR_VERSION}_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_armhf.deb
|
||
|
libarmnntfliteparser{ARMNN_MAJOR_VERSION}_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_armhf.deb
|
||
|
libarmnn{ARMNN_MAJOR_VERSION}_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_armhf.deb
|
||
|
python3-pyarmnn_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_armhf.deb
|
||
|
|
||
|
```
|
||
|
* Development Packages
|
||
|
```
|
||
|
libarmnn-dev_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_armhf.deb
|
||
|
libarmnntfliteparser-dev_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_armhf.deb
|
||
|
|
||
|
```
|
||
|
* Dependency Packages (These are empty packages that provide a user-friendly name for other packages they will install)
|
||
|
```
|
||
|
armnn-latest-all_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_armhf.deb
|
||
|
armnn-latest-cpu_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_armhf.deb
|
||
|
armnn-latest-cpu-gpu_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_armhf.deb
|
||
|
armnn-latest-cpu-gpu-ref_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_armhf.deb
|
||
|
armnn-latest-gpu_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_armhf.deb
|
||
|
armnn-latest-ref_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_amd64.deb
|
||
|
```
|
||
|
|
||
|
## Install desired combination of packages
|
||
|
The easiest way to install all of the available packages for your systems architecture is to run the command:
|
||
|
|
||
|
```
|
||
|
sudo apt-get install -y python3-pyarmnn armnn-latest-all
|
||
|
# Verify installation via python:
|
||
|
python3 -c "import pyarmnn as ann;print(ann.GetVersion())"
|
||
|
# Returns '{ARMNN_MAJOR_VERSION}.0.0' e.g. 27.0.0
|
||
|
```
|
||
|
This will install PyArmNN and the three backends for Neon (CpuAcc), OpenCL (GpuAcc) and our Reference Backend.
|
||
|
It will also install their dependencies including the arm-compute-library package along with the Tensorflow Lite Parser
|
||
|
and it's dependency Arm NN Core.
|
||
|
If the user does not wish to use PyArmNN they can go up a level of dependencies and instead just install the
|
||
|
armnn-latest-all package:
|
||
|
```
|
||
|
# Install ArmNN Core, CpuAcc Backend, GpuAcc Backend and Reference Backend as well as the TensorFlow Lite Parser:
|
||
|
# (This will only install CpuAcc and GpuAcc Backends on arm64 and armhf architectures)
|
||
|
sudo apt-get install -y armnn-latest-all
|
||
|
|
||
|
# Install ArmNN Core, CpuAcc Backend as well as the TensorFlow Lite Parser:
|
||
|
sudo apt-get install -y armnn-latest-cpu
|
||
|
|
||
|
# Install ArmNN Core, CpuAcc Backend, GpuAcc Backend as well as the TensorFlow Lite Parser:
|
||
|
sudo apt-get install -y armnn-latest-cpu-gpu
|
||
|
|
||
|
# Install ArmNN Core, GpuAcc Backend as well as the TensorFlow Lite Parser:
|
||
|
sudo apt-get install -y armnn-latest-gpu
|
||
|
|
||
|
# Install ArmNN Core, Reference Backend as well as the TensorFlow Lite Parser:
|
||
|
sudo apt-get install -y armnn-latest-ref
|
||
|
```
|
||
|
|
||
|
## Installation of specific ABI versioned packages
|
||
|
Due to Debian Packaging requiring the pristine tarball from our Github release, the version on Launchpad may not align
|
||
|
with the released version on Github depending on the complexity of newly added features.
|
||
|
In order to check for the latest available Arm NN version use apt-cache search:
|
||
|
```
|
||
|
apt-cache search libarmnn
|
||
|
|
||
|
# This returns a list of matching packages including versions from previous releases
|
||
|
libarmnn-cpuref-backend23 - Arm NN is an inference engine for CPUs, GPUs and NPUs
|
||
|
libarmnn-cpuref-backend24 - Arm NN is an inference engine for CPUs, GPUs and NPUs
|
||
|
libarmnn-dev - Arm NN is an inference engine for CPUs, GPUs and NPUs
|
||
|
libarmnntfliteparser-dev - Arm NN is an inference engine for CPUs, GPUs and NPUs # Note: removal of dash to suit debian naming conventions
|
||
|
libarmnn-tfliteparser23 - Arm NN is an inference engine for CPUs, GPUs and NPUs
|
||
|
libarmnntfliteparser24 - Arm NN is an inference engine for CPUs, GPUs and NPUs # Note: removal of dash to suit debian naming conventions
|
||
|
libarmnn23 - Arm NN is an inference engine for CPUs, GPUs and NPUs
|
||
|
libarmnn24 - Arm NN is an inference engine for CPUs, GPUs and NPUs
|
||
|
libarmnn25 - Arm NN is an inference engine for CPUs, GPUs and NPUs
|
||
|
libarmnn-aclcommon23 - Arm NN is an inference engine for CPUs, GPUs and NPUs
|
||
|
libarmnnaclcommon24 - Arm NN is an inference engine for CPUs, GPUs and NPUs # Note: removal of dash to suit debian naming conventions
|
||
|
libarmnn-cpuacc-backend23 - Arm NN is an inference engine for CPUs, GPUs and NPUs
|
||
|
libarmnn-cpuacc-backend24 - Arm NN is an inference engine for CPUs, GPUs and NPUs
|
||
|
libarmnn-gpuacc-backend23 - Arm NN is an inference engine for CPUs, GPUs and NPUs
|
||
|
libarmnn-gpuacc-backend24 - Arm NN is an inference engine for CPUs, GPUs and NPUs
|
||
|
|
||
|
|
||
|
# Export the ARMNN_MAJOR_VERSION to the latest visible e.g. libarmnn25 to allow installation using the below examples
|
||
|
export ARMNN_MAJOR_VERSION=27
|
||
|
|
||
|
# As the Tensorflow Lite Parser is now ABI stable it will have a different version to ARMNN_MAJOR_VERSION please choose latest version:
|
||
|
apt-cache search libarmnntfliteparser
|
||
|
# Returns e.g. libarmnntfliteparser24 so we then export that version, for reference this comes from include/armnnTfLiteParser/Version.hpp:
|
||
|
export TFLITE_PARSER_VERSION=24
|
||
|
|
||
|
sudo apt-get install -y libarmnntfliteparser${TFLITE_PARSER_VERSION} libarmnn-cpuacc-backend${ARMNN_MAJOR_VERSION}
|
||
|
```
|
||
|
|
||
|
## Uninstall packages
|
||
|
The easiest way to uninstall all of the previously installed packages is to run the command:
|
||
|
```
|
||
|
sudo apt-get purge -y armnn-latest-all
|
||
|
sudo apt autoremove -y armnn-latest-all
|
||
|
```
|