ArmNN
 21.08
InstallationViaAptRepository.md
Go to the documentation of this file.
1 # How to install ArmNN via our APT repository on Ubuntu's Launchpad
2 
3 * [Introduction](#introduction)
4 * [Add the Ubuntu Launchpad PPA to your system](#add-the-ubuntu-launchpad-ppa-to-your-system)
5 * [Outline of available packages](#outline-of-available-packages)
6  + [x86_64](#x86-64)
7  + [arm64](#arm64)
8  + [armhf](#armhf)
9 * [Check latest version of packages](#check-latest-version-of-packages)
10 * [Install desired combination of packages](#install-desired-combination-of-packages)
11 * [Uninstall packages](#uninstall-packages)
12 
13 
14 ## Introduction
15 These are the step by step instructions on how to install the Arm NN core, TensorflowLite Parser
16 as well as PyArmNN for x86_64, Arm64 and Armhf for Ubuntu 20.04.
17 The packages will also be added to Debian Bullseye, their progress can be tracked here:
18 https://tracker.debian.org/pkg/armnn
19 
20 
21 ## Add the Ubuntu Launchpad PPA to your system
22 * Add the PPA to your sources using a command contained in software-properties-common package:
23  ```
24  sudo apt install software-properties-common
25  sudo add-apt-repository ppa:armnn/ppa
26  sudo apt update
27  ```
28 * More information about our PPA and the Ubuntu Launchpad service can be found at [launchpad.net](https://launchpad.net/~armnn/+archive/ubuntu/ppa)
29 ## Outline of available packages
30 
31 We provide a number of packages for each architecture; x86_64, aarch64 and armhf as outlined below.
32 
33 ARMNN_MAJOR_VERSION: This is the ABI version of the Arm NN source that has been packaged based on
34 include/armnn/Version.hpp.
35 
36 ARMNN_RELEASE_VERSION: This is the marketing release version based on the date source was released on github e.g. 20.11.
37 
38 PACKAGE_VERSION: This is the version of the source package used to build the binaries packages from.
39 
40 ### x86_64
41 * Runtime Packages
42 ```
43 libarmnn-cpuref-backend{ARMNN_MAJOR_VERSION}_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_amd64.deb
44 libarmnntfliteparser{ARMNN_MAJOR_VERSION}_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_amd64.deb
45 libarmnn{ARMNN_MAJOR_VERSION}_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_amd64.deb
46 python3-pyarmnn_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_amd64.deb
47 ```
48 * Development Packages
49 ```
50 libarmnn-dev_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_amd64.deb
51 libarmnntfliteparser-dev_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_amd64.deb
52 ```
53 ### arm64
54 * Runtime Packages
55 ```
56 libarmnn-aclcommon{ARMNN_MAJOR_VERSION}_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_arm64.deb
57 libarmnn-cpuacc-backend{ARMNN_MAJOR_VERSION}_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_arm64.deb
58 libarmnn-cpuref-backend{ARMNN_MAJOR_VERSION}_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_arm64.deb
59 libarmnn-gpuacc-backend{ARMNN_MAJOR_VERSION}_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_arm64.deb
60 libarmnntfliteparser{ARMNN_MAJOR_VERSION}_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_arm64.deb
61 libarmnn{ARMNN_MAJOR_VERSION}_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_arm64.deb
62 python3-pyarmnn_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_arm64.deb
63 
64 ```
65 * Development Packages
66 ```
67 libarmnn-dev_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_arm64.deb
68 libarmnntfliteparser-dev_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_arm64.deb
69 
70 ```
71 ### armhf
72 * Runtime Packages
73 ```
74 libarmnn-aclcommon{ARMNN_MAJOR_VERSION}_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_armhf.deb
75 libarmnn-cpuacc-backend{ARMNN_MAJOR_VERSION}_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_armhf.deb
76 libarmnn-cpuref-backend{ARMNN_MAJOR_VERSION}_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_armhf.deb
77 libarmnn-gpuacc-backend{ARMNN_MAJOR_VERSION}_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_armhf.deb
78 libarmnntfliteparser{ARMNN_MAJOR_VERSION}_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_armhf.deb
79 libarmnn{ARMNN_MAJOR_VERSION}_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_armhf.deb
80 python3-pyarmnn_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_armhf.deb
81 
82 ```
83 * Development Packages
84 ```
85 libarmnn-dev_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_armhf.deb
86 libarmnntfliteparser-dev_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_armhf.deb
87 
88 ```
89 
90 ## Check latest version of packages
91 Due to Debian Packaging requiring the pristine tarball from our Github release, the version on Launchpad may not align
92 with the released version on Github depending on the complexity of newly added features.
93 In order to check for the latest available Arm NN version use apt-cache search:
94 ```
95  apt-cache search libarmnn
96 
97  # This returns a list of matching packages including versions from previous releases
98  libarmnn-cpuref-backend23 - Arm NN is an inference engine for CPUs, GPUs and NPUs
99  libarmnn-cpuref-backend24 - Arm NN is an inference engine for CPUs, GPUs and NPUs
100  libarmnn-dev - Arm NN is an inference engine for CPUs, GPUs and NPUs
101  libarmnntfliteparser-dev - Arm NN is an inference engine for CPUs, GPUs and NPUs # Note: removal of dash to suit debian naming conventions
102  libarmnn-tfliteparser23 - Arm NN is an inference engine for CPUs, GPUs and NPUs
103  libarmnntfliteparser24 - Arm NN is an inference engine for CPUs, GPUs and NPUs # Note: removal of dash to suit debian naming conventions
104  libarmnn23 - Arm NN is an inference engine for CPUs, GPUs and NPUs
105  libarmnn24 - Arm NN is an inference engine for CPUs, GPUs and NPUs
106  libarmnn25 - Arm NN is an inference engine for CPUs, GPUs and NPUs
107  libarmnn-aclcommon23 - Arm NN is an inference engine for CPUs, GPUs and NPUs
108  libarmnnaclcommon24 - Arm NN is an inference engine for CPUs, GPUs and NPUs # Note: removal of dash to suit debian naming conventions
109  libarmnn-cpuacc-backend23 - Arm NN is an inference engine for CPUs, GPUs and NPUs
110  libarmnn-cpuacc-backend24 - Arm NN is an inference engine for CPUs, GPUs and NPUs
111  libarmnn-gpuacc-backend23 - Arm NN is an inference engine for CPUs, GPUs and NPUs
112  libarmnn-gpuacc-backend24 - Arm NN is an inference engine for CPUs, GPUs and NPUs
113 
114 
115  # Export the ARMNN_MAJOR_VERSION to the latest visible e.g. libarmnn25 to allow installation using the below examples
116  export ARMNN_MAJOR_VERSION=26
117 ```
118 
119 
120 ## Install desired combination of packages
121 The easiest way to install all of the available packages for your systems architecture is to run the command:
122 
123 ```
124  sudo apt-get install -y python3-pyarmnn libarmnn-cpuacc-backend${ARMNN_MAJOR_VERSION} libarmnn-gpuacc-backend${ARMNN_MAJOR_VERSION} libarmnn-cpuref-backend${ARMNN_MAJOR_VERSION}
125  # Verify installation via python:
126  python3 -c "import pyarmnn as ann;print(ann.GetVersion())"
127  # Returns '{ARMNN_MAJOR_VERSION}.0.0' e.g. 26.0.0
128 ```
129 This will install PyArmNN and the three backends for Neon, Compute Library and our Reference Backend.
130 It will also install their dependencies including the arm-compute-library package along with the Tensorflow Lite Parser
131 and it's dependency Arm NN Core.
132 If the user does not wish to use PyArmNN they can go up a level of dependencies and instead just install the
133 Tensorflow Lite Parser:
134 ```
135  # As the Tensorflow Lite Parser is now ABI stable it will have a different version to ARMNN_MAJOR_VERSION please choose latest version:
136  apt-cache search libarmnntfliteparser
137  # Returns e.g. libarmnntfliteparser24 so we then export that version, for reference this comes from include/armnnTfLiteParser/Version.hpp:
138  export TFLITE_PARSER_VERSION=24
139  sudo apt-get install -y libarmnntfliteparser${TFLITE_PARSER_VERSION} libarmnn-cpuacc-backend${ARMNN_MAJOR_VERSION}
140 ```
141 
142 ## Uninstall packages
143 The easiest way to uninstall all of the previously installed packages is to run the command:
144 ```
145  sudo apt autoremove -y libarmnn${ARMNN_MAJOR_VERSION}
146 ```