开始使用 Jetson Nano
1. 安装硬件板块
有用的信息
- Jetson Nano 官方指南,另外有 中文版,建议阅读英文版以确保最新
- Jetson Nano 官方指南 PDF
- Waveshare Wiki: Jetson Nano Case (C),另外有 中文版
在购买官方 Jetson 开发板时其模块已经安装完成,为了更好地使用 Jetson Nano,推荐购买 Waveshare 系列的保护壳。
但是不同的 Nano 版型和 Waveshare Jetson Nano Case 的版型有所不同,请确认是正确的版本再购买。
渠道商的产品差异
不同的提供商的 Jetson Nano 略有差异,例如 B01 型号有不同的版型,也有包含 eMMC 的版型,如果是这些板块请到对应官网阅读使用说明。
这里使用的是金属壳套装(即 C 型号),请参考 官方 Wiki 以进行适配安装,其他型号同理。
有一些可选的硬件:
- 摄像头
- 无线网卡
- TF 卡
可任意选择,以方便硬件开发。
2. 安装系统
推荐参考 Jetson Nano 官方指南 进行安装,安装系统时最好有显示屏,完成初始化配置后可以使用 SSH 连接。
下载 Jetson Nano 系统镜像,最新版下载地址。如果需要其他版本的镜像,请到 下载中心 查看,下载中心同样有中文版:下载中心(中文)。
使用 Rufus 或者 balenaEtcher 等烧录软件,烧录下载得到的镜像文件到 U 盘或者 SD 卡。建议容量大于等于 64 GB,可能会安装各种驱动和软件。
通过 U 盘或 SD 卡启动即可。
3. 安装开发基本环境
此环境可以基于不同版本的 Python,其对应版本可参考 官方博客,本文基于官方镜像的 Python 3.6。不同的版本使用 JetPack 版本也不同,本文支持的 JetPack 版本:
- JetPack 4.4 (L4T R32.4.3)
- JetPack 4.4.1 (L4T R32.4.4)
- JetPack 4.5 (L4T R32.5.0)
- JetPack 4.5.1 (L4T R32.5.1)
- JetPack 4.6 (L4T R32.6.1)
3.1 设置环境
更新源:
sudo apt update
sudo apt upgrade
更新 pip
和镜像:
sudo apt install python3-pip
python3 -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --upgrade pip
pip3 config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
发行版本
下面的设置基于 Ubuntu 18,其他版本请参考官方网站。
安装 CUDA 工具包和 cuDNN:
sudo apt install cuda-toolkit-10-2
sudo apt install libcudnn8
安装 TensorRT 和 TensorRT Python 包:
sudo apt install nvidia-tensorrt
sudo apt install python3-libnvinfer
添加 CUDA 工具路径到 PATH:
echo 'export PATH=$PATH:/usr/local/cuda-10.2/bin' >> ~/.bashrc
source ~/.bashrc
安装 VPI:
sudo apt install libnvvpi1 vpi1-dev vpi1-samples vpi1-demos
3.2 安装 PyTorch
请确保选择正确的 PyTorch 和 Torchvision 版本。
其中 v0.8.0
和 Python 3.6 对应,其他版本对应表如下。
PyTorch 版本 | Torchvision 版本 |
---|---|
PyTorch v1.6 | torchvision v0.7.0 |
PyTorch v1.7 | torchvision v0.8.1 |
PyTorch v1.8 | torchvision v0.9.0 |
PyTorch v1.9 | torchvision v0.10.0 |
PyTorch v1.10 | torchvision v0.11.1 |
PyTorch v1.11 | torchvision v0.12.0 |
PyTorch v1.12 | torchvision v0.13.0 |
PyTorch v1.6.0 到 PyTorch v1.10.0 使用 Python 3.6,PyTorch v1.11.0 到 PyTorch v1.12.0 使用 Python 3.8。
wget https://nvidia.box.com/shared/static/p57jwntv436lfrd78inwl7iml6p13fzh.whl -O torch-1.8.0-cp36-cp36m-linux_aarch64.whl
sudo apt install python3-pip libopenblas-base libopenmpi-dev libomp-dev
pip3 install Cython
pip3 install numpy torch-1.8.0-cp36-cp36m-linux_aarch64.whl
如果下载不方便可以在电脑上下载后传到 Nano 上。
3.3 安装 Torchvision
先安装 Pillow:
pip3 install pillow
然后执行下面的命令编译安装 Torchvision:
sudo apt install libjpeg-dev zlib1g-dev libpython3-dev libavcodec-dev libavformat-dev libswscale-dev
git clone --branch v0.8.0 https://github.com/pytorch/vision torchvision
cd torchvision
export BUILD_VERSION=0.8.0
python3 setup.py install --user
检查安装结果:
import torch
print(torch.__version__)
print('CUDA available: ' + str(torch.cuda.is_available()))
print('cuDNN version: ' + str(torch.backends.cudnn.version()))
a = torch.cuda.FloatTensor(2).zero_()
print('Tensor a = ' + str(a))
b = torch.randn(2).cuda()
print('Tensor b = ' + str(b))
c = a + b
print('Tensor c = ' + str(c))
import torchvision
print(torchvision.__version__)
3.4 安装 torch2trt
pip3 install packaging
git clone https://github.com/NVIDIA-AI-IOT/torch2trt --depth 1
cd torch2trt
sudo python3 setup.py install --plugins
4. 高性能模式
除了 无桌面模式 和 swap 虚拟内存 外,还可以提高功耗和解除硬件限制来提高性能。
查看当前工作模式:
sudo nvpmodel -q
将工作模式设置为最大功率(10 W):
sudo nvpmodel -m 0
将工作模式设定为低功率(5 W):
sudo nvpmodel -m 1
解除硬件限制:
sudo jetson_clocks