Difference between revisions of "Jetson Zoo"

From eLinux.org
Jump to: navigation, search
m (NVIDIA Isaac SDK)
m (PyTorch (Caffe2))
(23 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
This page contains instructions for installing various open source add-on packages and frameworks on [[Jetson|NVIDIA Jetson]], in addition to a collection of DNN models for inferencing.
 
This page contains instructions for installing various open source add-on packages and frameworks on [[Jetson|NVIDIA Jetson]], in addition to a collection of DNN models for inferencing.
  
Below are links to container images and precompiled binaries built for aarch64 (arm64) architecture\.  These are intended to be installed on top of [https://developer.nvidia.com/embedded/jetpack JetPack].  
+
Below are links to container images and precompiled binaries built for aarch64 (arm64) architecture.  These are intended to be installed on top of [https://developer.nvidia.com/embedded/jetpack JetPack].  
  
 
Note that JetPack comes with various pre-installed components such as the L4T kernel, CUDA Toolkit, cuDNN, TensorRT, VisionWorks, OpenCV, GStreamer, Docker, and more.  
 
Note that JetPack comes with various pre-installed components such as the L4T kernel, CUDA Toolkit, cuDNN, TensorRT, VisionWorks, OpenCV, GStreamer, Docker, and more.  
Line 16: Line 16:
 
There are ready-to-use ML and data science containers for Jetson hosted on [https://ngc.nvidia.com/catalog/all?orderBy=modifiedDESC&pageNumber=0&query=l4t&quickFilter=&filters= NVIDIA GPU Cloud] (NGC), including the following:
 
There are ready-to-use ML and data science containers for Jetson hosted on [https://ngc.nvidia.com/catalog/all?orderBy=modifiedDESC&pageNumber=0&query=l4t&quickFilter=&filters= NVIDIA GPU Cloud] (NGC), including the following:
  
* [https://ngc.nvidia.com/catalog/containers/nvidia:l4t-tensorflow l4t-tensorflow] - TensorFlow 1.15.2 for JetPack 4.4
+
* [https://ngc.nvidia.com/catalog/containers/nvidia:l4t-tensorflow l4t-tensorflow] - TensorFlow for JetPack 4.4 (and newer)
* [https://ngc.nvidia.com/catalog/containers/nvidia:l4t-pytorch l4t-pytorch] - PyTorch 1.2-1.5 for JetPack 4.4
+
* [https://ngc.nvidia.com/catalog/containers/nvidia:l4t-pytorch l4t-pytorch] - PyTorch for JetPack 4.4 (and newer)
 
* [https://ngc.nvidia.com/catalog/containers/nvidia:l4t-ml l4t-ml] - TensorFlow, PyTorch, scikit-learn, scipy, pandas, JupyterLab, ect.
 
* [https://ngc.nvidia.com/catalog/containers/nvidia:l4t-ml l4t-ml] - TensorFlow, PyTorch, scikit-learn, scipy, pandas, JupyterLab, ect.
 +
 +
If you wish to modify them, the Dockerfiles and build scripts for these containers can be found on [https://github.com/dusty-nv/jetson-containers GitHub].
 +
 +
There are also following ready-to-use ML containers for Jetson hosted by our partners:
 +
* ONNX Runtime for Jetson: [https://mcr.microsoft.com/azureml/onnxruntime:v.1.4.0-jetpack4.4-l4t-base-r32.4.3 mcr.microsoft.com/azureml/onnxruntime:v.1.4.0-jetpack4.4-l4t-base-r32.4.3]
  
 
These containers are highly recommended to reduce the installation time of the frameworks below, and for beginners getting started.
 
These containers are highly recommended to reduce the installation time of the frameworks below, and for beginners getting started.
 
If you wish to modify them, the Dockerfiles and build scripts for these containers can be found on [https://github.com/dusty-nv/jetson-containers GitHub].
 
  
 
<br/ >
 
<br/ >
Line 32: Line 35:
 
* Source:  [https://github.com/tensorflow/tensorflow https://github.com/tensorflow/tensorflow]
 
* Source:  [https://github.com/tensorflow/tensorflow https://github.com/tensorflow/tensorflow]
 
* Container:  [https://ngc.nvidia.com/catalog/containers/nvidia:l4t-tensorflow l4t-tensorflow]
 
* Container:  [https://ngc.nvidia.com/catalog/containers/nvidia:l4t-tensorflow l4t-tensorflow]
* Version:  1.15.2, 2.1
+
* Version:  1.15.3, 2.3 (Python 3.6)
 
* Packages:
 
* Packages:
** JetPack 4.4
+
{| class="wikitable" style="margin-left:25px"
*** [https://developer.download.nvidia.com/compute/redist/jp/v44/tensorflow/tensorflow-1.15.2+nv20.4-cp36-cp36m-linux_aarch64.whl 1.15.2 pip wheel] (Python 3.6)
+
|-
*** [https://developer.download.nvidia.com/compute/redist/jp/v44/tensorflow/tensorflow-2.1.0+nv20.4-cp36-cp36m-linux_aarch64.whl 2.1 pip wheel] &nbsp;(Python 3.6)
+
! !! TensorFlow 1.x !! TensorFlow 2.x
** JetPack 4.3
+
|-
*** [https://developer.download.nvidia.com/compute/redist/jp/v43/tensorflow/tensorflow-1.15.2+nv20.3-cp36-cp36m-linux_aarch64.whl 1.15.2 pip wheel] (Python 3.6)
+
| JetPack 4.4.1 || [https://developer.download.nvidia.com/compute/redist/jp/v44/tensorflow/tensorflow-1.15.3+nv20.9-cp36-cp36m-linux_aarch64.whl 1.15.3 pip wheel] || [https://developer.download.nvidia.com/compute/redist/jp/v44/tensorflow/tensorflow-2.3.0+nv20.9-cp36-cp36m-linux_aarch64.whl 2.3 pip wheel]
*** [https://developer.download.nvidia.com/compute/redist/jp/v43/tensorflow/tensorflow-2.1.0+nv20.3-cp36-cp36m-linux_aarch64.whl 2.1 pip wheel] &nbsp;(Python 3.6)
+
|-
 +
| JetPack 4.4 || [https://developer.download.nvidia.com/compute/redist/jp/v44/tensorflow/tensorflow-1.15.2+nv20.6-cp36-cp36m-linux_aarch64.whl 1.15.2 pip wheel] || [https://developer.download.nvidia.com/compute/redist/jp/v44/tensorflow/tensorflow-2.2.0+nv20.6-cp36-cp36m-linux_aarch64.whl 2.2 pip wheel]
 +
|-
 +
| JetPack 4.4 DP || [https://developer.download.nvidia.com/compute/redist/jp/v44/tensorflow/tensorflow-1.15.2+nv20.4-cp36-cp36m-linux_aarch64.whl 1.15.2 pip wheel] || [https://developer.download.nvidia.com/compute/redist/jp/v44/tensorflow/tensorflow-2.1.0+nv20.4-cp36-cp36m-linux_aarch64.whl 2.1 pip wheel]
 +
|-
 +
| JetPack 4.3 || [https://developer.download.nvidia.com/compute/redist/jp/v43/tensorflow/tensorflow-1.15.2+nv20.3-cp36-cp36m-linux_aarch64.whl 1.15.2 pip wheel] || [https://developer.download.nvidia.com/compute/redist/jp/v43/tensorflow/tensorflow-2.1.0+nv20.3-cp36-cp36m-linux_aarch64.whl 2.1 pip wheel]
 +
|}
 
* Supports:  JetPack >= 4.2 (Jetson Nano / TX1 / TX2 / Xavier NX / AGX Xavier)
 
* Supports:  JetPack >= 4.2 (Jetson Nano / TX1 / TX2 / Xavier NX / AGX Xavier)
 
* Install Guide:  [https://docs.nvidia.com/deeplearning/frameworks/install-tf-jetson-platform/index.html#prereqs Installing TensorFlow on Jetson]
 
* Install Guide:  [https://docs.nvidia.com/deeplearning/frameworks/install-tf-jetson-platform/index.html#prereqs Installing TensorFlow on Jetson]
Line 46: Line 55:
 
<source lang="bash">
 
<source lang="bash">
 
# install prerequisites
 
# install prerequisites
$ sudo apt-get install libhdf5-serial-dev hdf5-tools libhdf5-dev zlib1g-dev zip libjpeg8-dev
+
$ sudo apt-get install libhdf5-serial-dev hdf5-tools libhdf5-dev zlib1g-dev zip libjpeg8-dev liblapack-dev libblas-dev gfortran
  
 
# install and upgrade pip3
 
# install and upgrade pip3
 
$ sudo apt-get install python3-pip
 
$ sudo apt-get install python3-pip
$ sudo pip3 install -U pip testresources setuptools
+
$ sudo pip3 install -U pip testresources setuptools=49.6.0
  
 
# install the following python packages
 
# install the following python packages
$ sudo pip3 install -U numpy==1.16.1 future==0.17.1 mock==3.0.5 h5py==2.9.0 keras_preprocessing==1.0.5 keras_applications==1.0.8 gast==0.2.2 enum34 futures protobuf
+
$ sudo pip3 install -U numpy==1.16.1 future==0.18.2 mock==3.0.5 h5py==2.10.0 keras_preprocessing==1.1.1 keras_applications==1.0.8 gast==0.2.2 futures protobuf pybind11
  
 
# to install TensorFlow 1.15 for JetPack 4.4:
 
# to install TensorFlow 1.15 for JetPack 4.4:
 
$ sudo pip3 install --pre --extra-index-url https://developer.download.nvidia.com/compute/redist/jp/v44 ‘tensorflow<2’
 
$ sudo pip3 install --pre --extra-index-url https://developer.download.nvidia.com/compute/redist/jp/v44 ‘tensorflow<2’
  
# or install the latest version of TensorFlow (2.1) for JetPack 4.4:
+
# or install the latest version of TensorFlow (2.3) for JetPack 4.4:
 
$ sudo pip3 install --pre --extra-index-url https://developer.download.nvidia.com/compute/redist/jp/v44 tensorflow
 
$ sudo pip3 install --pre --extra-index-url https://developer.download.nvidia.com/compute/redist/jp/v44 tensorflow
  
Line 69: Line 78:
 
* Source:  [https://github.com/pytorch/pytorch https://github.com/pytorch/pytorch]
 
* Source:  [https://github.com/pytorch/pytorch https://github.com/pytorch/pytorch]
 
* Container:  [https://ngc.nvidia.com/catalog/containers/nvidia:l4t-pytorch l4t-pytorch]
 
* Container:  [https://ngc.nvidia.com/catalog/containers/nvidia:l4t-pytorch l4t-pytorch]
* Version:  PyTorch v1.0.0 - v1.5.0
+
* Version:  PyTorch v1.0.0 - v1.6.0
 
* Packages:
 
* Packages:
{{spaces|6}} '''JetPack 4.4 DP'''
+
{{spaces|6}} '''JetPack 4.4 / 4.4.1'''
 +
 
 +
{{spaces|6}} * [https://nvidia.box.com/shared/static/9eptse6jyly1ggt9axbja2yrmj6pbarc.whl PyTorch v1.6.0 pip wheel] (Python 3.6) <br />
 +
{{spaces|6}} * [https://nvidia.box.com/shared/static/cs3xn3td6sfgtene6jdvsxlr366m2dhq.whl PyTorch v1.7.0 pip wheel] (Python 3.6)
 +
 
 +
{{spaces|6}} '''JetPack 4.4 Developer Preview'''
 
{| class="wikitable" style="margin-left:25px"
 
{| class="wikitable" style="margin-left:25px"
 
|-
 
|-
Line 100: Line 114:
 
| v1.4.0 || [https://nvidia.box.com/v/torch-1-4-cp27-jetson-jp43 pip wheel] || [https://nvidia.box.com/v/torch-1-4-cp36-jetson-jp43 pip wheel]
 
| v1.4.0 || [https://nvidia.box.com/v/torch-1-4-cp27-jetson-jp43 pip wheel] || [https://nvidia.box.com/v/torch-1-4-cp36-jetson-jp43 pip wheel]
 
|}  
 
|}  
* As per the [https://github.com/pytorch/pytorch/releases PyTorch Release Notes], Python 2 is not longer supported in PyTorch v1.5.
+
* As per the [https://github.com/pytorch/pytorch/releases PyTorch Release Notes], Python 2 is not longer supported as of PyTorch v1.5 and newer.
 
* Supports:  JetPack >= 4.2 (Jetson Nano / TX1 / TX2 / Xavier NX / AGX Xavier)
 
* Supports:  JetPack >= 4.2 (Jetson Nano / TX1 / TX2 / Xavier NX / AGX Xavier)
 
* Forum Topic:  [https://devtalk.nvidia.com/default/topic/1049071/jetson-nano/pytorch-for-jetson-nano/ devtalk.nvidia.com/default/topic/1049071/jetson-nano/pytorch-for-jetson-nano/]  
 
* Forum Topic:  [https://devtalk.nvidia.com/default/topic/1049071/jetson-nano/pytorch-for-jetson-nano/ devtalk.nvidia.com/default/topic/1049071/jetson-nano/pytorch-for-jetson-nano/]  
Line 106: Line 120:
 
<span style="color: white; background-color: #7BCC70; padding: 5px">'''note''' — the PyTorch and Caffe2 projects have merged, so installing PyTorch will also install Caffe2</span>
 
<span style="color: white; background-color: #7BCC70; padding: 5px">'''note''' — the PyTorch and Caffe2 projects have merged, so installing PyTorch will also install Caffe2</span>
 
<source lang="bash">
 
<source lang="bash">
# for PyTorch v1.4.0, install OpenBLAS
+
# install OpenBLAS and OpenMPI
$ sudo apt-get install libopenblas-base
+
$ sudo apt-get install libopenblas-base libopenmpi-dev
  
 
# Python 2.7 (download pip wheel from above)
 
# Python 2.7 (download pip wheel from above)
Line 113: Line 127:
  
 
# Python 3.6 (download pip wheel from above)
 
# Python 3.6 (download pip wheel from above)
$ pip3 install Cython
+
$ sudo apt-get install python3-pip
$ pip3 install numpy torch-1.4.0-cp36-cp36m-linux_aarch64.whl
+
pip3 install Cython
 +
pip3 install numpy torch-1.6.0-cp36-cp36m-linux_aarch64.whl
 
</source>
 
</source>
 
As per the the [https://github.com/pytorch/pytorch/releases/tag/v1.4.0 PyTorch 1.4 Release Notes], Python 2 support is now deprecated and PyTorch 1.4 is the last version to support Python 2.
 
As per the the [https://github.com/pytorch/pytorch/releases/tag/v1.4.0 PyTorch 1.4 Release Notes], Python 2 support is now deprecated and PyTorch 1.4 is the last version to support Python 2.
 +
 +
== ONNX Runtime ==
 +
 +
[[File:ONNX-Runtime-logo.svg|200px|right]]
 +
 +
* Website: https://microsoft.github.io/onnxruntime/
 +
* Source: https://github.com/microsoft/onnxruntime
 +
* Container: [https://mcr.microsoft.com/azureml/onnxruntime:v.1.4.0-jetpack4.4-l4t-base-r32.4.3 mcr.microsoft.com/azureml/onnxruntime:v.1.4.0-jetpack4.4-l4t-base-r32.4.3]
 +
* Version: 1.4.0, 1.5.2, 1.6.0
 +
* Packages:
 +
** JetPack 4.4/4.4.1 - [https://nvidia.box.com/shared/static/8sc6j25orjcpl6vhq3a4ir8v219fglng.whl 1.4.0 pip wheel (Python 3.6)]
 +
** JetPack 4.4/4.4.1 - [https://nvidia.box.com/shared/static/6lxbakd8zaf2p5nkgcn7ih116iqm1wzm.whl 1.5.2 pip wheel (Python 3.6)]
 +
** JetPack 4.4/4.4.1
 +
*** [https://nvidia.box.com/shared/static/49fzcqa1g4oblwxr3ikmuvhuaprqyxb7.whl 1.6.0 pip wheel (Python 3.6)]
 +
*** [https://nvidia.box.com/shared/static/6rnx40ztx5874v3nvw4fkjzho3h0g3qx.whl 1.6.0 pip wheel (Python 3.7)]
 +
*** [https://nvidia.box.com/shared/static/49fzcqa1g4oblwxr3ikmuvhuaprqyxb7.whl 1.6.0 pip wheel (Python 3.8)]
 +
* Supports: JetPack >= 4.4 (Jetson Nano / TX1 / TX2 / Xavier NX / AGX Xavier)
 +
* Forum Support: https://github.com/microsoft/onnxruntime
 +
* Build from Source: Refer to [https://github.com/microsoft/onnxruntime/blob/master/BUILD.md#nvidia-jetson-tx1tx2nanoxavier these] instructions
 +
* ONNX Runtime 1.6.0 Install instructions
 +
<source lang="bash">
 +
# Download pip wheel from location mentioned above
 +
$ wget https://nvidia.box.com/shared/static/49fzcqa1g4oblwxr3ikmuvhuaprqyxb7.whl -O onnxruntime_gpu-1.6.0-cp36-cp36m-linux_aarch64.whl
 +
 +
# Install pip wheel
 +
$ pip3 install onnxruntime_gpu-1.6.0-cp36-cp36m-linux_aarch64.whl
 +
</source>
  
 
== MXNet ==
 
== MXNet ==
Line 123: Line 165:
 
* Website:  [https://mxnet.apache.org/ https://mxnet.apache.org/]
 
* Website:  [https://mxnet.apache.org/ https://mxnet.apache.org/]
 
* Source:  [https://github.com/apache/incubator-mxnet https://github.com/apache/incubator-mxnet]
 
* Source:  [https://github.com/apache/incubator-mxnet https://github.com/apache/incubator-mxnet]
* Version:  1.4, 1.6
+
* Version:  1.4, 1.6, 1.7
 
* Packages:
 
* Packages:
 
{| class="wikitable" style="margin-left:25px"
 
{| class="wikitable" style="margin-left:25px"
Line 132: Line 174:
 
|-
 
|-
 
| v1.6 (JetPack 4.3) || [https://drive.google.com/open?id=1i-wgDa8rVv-9l-iR8iEhWNSLt7A9bRwZ pip wheel] || [https://drive.google.com/open?id=1acFgoFaw9arP1I6VZFR3Jjsm6TNkpR0v pip wheel]
 
| v1.6 (JetPack 4.3) || [https://drive.google.com/open?id=1i-wgDa8rVv-9l-iR8iEhWNSLt7A9bRwZ pip wheel] || [https://drive.google.com/open?id=1acFgoFaw9arP1I6VZFR3Jjsm6TNkpR0v pip wheel]
 +
|-
 +
| v1.7 (JetPack 4.4) || - || [https://forums.developer.nvidia.com/t/i-was-unable-to-compile-and-install-mxnet1-5-with-tensorrt-on-the-jetson-nano-is-there-someone-have-compile-it-please-help-me-thank-you/111303/27 forum post]
 
|}   
 
|}   
* Supports:  JetPack 4.2.x, JetPack 4.3 (Jetson Nano / TX1 / TX2 / AGX Xavier)
+
* Supports:  JetPack >= 4.2 (Jetson Nano / TX1 / TX2 / Xavier NX / AGX Xavier)
* Forum Topic: [https://devtalk.nvidia.com/default/topic/1049293/#5326170 v1.4 (JetPack 4.2.x)] | [https://devtalk.nvidia.com/default/topic/1070767/#5426042 v1.6 (JetPack 4.3)]
+
* Forum Topics: [https://devtalk.nvidia.com/default/topic/1049293/#5326170 v1.4] | [https://forums.developer.nvidia.com/t/i-was-unable-to-compile-and-install-mxnet1-5-with-tensorrt-on-the-jetson-nano-is-there-someone-have-compile-it-please-help-me-thank-you/111303/3 v1.6] | [https://forums.developer.nvidia.com/t/i-was-unable-to-compile-and-install-mxnet1-5-with-tensorrt-on-the-jetson-nano-is-there-someone-have-compile-it-please-help-me-thank-you/111303/27 v1.7]
* Build from Source: [https://devtalk.nvidia.com/default/topic/1049293/#5326119 https://devtalk.nvidia.com/default/topic/1049293/#5326119]
+
* Build from Source: [https://forums.developer.nvidia.com/t/i-was-unable-to-compile-and-install-mxnet-on-the-jetson-nano-is-there-an-official-installation-tutorial/72259/8 v1.6] | [https://forums.developer.nvidia.com/t/i-was-unable-to-compile-and-install-mxnet1-5-with-tensorrt-on-the-jetson-nano-is-there-someone-have-compile-it-please-help-me-thank-you/111303/27 v1.7]
 +
 
 +
'''MXNet 1.7 Install Instructions:'''
  
 +
<source lang="bash">
 +
$ wget https://raw.githubusercontent.com/AastaNV/JEP/master/MXNET/autoinstall_mxnet.sh
 +
$ sudo chmod +x autoinstall_mxnet.sh
 +
$ ./autoinstall_mxnet.sh <Nano/TX1/TX2/Xavier>
 +
</source>
 +
 +
'''MXNet 1.4 / 1.6 Install Instructions:'''
 
<source lang="bash">
 
<source lang="bash">
 
# Python 2.7
 
# Python 2.7
Line 170: Line 223:
 
* Source:  [https://github.com/dusty-nv/jetson-inference https://github.com/dusty-nv/jetson-inference]
 
* Source:  [https://github.com/dusty-nv/jetson-inference https://github.com/dusty-nv/jetson-inference]
 
* Supports:  Jetson Nano, TX1, TX2, Xavier NX, AGX Xavier
 
* Supports:  Jetson Nano, TX1, TX2, Xavier NX, AGX Xavier
* Build from Source:
+
* [https://github.com/dusty-nv/jetson-inference/blob/master/docs/aux-docker.md Run the Container]
 +
 
 +
<source lang="bash">
 +
$ git clone --recursive https://github.com/dusty-nv/jetson-inference
 +
$ cd jetson-inference
 +
$ docker/run.sh
 +
</source>
 +
 
 +
* [https://github.com/dusty-nv/jetson-inference/blob/master/docs/building-repo-2.md Build from Source]
  
 
<source lang="bash">
 
<source lang="bash">
Line 387: Line 448:
 
=== Isaac SIM ===
 
=== Isaac SIM ===
  
* Downloads: [https://developer.nvidia.com/isaac/downloads https://developer.nvidia.com/isaac/downloads]
+
* Website: [https://developer.nvidia.com/isaac-sdk https://developer.nvidia.com/isaac-sdk]
 
* Documentation:  [http://docs.nvidia.com/isaac/isaac_sim/index.html http://docs.nvidia.com/isaac/isaac_sim/index.html]
 
* Documentation:  [http://docs.nvidia.com/isaac/isaac_sim/index.html http://docs.nvidia.com/isaac/isaac_sim/index.html]
  
Line 457: Line 518:
 
* Installed by default in JetPack-L4T
 
* Installed by default in JetPack-L4T
  
To enable GPU passthrough, enable access to these device nodes with the <code>--device</code> flag when launching Docker containers:
+
Launch your container with <code>--runtime nvidia</code> to enable GPU-passthrough.
 
+
Launch your container with <code>--volume /tmp/argus_socket:/tmp/argus_socket</code> to enable access to MIPI CSI cameras.
<source lang="bash">
 
/dev/nvhost-ctrl
 
/dev/nvhost-ctrl-gpu
 
/dev/nvhost-prof-gpu
 
/dev/nvmap
 
/dev/nvhost-gpu
 
/dev/nvhost-as-gpu
 
</source>
 
 
 
The <code>/usr/lib/aarch64-linux-gnu/tegra</code> directory also needs mounted.
 
  
Below is an example command line for launching Docker with access to the GPU:
+
See [https://github.com/NVIDIA/nvidia-docker/wiki/NVIDIA-Container-Runtime-on-Jetson https://github.com/NVIDIA/nvidia-docker/wiki/NVIDIA-Container-Runtime-on-Jetson] for more documentation on using Docker on Jetson.
 
 
<source lang="bash">
 
docker run --device=/dev/nvhost-ctrl --device=/dev/nvhost-ctrl-gpu --device=/dev/nvhost-prof-gpu --device=/dev/nvmap --device=/dev/nvhost-gpu --device=/dev/nvhost-as-gpu -v /usr/lib/aarch64-linux-gnu/tegra:/usr/lib/aarch64-linux-gnu/tegra <container-name>
 
</source>
 
  
 
To enable IPVLAN for Docker Swarm mode:  [https://blog.hypriot.com/post/nvidia-jetson-nano-build-kernel-docker-optimized/ https://blog.hypriot.com/post/nvidia-jetson-nano-build-kernel-docker-optimized/]
 
To enable IPVLAN for Docker Swarm mode:  [https://blog.hypriot.com/post/nvidia-jetson-nano-build-kernel-docker-optimized/ https://blog.hypriot.com/post/nvidia-jetson-nano-build-kernel-docker-optimized/]

Revision as of 13:07, 22 December 2020

This page contains instructions for installing various open source add-on packages and frameworks on NVIDIA Jetson, in addition to a collection of DNN models for inferencing.

Below are links to container images and precompiled binaries built for aarch64 (arm64) architecture. These are intended to be installed on top of JetPack.

Note that JetPack comes with various pre-installed components such as the L4T kernel, CUDA Toolkit, cuDNN, TensorRT, VisionWorks, OpenCV, GStreamer, Docker, and more.

Machine Learning

Jetson is able to natively run the full versions of popular machine learning frameworks, including TensorFlow, PyTorch, Caffe2, Keras, and MXNet.

There are also helpful deep learning examples and tutorials available, created specifically for Jetson - like Hello AI World and JetBot.

Docker Containers

NGC containers.png

There are ready-to-use ML and data science containers for Jetson hosted on NVIDIA GPU Cloud (NGC), including the following:

  • l4t-tensorflow - TensorFlow for JetPack 4.4 (and newer)
  • l4t-pytorch - PyTorch for JetPack 4.4 (and newer)
  • l4t-ml - TensorFlow, PyTorch, scikit-learn, scipy, pandas, JupyterLab, ect.

If you wish to modify them, the Dockerfiles and build scripts for these containers can be found on GitHub.

There are also following ready-to-use ML containers for Jetson hosted by our partners:

These containers are highly recommended to reduce the installation time of the frameworks below, and for beginners getting started.


TensorFlow

TensorFlow Logo.png
TensorFlow 1.x TensorFlow 2.x
JetPack 4.4.1 1.15.3 pip wheel 2.3 pip wheel
JetPack 4.4 1.15.2 pip wheel 2.2 pip wheel
JetPack 4.4 DP 1.15.2 pip wheel 2.1 pip wheel
JetPack 4.3 1.15.2 pip wheel 2.1 pip wheel
# install prerequisites
$ sudo apt-get install libhdf5-serial-dev hdf5-tools libhdf5-dev zlib1g-dev zip libjpeg8-dev liblapack-dev libblas-dev gfortran

# install and upgrade pip3
$ sudo apt-get install python3-pip
$ sudo pip3 install -U pip testresources setuptools=49.6.0 

# install the following python packages
$ sudo pip3 install -U numpy==1.16.1 future==0.18.2 mock==3.0.5 h5py==2.10.0 keras_preprocessing==1.1.1 keras_applications==1.0.8 gast==0.2.2 futures protobuf pybind11

# to install TensorFlow 1.15 for JetPack 4.4:
$ sudo pip3 install --pre --extra-index-url https://developer.download.nvidia.com/compute/redist/jp/v44 ‘tensorflow<2# or install the latest version of TensorFlow (2.3) for JetPack 4.4:
$ sudo pip3 install --pre --extra-index-url https://developer.download.nvidia.com/compute/redist/jp/v44 tensorflow

PyTorch (Caffe2)

PyTorch Logo.png

       JetPack 4.4 / 4.4.1

       * PyTorch v1.6.0 pip wheel (Python 3.6)
       * PyTorch v1.7.0 pip wheel (Python 3.6)

       JetPack 4.4 Developer Preview

Python 2.7 Python 3.6
v1.2.0 pip wheel pip wheel
v1.3.0 pip wheel pip wheel
v1.4.0 pip wheel pip wheel
v1.5.0 pip wheel

       JetPack 4.2 / 4.3

Python 2.7 Python 3.6
v1.0.0 pip wheel pip wheel
v1.1.0 pip wheel pip wheel
v1.2.0 pip wheel pip wheel
v1.3.0 pip wheel pip wheel
v1.4.0 pip wheel pip wheel

note — the PyTorch and Caffe2 projects have merged, so installing PyTorch will also install Caffe2

# install OpenBLAS and OpenMPI
$ sudo apt-get install libopenblas-base libopenmpi-dev

# Python 2.7 (download pip wheel from above)
$ pip install future torch-1.4.0-cp27-cp27mu-linux_aarch64.whl

# Python 3.6 (download pip wheel from above)
$ sudo apt-get install python3-pip
pip3 install Cython
pip3 install numpy torch-1.6.0-cp36-cp36m-linux_aarch64.whl

As per the the PyTorch 1.4 Release Notes, Python 2 support is now deprecated and PyTorch 1.4 is the last version to support Python 2.

ONNX Runtime

ONNX-Runtime-logo.svg
# Download pip wheel from location mentioned above
$ wget https://nvidia.box.com/shared/static/49fzcqa1g4oblwxr3ikmuvhuaprqyxb7.whl -O onnxruntime_gpu-1.6.0-cp36-cp36m-linux_aarch64.whl

# Install pip wheel
$ pip3 install onnxruntime_gpu-1.6.0-cp36-cp36m-linux_aarch64.whl

MXNet

MXNet Logo.png
Python 2.7 Python 3.6
v1.4 (JetPack 4.2.x) pip wheel pip wheel
v1.6 (JetPack 4.3) pip wheel pip wheel
v1.7 (JetPack 4.4) - forum post
  • Supports: JetPack >= 4.2 (Jetson Nano / TX1 / TX2 / Xavier NX / AGX Xavier)
  • Forum Topics: v1.4 | v1.6 | v1.7
  • Build from Source: v1.6 | v1.7

MXNet 1.7 Install Instructions:

$ wget https://raw.githubusercontent.com/AastaNV/JEP/master/MXNET/autoinstall_mxnet.sh
$ sudo chmod +x autoinstall_mxnet.sh
$ ./autoinstall_mxnet.sh <Nano/TX1/TX2/Xavier>

MXNet 1.4 / 1.6 Install Instructions:

# Python 2.7
sudo apt-get install -y git build-essential libatlas-base-dev libopencv-dev graphviz python-pip
sudo pip install mxnet-1.4.0-cp27-cp27mu-linux_aarch64.whl

# Python 3.6
sudo apt-get install -y git build-essential libatlas-base-dev libopencv-dev graphviz python3-pip
sudo pip install mxnet-1.4.0-cp36-cp36m-linux_aarch64.whl

Keras

Keras Logo.png

First, install TensorFlow from above.

# beforehand, install TensorFlow (https://eLinux.org/Jetson_Zoo#TensorFlow)
$ sudo apt-get install -y build-essential libatlas-base-dev gfortran
$ sudo pip install keras

Hello AI World

Hello-AI-World-CV.png
$ git clone --recursive https://github.com/dusty-nv/jetson-inference
$ cd jetson-inference
$ docker/run.sh
# download the repo
$ git clone --recursive https://github.com/dusty-nv/jetson-inference
$ cd jetson-inference

# configure build tree
$ mkdir build
$ cd build
$ cmake ../

# build and install
$ make -j$(nproc)
$ sudo make install
$ sudo ldconfig

Model Zoo

Below are various DNN models for inferencing on Jetson with support for TensorRT. Included are links to code samples with the model and the original source.

Note that many other models are able to run natively on Jetson by using the Machine Learning frameworks like those listed above.

For performance benchmarks, see these resources:

Classification

Network Dataset Resolution Classes Framework Format TensorRT Samples Original
AlexNet ILSVRC12 224x224 1000 Caffe caffemodel Yes Hello AI World BVLC
GoogleNet ILSVRC12 224x224 1000 Caffe caffemodel Yes Hello AI World BVLC
ResNet-18 ILSVRC15 224x224 1000 Caffe caffemodel Yes Hello AI World GitHub
ResNet-50 ILSVRC15 224x224 1000 Caffe caffemodel Yes Hello AI World GitHub
ResNet-101 ILSVRC15 224x224 1000 Caffe caffemodel Yes Hello AI World GitHub
ResNet-152 ILSVRC15 224x224 1000 Caffe caffemodel Yes Hello AI World GitHub
VGG-16 ILSVRC14 224x224 1000 Caffe caffemodel Yes Hello AI World GitHub
VGG-19 ILSVRC14 224x224 1000 Caffe caffemodel Yes Hello AI World GitHub
Inception-v4 ILSVRC12 299x299 1000 Caffe caffemodel Yes Hello AI World GitHub
Inception-v4 ILSVRC12 299x299 1000 TensorFlow TF-TRT (UFF) Yes tf_trt_models TF-slim
Mobilenet-v1 ILSVRC12 224x224 1000 TensorFlow TF-TRT (UFF) Yes tf_trt_models TF-slim

Object Detection

Network Dataset Resolution Classes Framework Format TensorRT Samples Original
SSD-Mobilenet-v1 COCO 300x300 91 TensorFlow UFF Yes Hello AI World
TRT_object_detection
TF Zoo
SSD-Mobilenet-v2 COCO 300x300 91 TensorFlow UFF Yes TF Zoo
SSD-Inception-v2 COCO 300x300 91 TensorFlow UFF Yes TF Zoo
YOLO-v2 COCO 608x608 80 Darknet Custom Yes trt-yolo-app YOLO
YOLO-v3 COCO 608x608 80 Darknet Custom Yes trt-yolo-app YOLO
Tiny YOLO-v3 COCO 416x416 80 Darknet Custom Yes trt-yolo-app YOLO
Tiny YOLO-v3 COCO 416x416 80 Darknet Custom Yes trt-yolo-app YOLO
Faster-RCNN Pascal VOC 500x375 21 Caffe caffemodel Yes TensorRT sample GitHub

Segmentation

Network Dataset Resolution Classes Framework Format TensorRT Samples Original
FCN-ResNet18 Cityscapes 2048x1024 21 PyTorch ONNX Yes Hello AI World GitHub
FCN-ResNet18 Cityscapes 1024x512 21 PyTorch ONNX Yes Hello AI World GitHub
FCN-ResNet18 Cityscapes 512x256 21 PyTorch ONNX Yes Hello AI World GitHub
FCN-ResNet18 DeepScene 864x480 5 PyTorch ONNX Yes Hello AI World GitHub
FCN-ResNet18 DeepScene 576x320 5 PyTorch ONNX Yes Hello AI World GitHub
FCN-ResNet18 DeepScene 864x480 5 PyTorch ONNX Yes Hello AI World GitHub
FCN-ResNet18 Multi-Human 640x360 21 PyTorch ONNX Yes Hello AI World GitHub
FCN-ResNet18 Multi-Human 512x320 21 PyTorch ONNX Yes Hello AI World GitHub
FCN-ResNet18 Pascal VOC 512x320 21 PyTorch ONNX Yes Hello AI World GitHub
FCN-ResNet18 Pascal VOC 320x320 21 PyTorch ONNX Yes Hello AI World GitHub
FCN-ResNet18 SUN RGB-D 640x512 21 PyTorch ONNX Yes Hello AI World GitHub
FCN-ResNet18 SUN RGB-D 512x400 21 PyTorch ONNX Yes Hello AI World GitHub
FCN-Alexnet Cityscapes 2048x1024 21 Caffe caffemodel Yes Hello AI World GitHub
FCN-Alexnet Cityscapes 1024x512 21 Caffe caffemodel Yes Hello AI World GitHub
FCN-Alexnet Pascal VOC 500x356 21 Caffe caffemodel Yes Hello AI World GitHub
U-Net Carvana 512x512 1 TensorFlow UFF Yes Nano Benchmarks GitHub

Pose Estimation

Network Dataset Resolution Classes Framework Format TensorRT Samples Original
ResNet18_att COCO 224x224 16 PyTorch torch2trt Yes trt_pose GitHub
DenseNet121_att COCO 224x224 16 PyTorch torch2trt Yes trt_pose GitHub

Computer Vision

OpenCV

OpenCV Logo.png

Robotics

ROS

Ros logo.png
# enable all Ubuntu packages:
$ sudo apt-add-repository universe
$ sudo apt-add-repository multiverse
$ sudo apt-add-repository restricted

# add ROS repository to apt sources
$ sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
$ sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

# install ROS Base
$ sudo apt-get update
$ sudo apt-get install ros-melodic-ros-base

# add ROS paths to environment
sudo sh -c 'echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc'

NVIDIA Isaac SDK

Isaac Gems.jpg

Isaac SIM

IoT / Edge

AWS Greengrass

Greengrass Logo.png

1. Create Greengrass user group:

$ sudo adduser --system ggc_user
$ sudo addgroup --system ggc_group

2. Setup your AWS account and Greengrass group during this page: https://docs.aws.amazon.com/greengrass/latest/developerguide/gg-config.html
    After downloading your unique security resource keys to your Jetson that were created in this step, proceed to #3 below.

3. Download the AWS IoT Greengrass Core Software (v1.9.1) for ARMv8 (aarch64):

$ wget https://d1onfpft10uf5o.cloudfront.net/greengrass-core/downloads/1.9.1/greengrass-linux-aarch64-1.9.1.tar.gz

4. Following step #4 from this page, extract Greengrass core and your unique security keys on your Jetson:

$ sudo tar -xzvf greengrass-linux-aarch64-1.9.1.tar.gz -C /
$ sudo tar -xzvf <hash>-setup.tar.gz -C /greengrass   # these are the security keys downloaded above

5. Download AWS ATS endpoint root certificate (CA):

$ cd /greengrass/certs/
$ sudo wget -O root.ca.pem https://www.amazontrust.com/repository/AmazonRootCA1.pem

6. Start Greengrass core on your Jetson:

$ cd /greengrass/ggc/core/
$ sudo ./greengrassd start

You should get a message in your terminal Greengrass sucessfully started with PID: xxx

NVIDIA DeepStream

DeepStream 30 Stream.png

Containers

Docker

Docker Logo.png

Launch your container with --runtime nvidia to enable GPU-passthrough. Launch your container with --volume /tmp/argus_socket:/tmp/argus_socket to enable access to MIPI CSI cameras.

See https://github.com/NVIDIA/nvidia-docker/wiki/NVIDIA-Container-Runtime-on-Jetson for more documentation on using Docker on Jetson.

To enable IPVLAN for Docker Swarm mode: https://blog.hypriot.com/post/nvidia-jetson-nano-build-kernel-docker-optimized/

Kubernetes

Kubernetes-Logo.png

To configure L4T kernel for K8S: https://medium.com/@jerry_liang/deploy-gpu-enabled-kubernetes-pod-on-nvidia-jetson-nano-ce738e3bcda9
See also: https://medium.com/jit-team/building-a-gpu-enabled-kubernets-cluster-for-machine-learning-with-nvidia-jetson-nano-7b67de74172a