当前环境:jetpack4.4DP、jetson nano
注:适用于jetpack>=4.2和其他jetson开发板,如Xavier AGX、NX、TX2
前言
需要在jetpack4.4DP环境的Jetson开发板里安装Tensorrt的docker容器(Tensorrt基于jetpack4.4DP)。官网提供的是Dockerfile的安装方式,详情见
官网
。不知道NVIDIA有没有更新这个bug:拉取的基础镜像是基于X86架构,而Jetson是基于ARM架构。安装难点在于Tensorrt官网上没有提供基于Jetson的单独安装包,所以对于这一块就比较陌生。下面是我的解决方案,仅供参考。此方案可适用于jetpack的其他版本,只需要在配置环境时选择自己要用的版本即可。
一、拉取docker基础镜像卸载基础镜像中的CUDA
1、这里将官方提供的tensorflow镜像作为基础镜像,镜像地址
https://ngc.nvidia.com/catalog/containers/nvidia:l4t-tensorflow
,在jetson nano命令窗口输入指令
sudo docker pull nvcr.io/nvidia/l4t-tensorflow:r32.4.3-tf1.15-py3
注:jetpack的版本匹配问题,上述镜像是jetpack4.4DP
2、进去docker并删除cuda
(1)使用以下指令进入docker
sudo docker run -it nvcr.io/nvidia/l4t-tensorflow:r32.4.2-tf1.15-py3 /bin/bash
(2)由于我们接下来要重新安装cuda,所以使用以下指令删除原始cuda
sudo apt-get –purge remove “cublas” “cuda*”
二、下载jetson nano 所需要的安装包
由于官网暂时没有提供关于Jetson的对应安装文件,所以我们需要从SDK Manager上下载到本地,然后再进行安装。
1、在一台ubuntu host上安装sdkmanager,下载对应的jetson和jetpack安装文件到host本地。如下图所示,勾选下方的Download now. Install later。左侧可以看到下载路径。
2、下载完成后,安装文件打包并传送给容器。
三、配置TensorRT环境
首先进入容器,进入到上述打包的安装文件目录下,安装方式与X86架构的有所不同,请按顺序安装。
1、安装CUDA
进入下载好的文件包中依次输入以下指令
sudo dpkg -i cuda-repo-l4t-10-2-local-10.2.89_1.0-1_arm64.deb
sudo apt-key add /var/cuda-repo-10-2-local-10.2.89/7fa2af80.pub
sudo apt-get -y update
sudo apt-get -y install cuda-toolkit-10-2
2、安装Cudnn
进入下载好的文件包中依次输入以下指令
sudo dpkg -i libcudnn8_8.0.0.180-1+cuda10.2_arm64.deb
sudo dpkg -i libcudnn8-dev_8.0.0.180-1+cuda10.2_arm64.deb
sudo dpkg -i libcudnn8-doc_8.0.0.180-1+cuda10.2_amd64.deb
3、安装TensorRT
进入下载好的文件包中依次输入以下指令
sudo dpkg -i libnvinfer7_7.1.0-1+cuda10.2_arm64.deb
sudo dpkg -i libnvinfer-dev_7.1.0-1+cuda10.2_arm64.deb
sudo dpkg -i libnvparsers7_7.1.0-1+cuda10.2_arm64.deb
sudo dpkg -i libnvparsers-dev_7.1.0-1+cuda10.2_arm64.deb
sudo dpkg -i libnvinfer-plugin7_7.1.0-1+cuda10.2_arm64.deb
sudo dpkg -i libnvinfer-plugin-dev_7.1.0-1+cuda10.2_arm64.deb
sudo dpkg -i libnvonnxparsers7_7.1.0-1+cuda10.2_arm64.deb
sudo dpkg -i libnvonnxparsers-dev_7.1.0-1+cuda10.2_arm64.deb
sudo dpkg -i libnvinfer-bin_7.1.0-1+cuda10.2_arm64.deb
sudo dpkg -i libnvinfer-samples_7.1.0-1+cuda10.2_all.deb
sudo dpkg -i libnvinfer-doc_7.1.0-1+cuda10.2_all.deb
sudo dpkg -i graphsurgeon-tf_7.1.0-1+cuda10.2_arm64.deb
sudo dpkg -i uff-converter-tf_7.1.0-1+cuda10.2_arm64.deb
sudo dpkg -i python3-libnvinfer_7.1.0-1+cuda10.2_arm64.deb
sudo dpkg -i python3-libnvinfer-dev_7.1.0-1+cuda10.2_arm64.deb
sudo dpkg -i tensorrt_7.1.0.16-1+cuda10.2_arm64.deb
4、验证
dpkg -l | grep TensorRT
如下图所示则安装成功