目录
一、安装Anaconda
二、conda换源
三、Cuda、Cudnn安装
四、jtop 安装
五、查看安装情况
六、cuDNN环境配置
七、pytorch安装
八、安装torchvision
九:Tensorrt安装
拿到一台Jetson AGX Orin,准备搭建AI环境,搭建过程中参考不少文章,也踩了不少坑,特此记录一下。
清华镜像下载Linux版本的anaconda:
Index of /anaconda/archive/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirro
寻找aarch64的shell包,我选择的是Anaconda3-2021.11-Linux-aarch64.sh
chmod +x Anaconda3-2021.11-Linux-aarch64.sh
./Anaconda3-2021.11-Linux-aarch64.sh
安装成功后,系统提示conda命令找不到,执行以下命令:
# 将anaconda的bin目录加入PATH
echo 'export PATH="~/anaconda3/bin:$PATH"' >> ~/.bashrc
# 更新bashrc以立即生效
source ~/.bashrc
conda初始化
conda init
#查看目前已有的镜像
conda config --show channels
#添加清华源
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
建议下面也全部添加,虽然有些可能用不到,但是实际包含比较冷门的包
conda config --add channels http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/fastai/
#从channel中安装包时显示channel的url,这样就可以知道包的安装来源
conda config --set show_channel_urls yes
#验证一下配置是否成功
conda config --show channels
安装Jetpack,Jetpack可以理解为Jetson系列板上的软件开发工具包,apt安装Jetpack时默认直接装上与jetson版本号适配的cuda、cudnn、TensorRT!
首先检查 L4T 版本
cat /etc/nv_tegra_release
# R34 (release), REVISION: 1.1, GCID: 30414990, BOARD: t186ref, EABI: aarch64, DATE: Tue May 17 04:20:55 UTC 2022
我的是L4T 34.1.0 的版本,添加源,不加的话安装nvidia-jetpack会出现“Unable to locate package nvidia-jetpack”错误
sudo bash -c 'echo "deb https://repo.download.nvidia.com/jetson/common r34.1 main" >> /etc/apt/sources.list.d/nvidia-l4t-apt-source.list'
sudo bash -c 'echo "deb https://repo.download.nvidia.com/jetson/t234 r34.1 main" >> /etc/apt/sources.list.d/nvidia-l4t-apt-source.list'
开始安装
sudo apt upgrade
sudo apt update
sudo apt dist-upgrade
sudo reboot
sudo apt install nvidia-jetpack
jtop 是一个基于 Python 编写的交互式系统监视器,类似于 Linux 上的 top 命令。它可以实时显示系统资源使用情况、进程信息、网络连接状态等。
# 需要使用 pip3 来安装 jtop,所以先安装 pip3
sudo apt install python3-pip
# 安装jtop
sudo -H pip3 install -U jetson-stats
# 重启系统
sudo reboot
sudo jetson_release
发现CUDA没有安装成功,不应该!
查看/user/local目录发现CUDA 已经安装成功了,出现了cuda、cuda-11、cuda-11.4三个文件夹
使用ls -ll命令发现cuda文件夹是个软链接,指向了cuda-10.2,修改一下软链接:
ln -s cuda-11.4 cuda
配置Cuda环境变量
#打开~/.bashrc
sudo vim ~/.bashrc
#在文本末输入如下代码:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64
export PATH=$PATH:/usr/local/cuda/bin
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda
#更新环境变量配置
source ~/.bashrc
查看cuda版本
nvcc -V
说明CUDA环境可以正常识别了,用 sudo jetson_release再次查看:
一切正常!!!
cuDNN的头文件在:/usr/include,库文件位于:/usr/lib/aarch64-linux-gnu。将头文件与库文件复制到cuda目录下:
#复制文件到cuda目录下
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.4.1和8对应安装的cudnn版本号和首数字
cd /usr/local/cuda/lib64
sudo ln -sf libcudnn.so.8.4.1 libcudnn.so.8
sudo ln -sf libcudnn_ops_train.so.8.4.1 libcudnn_ops_train.so.8
sudo ln -sf libcudnn_ops_infer.so.8.4.1 libcudnn_ops_infer.so.8
sudo ln -sf libcudnn_adv_train.so.8.4.1 libcudnn_adv_train.so.8
sudo ln -sf libcudnn_adv_infer.so.8.4.1 libcudnn_adv_infer.so.8
sudo ln -sf libcudnn_cnn_train.so.8.4.1 libcudnn_cnn_train.so.8
sudo ln -sf libcudnn_cnn_infer.so.8.4.1 libcudnn_cnn_infer.so.8
sudo ldconfig
测试Cudnn:
在执行sudo make clean && sudo make命令编译时出现错误:
test.c:1:10: fatal error: FreeImage.h: 没有那个文件或目录
#include “FreeImage.h”
^~~~~~~~~~~~~
compilation terminated.
所以先安装库,再编译
sudo apt-get install libfreeimage3 libfreeimage-dev
安装成功后,使用cudnn自带的例子测试一下cudnn
sudo cp -r /usr/src/cudnn_samples_v8/ ~/
cd ~/cudnn_samples_v8/mnistCUDNN
sudo chmod 777 ~/cudnn_samples_v8
sudo make clean && sudo make
./mnistCUDNN
出现Test passed!说明cudnn安装成功!
conda创建新环境,python版本最好选择3.8,不要问我为什么
conda create -n torch3.8 python=3.8
conda activate torch3.8
pytorch版本不能随意安装,必须安装英伟达编译的好的库文件,可通过以下命令查看Jetpack版本号:
sudo apt-cache show nvidia-jetpack
我是Jetpack5.0.1,选择1.12.0版本的pytorch,官网地址:
PyTorch for Jetson - Jetson & Embedded Systems / Jetson Nano - NVIDIA Developer Forums
开始安装:
安装 PyTorch 所需的系统软件包:
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;
接下来,通过以下步骤安装 PyTorch:
使用以下命令导出
export TORCH_INSTALL=https://developer.download.nvidia.com/compute/redist/jp/v50/pytorch/torch-1.12.0a0+2c916ef.nv22.3-cp38-cp38-linux_aarch64.whl
安装 PyTorch。
python3 -m pip install --upgrade pip; python3 -m pip install aiohttp numpy=='1.19.4' scipy=='1.5.3' export "LD_LIBRARY_PATH=/usr/lib/llvm-8/lib:$LD_LIBRARY_PATH"; python3 -m pip install --upgrade protobuf; python3 -m pip install --no-cache $TORCH_INSTALL
安装过程中,如果出现异常无法找到nvcc等相关错误,重启一下就可以。
官方没有whl文件,需要运行如下代码安装:
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install libjpeg-dev zlib1g-dev libpython3-dev libavcodec-dev libavformat-dev libswscale-dev
git clone --branch v0.13.0 https://github.com/pytorch/vision torchvision
cd torchvision
export BUILD_VERSION=0.13.0
python3 setup.py install --user
注意:pytorch和torchvision的对应关系如图所示,我安装的pytorch版本为1.12,所以torchvision安装v0.13.0,要根据实际版本号修改上面的命令,共两处!!!
安装时出现了No such file or directory: ':/usr/local/cuda/bin/nvcc'错误,但使用nvcc -V却可以正常找到cuda,说明环境变量配置有问题
sudo vim ~/.bashrc
将export CUDA_HOME=$CUDA_HOME:/usr/local/cuda改为:
export CUDA_HOME=/usr/local/cuda
source ~/.bashrc
九、验证pytorch和torchvision
进入python,执行命令:
import torch
import torchvision
提示缺什么库就安装什么库,直到完全不报错为止!
pip install numpy
pip install urllib3
pip install charset-normalizer
pip install certifi
pip install idna
Jetpack已经给我们自动安装好了,但是安装位置在/usr/lib/python3.8/dist-packages/
中,不能被虚拟环境中定位使用。因此我们需要软链接一下,运行如下命令:
sudo ln -s /usr/lib/python3.8/dist-packages/tensorrt* /root/anaconda3/envs/torch3.8/lib/python3.8/site-packages/
注意:“/root/anaconda3/envs/torch3.8/lib/python3.8/site-packages/”为你的anaconda以及所使用虚拟环境的具体位置,要根据实际情况进行修改!!!
测试一下,运行如下指令:
python -c "import tensorrt;print(tensorrt.__version__)"
若出现版本号,则成功:
参考文章:
在米文动力 EVO Orin 设备 Jetson AGX Orin 下配置 YOLOV5 的环境说明Jetson AGX Orin安装Anaconda、Cuda、Cudnn、Pytorch、Tensorrt最全教程在米文动力 EVO Orin 设备 Jetson AGX Orin 下配置 YOLOV5 的环境说明【Jetson Agx Orin】执行sudo apt install nvidia-jetpack命令时报错:E: Unable to locate package nvidia-jetpack
Unable to locate package nvidia-jetpack on Orin devkit - Jetson & Embedded Systems / Jetson AGX Orin - NVIDIA Developer Forums
开始使用 Jetson AGX Orin 开发人员套件 |英伟达开发者 (nvidia.com)
ubuntu21.04安装cuda和cudnn_test.c:1:10: fatal error: freeimage.h: no such file
查看Jetson系列产品JetPack的版本信息_查看jetpack版本_氵文大师的博客-CSDN博客
為 Jetson Platform 安裝 PyTorch - NVIDIA Docs
PyTorch for Jetson - Jetson Nano - NVIDIA Developer Forums