xref: /aosp_15_r20/external/armnn/InstallationViaAptRepository.md (revision 89c4ff92f2867872bb9e2354d150bf0c8c502810)
1*89c4ff92SAndroid Build Coastguard Worker# How to install ArmNN via our APT repository on Ubuntu's Launchpad
2*89c4ff92SAndroid Build Coastguard Worker
3*89c4ff92SAndroid Build Coastguard Worker* [Introduction](#introduction)
4*89c4ff92SAndroid Build Coastguard Worker* [Add the Ubuntu Launchpad PPA to your system](#add-the-ubuntu-launchpad-ppa-to-your-system)
5*89c4ff92SAndroid Build Coastguard Worker* [Outline of available packages](#outline-of-available-packages)
6*89c4ff92SAndroid Build Coastguard Worker  + [x86_64](#x86_64)
7*89c4ff92SAndroid Build Coastguard Worker  + [arm64](#arm64)
8*89c4ff92SAndroid Build Coastguard Worker  + [armhf](#armhf)
9*89c4ff92SAndroid Build Coastguard Worker* [Install desired combination of packages](#install-desired-combination-of-packages)
10*89c4ff92SAndroid Build Coastguard Worker* [Installation of specific ABI versioned packages](#installation-of-specific-abi-versioned-packages)
11*89c4ff92SAndroid Build Coastguard Worker* [Uninstall packages](#uninstall-packages)
12*89c4ff92SAndroid Build Coastguard Worker
13*89c4ff92SAndroid Build Coastguard Worker
14*89c4ff92SAndroid Build Coastguard Worker## Introduction
15*89c4ff92SAndroid Build Coastguard WorkerThese are the step by step instructions on how to install the Arm NN core, TensorflowLite Parser
16*89c4ff92SAndroid Build Coastguard Workeras well as PyArmNN for x86_64, Arm64 and Armhf for Ubuntu 20.04.
17*89c4ff92SAndroid Build Coastguard WorkerThe packages will also be added to Debian Bullseye, their progress can be tracked here:
18*89c4ff92SAndroid Build Coastguard Workerhttps://tracker.debian.org/pkg/armnn.
19*89c4ff92SAndroid Build Coastguard Worker
20*89c4ff92SAndroid Build Coastguard Worker
21*89c4ff92SAndroid Build Coastguard Worker## Add the Ubuntu Launchpad PPA to your system
22*89c4ff92SAndroid Build Coastguard Worker* Add the PPA to your sources using a command contained in software-properties-common package:
23*89c4ff92SAndroid Build Coastguard Worker    ```
24*89c4ff92SAndroid Build Coastguard Worker    sudo apt install software-properties-common
25*89c4ff92SAndroid Build Coastguard Worker    sudo add-apt-repository ppa:armnn/ppa
26*89c4ff92SAndroid Build Coastguard Worker    sudo apt update
27*89c4ff92SAndroid Build Coastguard Worker    ```
28*89c4ff92SAndroid Build Coastguard Worker* More information about our PPA and the Ubuntu Launchpad service can be found at [launchpad.net](https://launchpad.net/~armnn/+archive/ubuntu/ppa)
29*89c4ff92SAndroid Build Coastguard Worker## Outline of available packages
30*89c4ff92SAndroid Build Coastguard Worker
31*89c4ff92SAndroid Build Coastguard WorkerWe provide a number of packages for each architecture; x86_64, aarch64 and armhf as outlined below.
32*89c4ff92SAndroid Build Coastguard Worker
33*89c4ff92SAndroid Build Coastguard WorkerARMNN_MAJOR_VERSION: This is the ABI version of the Arm NN source that has been packaged based on
34*89c4ff92SAndroid Build Coastguard Workerinclude/armnn/Version.hpp.
35*89c4ff92SAndroid Build Coastguard Worker
36*89c4ff92SAndroid Build Coastguard WorkerARMNN_RELEASE_VERSION: This is the marketing release version based on the date source was released on github e.g. 20.11.
37*89c4ff92SAndroid Build Coastguard Worker
38*89c4ff92SAndroid Build Coastguard WorkerPACKAGE_VERSION: This is the version of the source package used to build the binaries packages from.
39*89c4ff92SAndroid Build Coastguard Worker
40*89c4ff92SAndroid Build Coastguard Worker### x86_64
41*89c4ff92SAndroid Build Coastguard Worker* Runtime Packages
42*89c4ff92SAndroid Build Coastguard Worker```
43*89c4ff92SAndroid Build Coastguard Workerlibarmnn-cpuref-backend{ARMNN_MAJOR_VERSION}_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_amd64.deb
44*89c4ff92SAndroid Build Coastguard Workerlibarmnntfliteparser{ARMNN_MAJOR_VERSION}_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_amd64.deb
45*89c4ff92SAndroid Build Coastguard Workerlibarmnn{ARMNN_MAJOR_VERSION}_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_amd64.deb
46*89c4ff92SAndroid Build Coastguard Workerpython3-pyarmnn_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_amd64.deb
47*89c4ff92SAndroid Build Coastguard Worker```
48*89c4ff92SAndroid Build Coastguard Worker* Development Packages
49*89c4ff92SAndroid Build Coastguard Worker```
50*89c4ff92SAndroid Build Coastguard Workerlibarmnn-dev_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_amd64.deb
51*89c4ff92SAndroid Build Coastguard Workerlibarmnntfliteparser-dev_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_amd64.deb
52*89c4ff92SAndroid Build Coastguard Worker```
53*89c4ff92SAndroid Build Coastguard Worker* Dependency Packages (These are empty packages that provide a user-friendly name for other packages they will install)
54*89c4ff92SAndroid Build Coastguard Worker```
55*89c4ff92SAndroid Build Coastguard Workerarmnn-latest-all_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_amd64.deb
56*89c4ff92SAndroid Build Coastguard Workerarmnn-latest-ref_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_amd64.deb
57*89c4ff92SAndroid Build Coastguard Worker```
58*89c4ff92SAndroid Build Coastguard Worker### arm64
59*89c4ff92SAndroid Build Coastguard Worker* Runtime Packages
60*89c4ff92SAndroid Build Coastguard Worker```
61*89c4ff92SAndroid Build Coastguard Workerlibarmnn-aclcommon{ARMNN_MAJOR_VERSION}_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_arm64.deb
62*89c4ff92SAndroid Build Coastguard Workerlibarmnn-cpuacc-backend{ARMNN_MAJOR_VERSION}_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_arm64.deb
63*89c4ff92SAndroid Build Coastguard Workerlibarmnn-cpuref-backend{ARMNN_MAJOR_VERSION}_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_arm64.deb
64*89c4ff92SAndroid Build Coastguard Workerlibarmnn-gpuacc-backend{ARMNN_MAJOR_VERSION}_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_arm64.deb
65*89c4ff92SAndroid Build Coastguard Workerlibarmnntfliteparser{ARMNN_MAJOR_VERSION}_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_arm64.deb
66*89c4ff92SAndroid Build Coastguard Workerlibarmnn{ARMNN_MAJOR_VERSION}_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_arm64.deb
67*89c4ff92SAndroid Build Coastguard Workerpython3-pyarmnn_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_arm64.deb
68*89c4ff92SAndroid Build Coastguard Worker
69*89c4ff92SAndroid Build Coastguard Worker```
70*89c4ff92SAndroid Build Coastguard Worker* Development Packages
71*89c4ff92SAndroid Build Coastguard Worker```
72*89c4ff92SAndroid Build Coastguard Workerlibarmnn-dev_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_arm64.deb
73*89c4ff92SAndroid Build Coastguard Workerlibarmnntfliteparser-dev_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_arm64.deb
74*89c4ff92SAndroid Build Coastguard Worker
75*89c4ff92SAndroid Build Coastguard Worker```
76*89c4ff92SAndroid Build Coastguard Worker* Dependency Packages (These are empty packages that provide a user-friendly name for other packages they will install)
77*89c4ff92SAndroid Build Coastguard Worker```
78*89c4ff92SAndroid Build Coastguard Workerarmnn-latest-all_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_arm64.deb
79*89c4ff92SAndroid Build Coastguard Workerarmnn-latest-cpu_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_arm64.deb
80*89c4ff92SAndroid Build Coastguard Workerarmnn-latest-cpu-gpu_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_arm64.deb
81*89c4ff92SAndroid Build Coastguard Workerarmnn-latest-cpu-gpu-ref_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_arm64.deb
82*89c4ff92SAndroid Build Coastguard Workerarmnn-latest-gpu_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_arm64.deb
83*89c4ff92SAndroid Build Coastguard Workerarmnn-latest-ref_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_arm64.deb
84*89c4ff92SAndroid Build Coastguard Worker```
85*89c4ff92SAndroid Build Coastguard Worker### armhf
86*89c4ff92SAndroid Build Coastguard Worker* Runtime Packages
87*89c4ff92SAndroid Build Coastguard Worker```
88*89c4ff92SAndroid Build Coastguard Workerlibarmnn-aclcommon{ARMNN_MAJOR_VERSION}_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_armhf.deb
89*89c4ff92SAndroid Build Coastguard Workerlibarmnn-cpuacc-backend{ARMNN_MAJOR_VERSION}_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_armhf.deb
90*89c4ff92SAndroid Build Coastguard Workerlibarmnn-cpuref-backend{ARMNN_MAJOR_VERSION}_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_armhf.deb
91*89c4ff92SAndroid Build Coastguard Workerlibarmnn-gpuacc-backend{ARMNN_MAJOR_VERSION}_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_armhf.deb
92*89c4ff92SAndroid Build Coastguard Workerlibarmnntfliteparser{ARMNN_MAJOR_VERSION}_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_armhf.deb
93*89c4ff92SAndroid Build Coastguard Workerlibarmnn{ARMNN_MAJOR_VERSION}_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_armhf.deb
94*89c4ff92SAndroid Build Coastguard Workerpython3-pyarmnn_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_armhf.deb
95*89c4ff92SAndroid Build Coastguard Worker
96*89c4ff92SAndroid Build Coastguard Worker```
97*89c4ff92SAndroid Build Coastguard Worker* Development Packages
98*89c4ff92SAndroid Build Coastguard Worker```
99*89c4ff92SAndroid Build Coastguard Workerlibarmnn-dev_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_armhf.deb
100*89c4ff92SAndroid Build Coastguard Workerlibarmnntfliteparser-dev_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_armhf.deb
101*89c4ff92SAndroid Build Coastguard Worker
102*89c4ff92SAndroid Build Coastguard Worker```
103*89c4ff92SAndroid Build Coastguard Worker* Dependency Packages (These are empty packages that provide a user-friendly name for other packages they will install)
104*89c4ff92SAndroid Build Coastguard Worker```
105*89c4ff92SAndroid Build Coastguard Workerarmnn-latest-all_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_armhf.deb
106*89c4ff92SAndroid Build Coastguard Workerarmnn-latest-cpu_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_armhf.deb
107*89c4ff92SAndroid Build Coastguard Workerarmnn-latest-cpu-gpu_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_armhf.deb
108*89c4ff92SAndroid Build Coastguard Workerarmnn-latest-cpu-gpu-ref_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_armhf.deb
109*89c4ff92SAndroid Build Coastguard Workerarmnn-latest-gpu_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_armhf.deb
110*89c4ff92SAndroid Build Coastguard Workerarmnn-latest-ref_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_amd64.deb
111*89c4ff92SAndroid Build Coastguard Worker```
112*89c4ff92SAndroid Build Coastguard Worker
113*89c4ff92SAndroid Build Coastguard Worker## Install desired combination of packages
114*89c4ff92SAndroid Build Coastguard WorkerThe easiest way to install all of the available packages for your systems architecture is to run the command:
115*89c4ff92SAndroid Build Coastguard Worker
116*89c4ff92SAndroid Build Coastguard Worker```
117*89c4ff92SAndroid Build Coastguard Worker sudo apt-get install -y python3-pyarmnn armnn-latest-all
118*89c4ff92SAndroid Build Coastguard Worker # Verify installation via python:
119*89c4ff92SAndroid Build Coastguard Worker python3 -c "import pyarmnn as ann;print(ann.GetVersion())"
120*89c4ff92SAndroid Build Coastguard Worker # Returns '{ARMNN_MAJOR_VERSION}.0.0' e.g. 32.0.0
121*89c4ff92SAndroid Build Coastguard Worker```
122*89c4ff92SAndroid Build Coastguard WorkerThis will install PyArmNN and the three backends for Neon (CpuAcc), OpenCL (GpuAcc) and our Reference Backend.
123*89c4ff92SAndroid Build Coastguard WorkerIt will also install their dependencies including the arm-compute-library package along with the Tensorflow Lite Parser
124*89c4ff92SAndroid Build Coastguard Workerand it's dependency Arm NN Core.
125*89c4ff92SAndroid Build Coastguard WorkerIf the user does not wish to use PyArmNN they can go up a level of dependencies and instead just install the
126*89c4ff92SAndroid Build Coastguard Workerarmnn-latest-all package:
127*89c4ff92SAndroid Build Coastguard Worker```
128*89c4ff92SAndroid Build Coastguard Worker  # Install ArmNN Core, CpuAcc Backend, GpuAcc Backend and Reference Backend as well as the TensorFlow Lite Parser:
129*89c4ff92SAndroid Build Coastguard Worker  # (This will only install CpuAcc and GpuAcc Backends on arm64 and armhf architectures)
130*89c4ff92SAndroid Build Coastguard Worker  sudo apt-get install -y armnn-latest-all
131*89c4ff92SAndroid Build Coastguard Worker
132*89c4ff92SAndroid Build Coastguard Worker  # Install ArmNN Core, CpuAcc Backend as well as the TensorFlow Lite Parser:
133*89c4ff92SAndroid Build Coastguard Worker  sudo apt-get install -y armnn-latest-cpu
134*89c4ff92SAndroid Build Coastguard Worker
135*89c4ff92SAndroid Build Coastguard Worker  # Install ArmNN Core, CpuAcc Backend, GpuAcc Backend as well as the TensorFlow Lite Parser:
136*89c4ff92SAndroid Build Coastguard Worker  sudo apt-get install -y armnn-latest-cpu-gpu
137*89c4ff92SAndroid Build Coastguard Worker
138*89c4ff92SAndroid Build Coastguard Worker  # Install ArmNN Core, GpuAcc Backend as well as the TensorFlow Lite Parser:
139*89c4ff92SAndroid Build Coastguard Worker  sudo apt-get install -y armnn-latest-gpu
140*89c4ff92SAndroid Build Coastguard Worker
141*89c4ff92SAndroid Build Coastguard Worker  # Install ArmNN Core, Reference Backend as well as the TensorFlow Lite Parser:
142*89c4ff92SAndroid Build Coastguard Worker  sudo apt-get install -y armnn-latest-ref
143*89c4ff92SAndroid Build Coastguard Worker```
144*89c4ff92SAndroid Build Coastguard Worker
145*89c4ff92SAndroid Build Coastguard Worker## Installation of specific ABI versioned packages
146*89c4ff92SAndroid Build Coastguard WorkerDue to Debian Packaging requiring the pristine tarball from our Github release, the version on Launchpad may not align
147*89c4ff92SAndroid Build Coastguard Workerwith the released version on Github depending on the complexity of newly added features.
148*89c4ff92SAndroid Build Coastguard WorkerIn order to check for the latest available Arm NN version use apt-cache search:
149*89c4ff92SAndroid Build Coastguard Worker```
150*89c4ff92SAndroid Build Coastguard Worker apt-cache search libarmnn
151*89c4ff92SAndroid Build Coastguard Worker
152*89c4ff92SAndroid Build Coastguard Worker # This returns a list of matching packages including versions from previous releases
153*89c4ff92SAndroid Build Coastguard Worker libarmnn-cpuref-backend23 - Arm NN is an inference engine for CPUs, GPUs and NPUs
154*89c4ff92SAndroid Build Coastguard Worker libarmnn-cpuref-backend24 - Arm NN is an inference engine for CPUs, GPUs and NPUs
155*89c4ff92SAndroid Build Coastguard Worker libarmnn-dev - Arm NN is an inference engine for CPUs, GPUs and NPUs
156*89c4ff92SAndroid Build Coastguard Worker libarmnntfliteparser-dev - Arm NN is an inference engine for CPUs, GPUs and NPUs # Note: removal of dash to suit debian naming conventions
157*89c4ff92SAndroid Build Coastguard Worker libarmnn-tfliteparser23 - Arm NN is an inference engine for CPUs, GPUs and NPUs
158*89c4ff92SAndroid Build Coastguard Worker libarmnntfliteparser24 - Arm NN is an inference engine for CPUs, GPUs and NPUs # Note: removal of dash to suit debian naming conventions
159*89c4ff92SAndroid Build Coastguard Worker libarmnntfliteparser24.5 - Arm NN is an inference engine for CPUs, GPUs and NPUs # Note: removal of dash to suit debian naming conventions
160*89c4ff92SAndroid Build Coastguard Worker libarmnn23 - Arm NN is an inference engine for CPUs, GPUs and NPUs
161*89c4ff92SAndroid Build Coastguard Worker libarmnn24 - Arm NN is an inference engine for CPUs, GPUs and NPUs
162*89c4ff92SAndroid Build Coastguard Worker libarmnn25 - Arm NN is an inference engine for CPUs, GPUs and NPUs
163*89c4ff92SAndroid Build Coastguard Worker libarmnn30 - Arm NN is an inference engine for CPUs, GPUs and NPUs
164*89c4ff92SAndroid Build Coastguard Worker libarmnn-aclcommon23 - Arm NN is an inference engine for CPUs, GPUs and NPUs
165*89c4ff92SAndroid Build Coastguard Worker libarmnnaclcommon24 - Arm NN is an inference engine for CPUs, GPUs and NPUs # Note: removal of dash to suit debian naming conventions
166*89c4ff92SAndroid Build Coastguard Worker libarmnn-cpuacc-backend23 - Arm NN is an inference engine for CPUs, GPUs and NPUs
167*89c4ff92SAndroid Build Coastguard Worker libarmnn-cpuacc-backend24 - Arm NN is an inference engine for CPUs, GPUs and NPUs
168*89c4ff92SAndroid Build Coastguard Worker libarmnn-gpuacc-backend23 - Arm NN is an inference engine for CPUs, GPUs and NPUs
169*89c4ff92SAndroid Build Coastguard Worker libarmnn-gpuacc-backend24 - Arm NN is an inference engine for CPUs, GPUs and NPUs
170*89c4ff92SAndroid Build Coastguard Worker
171*89c4ff92SAndroid Build Coastguard Worker
172*89c4ff92SAndroid Build Coastguard Worker # Export the ARMNN_MAJOR_VERSION to the latest visible e.g. libarmnn30 to allow installation using the below examples
173*89c4ff92SAndroid Build Coastguard Worker export ARMNN_MAJOR_VERSION=30
174*89c4ff92SAndroid Build Coastguard Worker
175*89c4ff92SAndroid Build Coastguard Worker  # As the Tensorflow Lite Parser is now ABI stable it will have a different version to ARMNN_MAJOR_VERSION please choose latest version:
176*89c4ff92SAndroid Build Coastguard Worker  apt-cache search libarmnntfliteparser
177*89c4ff92SAndroid Build Coastguard Worker  # Returns e.g. libarmnntfliteparser24.5 so we then export that version, for reference this comes from include/armnnTfLiteParser/Version.hpp:
178*89c4ff92SAndroid Build Coastguard Worker  export TFLITE_PARSER_VERSION=24.5
179*89c4ff92SAndroid Build Coastguard Worker
180*89c4ff92SAndroid Build Coastguard Worker  sudo apt-get install -y libarmnntfliteparser${TFLITE_PARSER_VERSION} libarmnn-cpuacc-backend${ARMNN_MAJOR_VERSION}
181*89c4ff92SAndroid Build Coastguard Worker```
182*89c4ff92SAndroid Build Coastguard Worker
183*89c4ff92SAndroid Build Coastguard Worker## Uninstall packages
184*89c4ff92SAndroid Build Coastguard WorkerThe easiest way to uninstall all of the previously installed packages is to run the command:
185*89c4ff92SAndroid Build Coastguard Worker```
186*89c4ff92SAndroid Build Coastguard Worker sudo apt-get purge -y armnn-latest-all
187*89c4ff92SAndroid Build Coastguard Worker sudo apt autoremove -y armnn-latest-all
188*89c4ff92SAndroid Build Coastguard Worker```
189