目录

一、安装Anaconda

二、conda换源

三、Cuda、Cudnn安装

四、jtop 安装

五、查看安装情况

六、cuDNN环境配置

七、pytorch安装

八、安装torchvision

九:Tensorrt安装


拿到一台Jetson AGX Orin,准备搭建AI环境,搭建过程中参考不少文章,也踩了不少坑,特此记录一下。

一、安装Anaconda

清华镜像下载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换源

#查看目前已有的镜像
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

三、Cuda、Cudnn安装

安装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 安装

 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环境配置

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安装成功!

七、pytorch安装

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等相关错误,重启一下就可以。

八、安装torchvision

官方没有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

九:Tensorrt安装

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

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