【边缘端环境配置】英伟达Jetson系列安装pytorch/tensorflow/ml/tensorrt环境(docker一键拉取)
Jetson系列板卡是算法边缘端部署无法避开的一道坎,作为英伟达旗下产品,可以使用tensorrt加速,因此用户较多,生态较好;但是由于是ARM架构,因此无法使用x86部署方式,用过的都有一堆血泪史可以诉说,以下是英伟达官方介绍:
NVIDIA® Jetson™ 是适用于自主机器和其他嵌入式应用的先进平台。该平台包括 Jetson模组(外形小巧的高性能计算机)、用于加速软件的 NVIDIA JetPack™ SDK,以及包含传感器、SDK、服务和产品的生态系统,从而加快开发速度。Jetson 与其他 NVIDIA 平台上使用的相同 AI软件和云原生工作流兼容,并提供客户构建软件定义的自主机器所需的节能性能。
0.JetPack
Jetson Development Pack (JetPack) 是一个按需提供的一体化软件包,捆绑并安装了适用于 NVIDIA Jetson 嵌入式平台的所有开发用软件工具,JetPack 包括适用于以下功能的工具:
深度学习:TensorRT、cuDNN、NVIDIA DIGITS™ 工作流程
计算机视觉:NVIDIA VisionWorks、OpenCV
GPU 计算:NVIDIA CUDA、CUDA 库
多媒体:ISP 支持、摄像头图像、视频 CODEC
同时,它还包括 ROS 兼容性、OpenGL、高级开发者工具等等。
在选择JetPack的时候需要注意其版本号,JetPack 4.x版本使用的是ubuntu18.04+cuda10.2+tensorrt8.2及以下版本,而JetPack 5.x版本使用的是ubuntu20.04+cuda11.x+tensorrt8.4及以上版本;秉持着选旧不选新的原则,推荐选择JetPack 4.6.x版本,如果你想使用yolov7以上的tensorrt加速,建议选择JetPack 5.0.2版本,因为JetPack 4.x版本最高支持的tensorrt只有8.2.1,而将onnx转engine的时候会报错,这个bug在8.4.1的时候修复了(当然也有可能只是部分人的问题)
JetPack 5.0.2 是生产级质量版本,可取代仅用于开发的 JetPack 5.0/JetPack 5.0.1开发者预览版本。JetPack 5.0.2 包括搭载 Linux 内核 5.10 的 Jetson Linux 35.1 BSP、基于Ubuntu 20.04 的根文件系统、基于 UEFI 的引导加载程序以及作为可信执行环境的 OP-TEE。JetPack 5.0.2 包括Jetson 上的新版计算栈,配备了 CUDA 11.4、TensorRT 8.4.1 和 cuDNN 8.4.1。
1.安装输入法
工欲善其事必先利其器,而输入法是我们通向未知世界的大门钥匙,在jetson安装谷歌拼音相对比较简单,可以参考这篇教程:
Jetson Nano安装中文输入法
2.安装docker和nvidia-docker
本文推荐使用docker来配置我们的环境,第一个是因为他安装相对方便,第二个是因为安装失败也不会影响我们宿主机的环境;一般烧录完系统后docker和nvidia-docker是系统自带的,但是有时候也会出现一些意外,这时就需要重新安装,安装教程参看这篇:
NVIDIA Jetson板子上安装nvidia docker
3.拉取l4t-pytorch镜像
先去英伟达官方提供的docker拉取地址,找到自己想要的docker包
NVIDIA L4T PyTorch官方地址
通过Copy Image Path可以将docker仓库复制到剪切栏,粘贴到终端即可:
sudo docker pull nvcr.io/nvidia/l4t-pytorch:r35.1.0-pth1.13-py3
sudo docker run -it --gpus all --restart always --name torch -p 6010:6010 -w /workspace -v /home/xxx/:/workspace nvcr.io/nvidia/l4t-pytorch:r35.1.0-pth1.13-py3 /bin/bash
进入容器后,可以使用pip3 list
查看已经安装了哪些包,这个仓库里是不带tensorrt的,如果需要额外安装tensorrt的话,需要从sdk manager
中下载对应jetpack的tensorrt安装包进行映射安装。
4.拉取l4t-tensorflow镜像
拉取tensorflow的方式和pytorch一样,直接进入拉取即可
NVIDIA L4T Tensorflow官方地址
5.拉取l4t-ml镜像
l4t-ml集成了pytorch、Tensorflow、pandas等多个框架,以5.0.2版本为例,有如下包:
- TensorFlow 1.15.5
- PyTorch v1.12.0
- torchvision v0.13.0
- torchaudio v0.12.0
- onnx 1.12.0
- CuPy 10.2.0
- numpy 1.22.4
- numba 0.56.0
- PyCUDA 2022.1
- OpenCV 4.5.0 (with CUDA)
- pandas 1.4.3
- scipy 1.9.0
- scikit-learn 1.1.1
- JupyterLab 3.4.4
因此,l4t-ml镜像中还包含了cuda加速的opencv,建议直接拉这个镜像即可:
NVIDIA L4T ML官方地址
6.拉取tensorrt镜像
tensorrt镜像的拉取方式和上述一致,但是里面只有cuda+cudnn+tensorrt基础环境,如果需要配置pytorch或者tensorflow需要自行安装
NVIDIA L4T TensorRT官方地址
- pytorch的安装可以直接使用对应的编译好的whl安装包
PyTorch for Jetson whl下载地址 - torchvision则需要去github下载,然后本地编译安装
torchvision github地址
TensorFlow的安装方式
TensorFlow地址
7.镜像换源
通过修改/etc/apt/sources.list
,可以将容器内的apt源换为国内源(宿主机也一样)
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-security main restricted universe multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ xenial main multiverse restricted universe # for opencv
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-proposed main restricted universe multiverse
8.其他
(1)设置开机风扇自启
执行以下命令可以手动开启风扇,“150” 表示 pwm 速度,但是此命令重启失效,因此需设置开机自启动此命令,添加至 /etc/rc.local
脚本中
sudo sh -c "echo 150 > /sys/devices/pwm-fan/target_pwm
(2)安装miniconda
进入miniconda官网,下载arm架构版本的miniconda
官网链接
(3)下载vscode
vscode作为轻量级代码工具,怎能少的了它?
vscode下载地址