Jetson AGX Orin安装Anaconda、Cuda、Cudnn、Pytorch、Tensorrt最全教程

一:Anaconda安装

Jetson系列边缘开发板,其架构都是arm64,而不是传统PC的amd64,深度学习的环境配置方法大不相同。想要看amd64的相关环境安装,可以参考这篇文章。下面步入正题:

对于Anaconda的安装其实和之前差不多,只是寻找aarch64的shell包安装即可,下载地址anaconda清华镜像源,我选择的是Anaconda3-2021.11-Linux-aarch64.sh

进入到下载文件夹,按如下命令依次安装即可:

chmod +x Anaconda3-2021.11-Linux-aarch64.sh 

./Anaconda3-2021.11-Linux-aarch64.sh

后面的安装流程和amd64的一样,不再赘述,可移步这篇文章

二:Cuda、Cudnn安装

坑:千万不要安装cuda官网上最新的cuda-jetson-12.0,装完重启后终端就黑屏了,含泪刷机!

所以我参考了官网上最常用的三种方法SD卡、SDK Manager安装Jetpack、apt安装Jetpack。前两种是针对Orin之前的jetson系列板,第一次它们需要手动刷机,所以是针对无系统的空机。而Orin系列开始,自装好了Ubuntu20.04系统,所以选择第三种apt安装Jetpack

Jetpack这到底是什么呢,明明要安装cuda,为啥却先安装Jetpack呢?

其实原因很简单,Jetpack可以理解为Jetson系列板上的软件开发工具包,所有常用的开发kit里面都有。而apt安装Jetpack时默认直接装上与jetson版本号适配的cuda、cudnn、TensorRT,岂不妙哉!!

这里我参考的Invida官方指南,下面直接上代码:

sudo apt upgrade
sudo apt update
sudo apt dist-upgrade
sudo reboot
sudo apt install nvidia-jetpack

安装完输入sudo jetson_release进行查询 ( :需要装好Jtop才有此命令,安装方式见文尾):

在这里插入图片描述

发现安装Jetpack的过程中也安装了和5.0.2版本适配的Cuda_11.4、Cudnn_8.4.1。
,而Cudnn默认安装在了/usr/lib/aarch64-linux-gnu下


下面配置Cuda环境变量:

Cuda已经默认安装在了/usr/local/cuda下,运行如下指令:

#打开~/.bashrc
sudo gedit ~/.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

运行nvcc -V查看版本号:

#/usr/local/cuda/bin/nvcc -V
nvcc -V

在这里插入图片描述

还没有结束,虽然安装了cuDNN,但没有将对应的头文件、库文件放到cuda目录。

cuDNN的头文件在:/usr/include,库文件位于:/usr/lib/aarch64-linux-gnu。将头文件与库文件复制到cuda目录下:

(这里我与amd64上的cudnn头文件进行了对比,发现amd64下的头文件都是源文件,而arm64下的头文件都是软链接,当我将软链接头文件复制到cuda头文件目录下,变为了源文件。。。之所以说这些,就是为了证明这里的操作和amd64的一样,不用担心)

操作如下:

#复制文件到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 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.c:1:10: fatal error: FreeImage.h: 没有那个文件或目录
#include “FreeImage.h”
^~~~~~~~~~~~~
compilation terminated.

输入如下代码:

sudo apt-get install libfreeimage3 libfreeimage-dev

如果配置成功 测试完成后会显示:“Test passed!”。
大功告成!!

三:Pytorch安装

pytorch版本不能随意安装,必须安装英伟达编译的好的库文件,附上官方链接,我是Jetpack5.0.2,选择1.12.0版本的pytorch

在这里插入图片描述
点击链接然后下载。完成后执行:

pip install torch-1.12.0a0+2c916ef.nv22.3-cp38-cp38-linux_aarch64.whl 

(其实在运行它之前,我事先根据官方教程链接运行如下代码,如果前面或后面的代码报错,可以尝试一下)

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

