Jetson orin nano深度学习环境搭建详细教程(包含miniconda(miniforge)、cuda、cudnn、paddle、pyqt5、mmcv)及问题汇总及解决
1、jetpack和jtop的安装
在orin nano安装cuda前需要先安装jetpack,参考代码
sudo apt update
sudo apt dist-upgrade
sudo reboot
sudo apt install nvidia-jetpack
安装情况视网络情况而定,约为1小时,安装如因网络原因中断,重复执行最后一句即可。
安装jtop,可以用来监控jetson的资源使用情况和查看cuda版本等。
sudo -H pip3 install -U pip
sudo -H pip install jetson-stats
输入jtop即可使用, 出现以下画面。
按 q键或ctrl c退出当前画面,如果启动失败,则重启orin,再次尝试。
安装jtop后,可以使用sudo jetson_release命令查看jetson版本号以及与它适配的cuda、cudnn、TensorRT、OpenCV等等版本,如下图
2、配置cuda环境
在桌面打开终端,输入如下命令:
#在文本末输入如下代码:
export LD_LIBRARY_PATH=/usr/local/cuda/lib64
export PATH=/usr/local/cuda/bin:$PATH
export CUDA_HOME=/usr/local/cuda
#更新环境变量配置
source ~/.bashrc
确认安装完成并查看版本号
nvcc -V
如下图显示
3、配置cuDNN环境
在终端输入如下命令:
cd /usr/include && sudo cp cudnn* /usr/local/cuda/include
cd /usr/lib/aarch64-linux-gnu && sudo cp libcudnn* /usr/local/cuda/lib64
#修改文件权限,修改复制完的头文件与库文件的权限,所有用户都可读,可写,可执行:
sudo chmod 777 /usr/local/cuda/include/cudnn.h
sudo chmod 777 /usr/local/cuda/lib64/libcudnn*
# 重新软链接,这里的8.6.0和8对应安装的cudnn版本号和首数字
cd /usr/local/cuda/lib64
sudo ln -sf libcudnn.so.8.6.0 libcudnn.so.8
sudo ln -sf libcudnn_ops_train.so.8.6.0 libcudnn_ops_train.so.8
sudo ln -sf libcudnn_ops_infer.so.8.6.0 libcudnn_ops_infer.so.8
sudo ln -sf libcudnn_adv_train.so.8.6.0 libcudnn_adv_train.so.8
sudo ln -sf libcudnn_adv_infer.so.8.6.0 libcudnn_adv_infer.so.8
sudo ln -sf libcudnn_cnn_train.so.8.6.0 libcudnn_cnn_train.so.8
sudo ln -sf libcudnn_cnn_infer.so.8.6.0 libcudnn_cnn_infer.so.8
sudo ldconfig
输入下面命令验证
dpkg -l libcudnn8
显示如图
4、安装miniconda
因jetson orin nano的内存有限,因此相比anaconda选择更轻量化的miniconda,占用资源更少,但minconda在jetson上安装容易出现问题,因此选择minconda替代软件miniforge
软件地址https://github.com/conda-forge/miniforge
图片如下
下载好通过优盘或者winscp传到orin nano上
进入Miniforge3-Linux-aarch64.sh目录执行安装
bash Miniforge3-Linux-aarch64.sh -b
安装后进行初始化,初始化后重新打开终端。
~/miniforge3/bin/conda init
查看conda版本 :conda -V
miniforge使用方法与minconda使用方法一致
5、安装pytorch
下载安装文件
三个版本都可以下载,都可以适配相同版本的torchvision,将下载的.whl文件拷贝至home文件夹,在home中打开终端,按照官方教程,输入如下命令:
sudo apt-get -y update;
sudo apt-get -y install autoconf bc build-essential g++-8 gcc-8 clang-8 lld-8 gettext-base gfortran-8 iputils-ping libbz2-dev libc++-dev libcgal-dev libffi-dev libfreetype6-dev libhdf5-dev libjpeg-dev liblzma-dev libncurses5-dev libncursesw5-dev libpng-dev libreadline-dev libssl-dev libsqlite3-dev libxml2-dev libxslt-dev locales moreutils openssl python-openssl rsync scons python3-pip libopenblas-dev;
继续输入以下指令
pip install torch-1.14.0a0+44dac51c.nv23.02-cp38-cp38-linux_aarch64.whl
python3 -m pip install --upgrade pip; python3 -m pip install aiohttp numpy=='1.19.4' scipy=='1.5.3' ; python3 -m pip install --upgrade protobuf; python3 -m pip install --no-cache $TORCH_INSTALL
接下来验证是否安装成功,打开一个终端依次输入
python
import torch
print(torch.__version__)
6、安装torchvision
pytorch和torchvision版本对应
torchvision下载链接
如图选择
在home文件夹中新建文件夹,命名为torchvision,然后将下载的文件进行解压,之后拷贝至home文件夹下新建的torchvision文件夹中(拷贝setup.py所在文件夹里的所有内容至torchvision),并在该文件夹中打开终端,按照官方教程,输入如下命令:
$ sudo apt-get install libjpeg-dev zlib1g-dev libpython3-dev libavcodec-dev libavformat-dev libswscale-dev
$ export BUILD_VERSION=0.15.1 # where 0.15.1 is the torchvision version
$ python3 setup.py install --user
安装torchvision可能报错
可能会报错,ValueError: Unknown CUDA arch (8.7+PTX) or GPU not supported
解决办法:可以 ls /opt/venv/lib/python3.10/site-packages/torch/utils/cpp_extension.py ,看一下 1793行附近, _get_cuda_arch_flags这个方法可以找到支持的算力列表,
在supported_arches里添加上8.7即可解决。
报错原因:NVIDIA Orin nano 的 GPU 支持 CUDA 8.7 计算能力,所以编译pytorch的时候自适应了这个算力,编译了支持CUDA8.7算力的pytorch。但在 PyTorch 1.10.0 的默认设置中,8.7 并不在预设的支持列表中,所以产生这个报错。
报错解决即可重复执行上述操作安装
验证安装是否成功
python
import torchvision
print(torchvision.__version__)
不报错即可安装成功
7、安装paddle
下载paddle预编译包 下载链接
建议下载3.0版本旧版本2.5实测有的时候会与pytorch发生冲突报错
执行以下命令安装
pip3 install paddlepaddle_gpu-3.0.0b1-cp38-cp38-linux_aarch64.whl(注:这一部分根据自己的包名修改~)
验证安装
python
import paddle
paddle.fluid.install_check.run_check()
如果出现 Your Paddle Fluid is installed successfully!,说明您已成功安装。
8、安装Pyqt5
在jetson等arm64为嵌入式边缘计算平台上无法直接通过pip install pyqt5进行安装,只能通过源码编译来进行安装。
sip下载
pyqt下载
1.下载依赖qmake工具链
sudo apt-get install qt5-default
2、安装编译所需软件包
sudo apt-get install cmake gcc g++
pip3 install --upgrade pip
pip3 install wheel setuptools
3、编译sip包
tar zxvf sip-4.19.25.tar.gz
cd ./sip-4.19.25
python configure.py --sip-module PyQt5.sip
sudo make
sudo make install
4、编译pyqt5
tar zxvf PyQt5-5.15.2.tar.gz
cd ./PyQt5-5.15.2
python configure.py
sudo make -j4
sudo make install
即可安装完成
9.mmcv安装
在jetson无法直接pip安装会一直卡在建轮子那,因此需要从源码进行安装,官网教程
git clone https://github.com/open-mmlab/mmcv.git
cd mmcv
pip install -r requirements/optional.txt
因为orin nano内存较小,又因为ninja是调用全部内存进行加速安装,用在jetson上会爆内存出现问题,因此卸载ninja
pip uninstall ninja
输入以下代码进行安装
pip install -e . -v
这里时间巨长无比,约为1-2小时,看电脑性能。
博客参考
1、Nvidia Jetson AGX Orin 64G深度学习环境配置的超详细教程
2、Jetson Nano (aarch64)搭建miniconda 和mmdetection环境
3、ValueError: Unknown CUDA arch (8.7+PTX) or GPU not supported
4、教你如何在三步内Jetson系列上安装PaddlePaddle
5、ARM64平台jetson nano上安装PyQt5环境