1 # How to install ArmNN via our APT repository on Ubuntu's Launchpad
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)
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)
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
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:
24 sudo apt install software-properties-common
25 sudo add-apt-repository ppa:armnn/ppa
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
31 We provide a number of packages for each architecture; x86_64, aarch64 and armhf as outlined below.
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.
36 ARMNN_RELEASE_VERSION: This is the marketing release version based on the date source was released on github e.g. 20.11.
38 PACKAGE_VERSION: This is the version of the source package used to build the binaries packages from.
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
48 * Development Packages
50 libarmnn-dev_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_amd64.deb
51 libarmnntfliteparser-dev_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_amd64.deb
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
65 * Development Packages
67 libarmnn-dev_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_arm64.deb
68 libarmnntfliteparser-dev_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_arm64.deb
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
83 * Development Packages
85 libarmnn-dev_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_armhf.deb
86 libarmnntfliteparser-dev_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_armhf.deb
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:
95 apt-cache search libarmnn
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
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
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:
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
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:
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}
142 ## Uninstall packages
143 The easiest way to uninstall all of the previously installed packages is to run the command:
145 sudo apt autoremove -y libarmnn${ARMNN_MAJOR_VERSION}