:我们还需安装 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 <version> https://github.com/pytorch/vision torchvision #<version>看下表选择,我的是v0.13.0
cd torchvision
export BUILD_VERSION=0.x.0  # where 0.x.0 is the torchvision version  
python3 setup.py install --user

由下表可知,version中我应填v0.13.0注意v不要漏了

在这里插入图片描述

不出意外的话最后编译时会报错,我当时卡在了numpy安装上,说超时。所以我又先安装了numpy,然后再编译。其他可类推

最后验证Pytorch和torchvision是否安装成功:

在这里插入图片描述
这里有人会说import torchvison时有警告,如网址所说,原因就是你在torchvison文件夹中打开了终端,执行import,相当于”体内“调包。。。

所以退出当前编译包位置,到其他任何地方重新打开终端,运行import torchvison,自然都不会报错了。

四:Tensorrt安装

Jetpack已经给我们自动安装好了,但是安装位置在/usr/lib/python3.8/dist-packages/中,不能被虚拟环境中定位使用。因此我们需要软链接一下,运行如下命令:

sudo ln -s /usr/lib/python3.8/dist-packages/tensorrt* /home/nvidia/anaconda3/envs/orin/lib/python3.8/site-packages/

测试一下,运行如下指令:

python -c "import tensorrt;print(tensorrt.__version__)"

若出现版本号,则成功:

在这里插入图片描述
或用如下方式查看版本号:

find / -name NvInferVersion.h


我是刚出cv泥潭不久,又入jetson终端部署泥潭的江南咸鱼,希望大家能从一而终,不留遗憾!!!

觉得文章有用的话,各位客官点个赞吧!!

### 安装配置TensorRT于NVIDIA Jetson平台 #### 准备工作 为了确保能够在NVIDIA Jetson平台上成功安装并配置TensorRT,需先确认已正确设置JetPack SDK环境。JetPack集成了Linux系统、驱动程序以及CUDA工具链等必要组件,为后续操作奠定良好基础[^1]。 #### 获取适合的Docker镜像 由于官方提供的部分预构建Docker镜像可能默认针对X86架构优化,在应用于ARM架构的Jetson系列时会遇到兼容性问题。因此建议采用如下方法获取适配版本: - **自定义构建**:利用官方给出的`Dockerfile`文件作为模板,调整其中的基础镜像源至支持ARM架构的选择,并移除原有不适用的部分(如特定于X86架构的依赖项)。通过这种方式可以得到一个专门为当前硬件定制化的运行环境[^2]。 #### TensorRT的具体安装流程 按照文档指导完成以下步骤来实现TensorRT的成功部署: 1. 更新软件包列表并安装必要的编译工具和库,例如CMake与NumPy,这有助于简化之后的过程并且提高稳定性[^4]: ```bash sudo apt-get update && sudo apt-get upgrade -y sudo apt-get install libpython3-dev python3-numpy git cmake ``` 2. 访问[NVIDIA开发者网站](https://developer.nvidia.com/)下载对应版本的TensorRT安装包。注意选择匹配目标系统的选项,即ARM架构下的Jetson型号所对应的JetPack版本[^3]。 3. 解压下载下来的压缩包并将解压后的目录内的`.deb`文件逐一注册到本地仓库中: ```bash tar zxvf TensorRT-<version>-linux-aarch64-gnu.<toolchain_version>.tar.gz cd TensorRT-<version> sudo dpkg -i *.deb ``` 4. 验证安装是否顺利完成,可以通过执行简单的测试样例来进行验证。通常情况下,安装路径下会有示例项目可供参考学习。 5. 对于希望进一步提升性能的应用场景来说,还可以考虑集成其他框架的支持,比如OpenCV用于图像处理任务或是ONNX Runtime增强模型互操作能力。 ```cpp // 示例代码片段展示如何加载TensorRT引擎进行推理预测 #include "NvInfer.h" using namespace nvinfer1; ICudaEngine* loadEngine(const char* engineFilePath){ // ...省略具体实现细节... } ```
评论 38
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值