aboutsummaryrefslogtreecommitdiff
path: root/22.05.01/md__installation_via_apt_repository.xhtml
blob: 4e8b8ce2e16a57138524aee08a6d163e80f5bfd2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
<!-- Copyright (c) 2020 ARM Limited. -->
<!--                                 -->
<!-- SPDX-License-Identifier: MIT    -->
<!--                                 -->
<!-- HTML header for doxygen 1.8.13-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="robots" content="NOINDEX, NOFOLLOW" />
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>ArmNN: How to install ArmNN via our APT repository on Ubuntu&#39;s Launchpad</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
  MathJax.Hub.Config({
    extensions: ["tex2jax.js"],
    jax: ["input/TeX","output/HTML-CSS"],
});
</script><script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="stylesheet.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <img alt="ArmNN" src="Arm_NN_horizontal_blue.png" style="max-width: 10rem; margin-top: .5rem; margin-left 10px"/>
  <td style="padding-left: 0.5em;">
   <div id="projectname">
   &#160;<span id="projectnumber">22.05.01</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('md__installation_via_apt_repository.xhtml','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="headertitle">
<div class="title">How to install ArmNN via our APT repository on Ubuntu's Launchpad </div>  </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><ul>
<li><a href="#introduction">Introduction</a></li>
<li><a href="#add-the-ubuntu-launchpad-ppa-to-your-system">Add the Ubuntu Launchpad PPA to your system</a></li>
<li><a href="#outline-of-available-packages">Outline of available packages</a><ul>
<li><a href="#x86-64">x86_64</a></li>
<li><a href="#arm64">arm64</a></li>
<li><a href="#armhf">armhf</a></li>
</ul>
</li>
<li><a href="#check-latest-version-of-packages">Check latest version of packages</a></li>
<li><a href="#install-desired-combination-of-packages">Install desired combination of packages</a></li>
<li><a href="#uninstall-packages">Uninstall packages</a></li>
</ul>
<h2>Introduction</h2>
<p>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: <a href="https://tracker.debian.org/pkg/armnn">https://tracker.debian.org/pkg/armnn</a></p>
<h2>Add the Ubuntu Launchpad PPA to your system</h2>
<ul>
<li>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 ```</li>
<li>More information about our PPA and the Ubuntu Launchpad service can be found at <a href="https://launchpad.net/~armnn/+archive/ubuntu/ppa">launchpad.net</a> <h2>Outline of available packages</h2>
</li>
</ul>
<p>We provide a number of packages for each architecture; x86_64, aarch64 and armhf as outlined below.</p>
<p>ARMNN_MAJOR_VERSION: This is the ABI version of the Arm NN source that has been packaged based on <a class="el" href="include_2armnn_2_version_8hpp.xhtml">include/armnn/Version.hpp</a>.</p>
<p>ARMNN_RELEASE_VERSION: This is the marketing release version based on the date source was released on github e.g. 20.11.</p>
<p>PACKAGE_VERSION: This is the version of the source package used to build the binaries packages from.</p>
<h3>x86_64</h3>
<ul>
<li>Runtime Packages <div class="fragment"><div class="line">libarmnn-cpuref-backend{ARMNN_MAJOR_VERSION}_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_amd64.deb</div><div class="line">libarmnntfliteparser{ARMNN_MAJOR_VERSION}_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_amd64.deb</div><div class="line">libarmnn{ARMNN_MAJOR_VERSION}_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_amd64.deb</div><div class="line">python3-pyarmnn_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_amd64.deb</div></div><!-- fragment --></li>
<li>Development Packages <div class="fragment"><div class="line">libarmnn-dev_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_amd64.deb</div><div class="line">libarmnntfliteparser-dev_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_amd64.deb</div></div><!-- fragment --></li>
<li>Dependency Packages (These are empty packages that provide a user-friendly name for other packages they will install) <div class="fragment"><div class="line">armnn-latest-all_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_amd64.deb</div><div class="line">armnn-latest-ref_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_amd64.deb</div></div><!-- fragment --> <h3>arm64</h3>
</li>
</ul>
<ul>
<li>Runtime Packages <div class="fragment"><div class="line">libarmnn-aclcommon{ARMNN_MAJOR_VERSION}_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_arm64.deb</div><div class="line">libarmnn-cpuacc-backend{ARMNN_MAJOR_VERSION}_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_arm64.deb</div><div class="line">libarmnn-cpuref-backend{ARMNN_MAJOR_VERSION}_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_arm64.deb</div><div class="line">libarmnn-gpuacc-backend{ARMNN_MAJOR_VERSION}_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_arm64.deb</div><div class="line">libarmnntfliteparser{ARMNN_MAJOR_VERSION}_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_arm64.deb</div><div class="line">libarmnn{ARMNN_MAJOR_VERSION}_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_arm64.deb</div><div class="line">python3-pyarmnn_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_arm64.deb</div></div><!-- fragment --></li>
<li>Development Packages <div class="fragment"><div class="line">libarmnn-dev_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_arm64.deb</div><div class="line">libarmnntfliteparser-dev_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_arm64.deb</div></div><!-- fragment --></li>
<li>Dependency Packages (These are empty packages that provide a user-friendly name for other packages they will install) <div class="fragment"><div class="line">armnn-latest-all_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_arm64.deb</div><div class="line">armnn-latest-cpu_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_arm64.deb</div><div class="line">armnn-latest-cpu-gpu_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_arm64.deb</div><div class="line">armnn-latest-cpu-gpu-ref_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_arm64.deb</div><div class="line">armnn-latest-gpu_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_arm64.deb</div><div class="line">armnn-latest-ref_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_arm64.deb</div></div><!-- fragment --> <h3>armhf</h3>
</li>
</ul>
<ul>
<li>Runtime Packages <div class="fragment"><div class="line">libarmnn-aclcommon{ARMNN_MAJOR_VERSION}_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_armhf.deb</div><div class="line">libarmnn-cpuacc-backend{ARMNN_MAJOR_VERSION}_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_armhf.deb</div><div class="line">libarmnn-cpuref-backend{ARMNN_MAJOR_VERSION}_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_armhf.deb</div><div class="line">libarmnn-gpuacc-backend{ARMNN_MAJOR_VERSION}_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_armhf.deb</div><div class="line">libarmnntfliteparser{ARMNN_MAJOR_VERSION}_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_armhf.deb</div><div class="line">libarmnn{ARMNN_MAJOR_VERSION}_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_armhf.deb</div><div class="line">python3-pyarmnn_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_armhf.deb</div></div><!-- fragment --></li>
<li>Development Packages <div class="fragment"><div class="line">libarmnn-dev_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_armhf.deb</div><div class="line">libarmnntfliteparser-dev_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_armhf.deb</div></div><!-- fragment --></li>
<li>Dependency Packages (These are empty packages that provide a user-friendly name for other packages they will install) <div class="fragment"><div class="line">armnn-latest-all_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_armhf.deb</div><div class="line">armnn-latest-cpu_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_armhf.deb</div><div class="line">armnn-latest-cpu-gpu_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_armhf.deb</div><div class="line">armnn-latest-cpu-gpu-ref_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_armhf.deb</div><div class="line">armnn-latest-gpu_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_armhf.deb</div><div class="line">armnn-latest-ref_{ARMNN_RELEASE_VERSION}-{PACKAGE_VERSION}_amd64.deb</div></div><!-- fragment --></li>
</ul>
<h2>Install desired combination of packages</h2>
<p>The easiest way to install all of the available packages for your systems architecture is to run the command:</p>
<div class="fragment"><div class="line">sudo apt-get install -y python3-pyarmnn armnn-latest-all</div><div class="line"># Verify installation via python:</div><div class="line">python3 -c &quot;import pyarmnn as ann;print(ann.GetVersion())&quot;</div><div class="line"># Returns &#39;{ARMNN_MAJOR_VERSION}.0.0&#39; e.g. 27.0.0</div></div><!-- fragment --><p> 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: </p><div class="fragment"><div class="line"># Install ArmNN Core, CpuAcc Backend, GpuAcc Backend and Reference Backend as well as the TensorFlow Lite Parser:</div><div class="line"># (This will only install CpuAcc and GpuAcc Backends on arm64 and armhf architectures)</div><div class="line">sudo apt-get install -y armnn-latest-all</div><div class="line"></div><div class="line"># Install ArmNN Core, CpuAcc Backend as well as the TensorFlow Lite Parser:</div><div class="line">sudo apt-get install -y armnn-latest-cpu</div><div class="line"></div><div class="line"># Install ArmNN Core, CpuAcc Backend, GpuAcc Backend as well as the TensorFlow Lite Parser:</div><div class="line">sudo apt-get install -y armnn-latest-cpu-gpu</div><div class="line"></div><div class="line"># Install ArmNN Core, GpuAcc Backend as well as the TensorFlow Lite Parser:</div><div class="line">sudo apt-get install -y armnn-latest-gpu</div><div class="line"></div><div class="line"># Install ArmNN Core, Reference Backend as well as the TensorFlow Lite Parser:</div><div class="line">sudo apt-get install -y armnn-latest-ref</div></div><!-- fragment --><h2>Installation of specific ABI versioned packages</h2>
<p>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: </p><div class="fragment"><div class="line">apt-cache search libarmnn</div><div class="line"></div><div class="line"># This returns a list of matching packages including versions from previous releases</div><div class="line">libarmnn-cpuref-backend23 - Arm NN is an inference engine for CPUs, GPUs and NPUs</div><div class="line">libarmnn-cpuref-backend24 - Arm NN is an inference engine for CPUs, GPUs and NPUs</div><div class="line">libarmnn-dev - Arm NN is an inference engine for CPUs, GPUs and NPUs</div><div class="line">libarmnntfliteparser-dev - Arm NN is an inference engine for CPUs, GPUs and NPUs # Note: removal of dash to suit debian naming conventions</div><div class="line">libarmnn-tfliteparser23 - Arm NN is an inference engine for CPUs, GPUs and NPUs</div><div class="line">libarmnntfliteparser24 - Arm NN is an inference engine for CPUs, GPUs and NPUs # Note: removal of dash to suit debian naming conventions</div><div class="line">libarmnn23 - Arm NN is an inference engine for CPUs, GPUs and NPUs</div><div class="line">libarmnn24 - Arm NN is an inference engine for CPUs, GPUs and NPUs</div><div class="line">libarmnn25 - Arm NN is an inference engine for CPUs, GPUs and NPUs</div><div class="line">libarmnn-aclcommon23 - Arm NN is an inference engine for CPUs, GPUs and NPUs</div><div class="line">libarmnnaclcommon24 - Arm NN is an inference engine for CPUs, GPUs and NPUs # Note: removal of dash to suit debian naming conventions</div><div class="line">libarmnn-cpuacc-backend23 - Arm NN is an inference engine for CPUs, GPUs and NPUs</div><div class="line">libarmnn-cpuacc-backend24 - Arm NN is an inference engine for CPUs, GPUs and NPUs</div><div class="line">libarmnn-gpuacc-backend23 - Arm NN is an inference engine for CPUs, GPUs and NPUs</div><div class="line">libarmnn-gpuacc-backend24 - Arm NN is an inference engine for CPUs, GPUs and NPUs</div><div class="line"></div><div class="line"></div><div class="line"># Export the ARMNN_MAJOR_VERSION to the latest visible e.g. libarmnn25 to allow installation using the below examples</div><div class="line">export ARMNN_MAJOR_VERSION=27</div><div class="line"></div><div class="line"> # As the Tensorflow Lite Parser is now ABI stable it will have a different version to ARMNN_MAJOR_VERSION please choose latest version:</div><div class="line"> apt-cache search libarmnntfliteparser</div><div class="line"> # Returns e.g. libarmnntfliteparser24 so we then export that version, for reference this comes from include/armnnTfLiteParser/Version.hpp:</div><div class="line"> export TFLITE_PARSER_VERSION=24</div><div class="line"></div><div class="line"> sudo apt-get install -y libarmnntfliteparser${TFLITE_PARSER_VERSION} libarmnn-cpuacc-backend${ARMNN_MAJOR_VERSION}</div></div><!-- fragment --><h2>Uninstall packages</h2>
<p>The easiest way to uninstall all of the previously installed packages is to run the command: </p><div class="fragment"><div class="line">sudo apt-get purge -y armnn-latest-all</div><div class="line">sudo apt autoremove -y armnn-latest-all</div></div><!-- fragment --> </div></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="buildguides.xhtml">Build Guides</a></li>
    <li class="footer">Generated on Fri Jun 17 2022 13:20:29 for ArmNN by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
  </ul>
</div>
</body>
</html>