前言
英伟达家的嵌入式开发板(Jetson Nano, TX1/TX2, Xavier)特点是GPU算力强,本贴记录在Jetson Xavier NX开发板上部署pytorch GPU深度学习环境,其他型号的开发板步骤也类似。
开发板烧录的镜像系统已经安装好了显卡驱动和CUDA,本贴不再赘述如何安装显卡驱动和CUDA。
参考
(一)安装conda
嵌入式开发板Jetson Xavier NX
,系统架构为aarch64
架构的,常用的windows,mac和linux安装方法都不适用,可以用下面命令查看架构:
uname -a
安装conda,首先想到的肯定是anaconda,但是conda太大了,于是放弃,可以尝试miniconda, 恰好miniconda有aarch64架构版本,但是安装失败了(安装成功,但是在用conda创建环境时提示:illegel instruction(core dumped) ),于是再次放弃。
最后只能采用miniconda的替代品–miniforge
(1)下载安装包
进入miniforge
官网下载安装包,但是这里推荐安装Miniforge3-4.12.0-0-Linux-aarch64.sh版本的,该版本经过测试可以成功安装
(2)安装conda
bash Miniforge3-Linux-aarch64.sh -b
~/miniforge3/bin/conda init
重新打开终端可以查看conda(注意,安装conda时会写入conda初始化环境到.bashrc
中,如果是zsh记得把.bashrc
这部分内容复制到.zshrc
中)
# 查看conda版本
conda -V
# 关闭conda的自启动bash环境
conda config --set auto_activate_base False
# 添加清华源
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/
conda config --set show_channel_urls yes
conda config --get channels
(3)创建conda环境
# 注意python版本得是3.6,因为jetson提供的torch都是3.6的
conda create --name torch180 python=3.6
# pip添加豆瓣源
python -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --upgrade pip
pip config set global.index-url https://pypi.douban.com/simple
(二)安装torch
(1)安装JetPack
在python下安装jtop(英伟达官方的包)
sudo -H pip3 install -U jetson-stats
查看jetson NX的硬件监测
jtop
从第一行可以查看到Jetpack的版本是4.4,记录下版本号
(2)下载Pytorch安装包
进入官网的帖子中下载对应Jetpack版本和torch版本的whl安装包
(3)安装依赖环境
# 后续torch环境在conda创建的虚拟环境下安装,启动conda的虚拟环境
conda activate torch180
# 安装依赖库
sudo apt-get install python3-pip libopenblas-base libopenmpi-dev libomp-dev
pip install Cython
# 不要安装最新1.19.5版本的numpy,会出现Illegal instruction (core dumped)的问题
pip install numpy==1.19.4
# 安装opencv-python会很慢,大概一个小时
pip install opencv-python pillow
(4)安装torch
pip install torch-1.8.0-cp36-cp36m-linux_aarch64.whl
torchvision也需要安装
sudo apt-get install libjpeg-dev zlib1g-dev libpython3-dev libavcodec-dev libavformat-dev libswscale-dev
git clone --branch v0.9.0 https://github.com/pytorch/vision torchvision
cd torchvision
export BUILD_VERSION=0.9.0
python3 setup.py install --user
cd ../
检查一下有无安装成功:
import torch
torch.cuda.is_available()
a=torch.Tensor([1,2])
a=a.cuda()
import torchvision
print(torchvision.__version__)
至此NX开发板上成功部署GPU版本的pytorch,经测试,跑yolov5s模型帧数为10左右。