由于官方暂时没有提供jetson对应的jetson jetpack5.0.2预编译包,因此只有源码编译,本次编译不带Tensorrt,编译已经顺利成功,注意本次使用的设备是jetson NX
测试环境:
ubuntu20.04
jetpack5.0.2
GCC-8.4
Software part of jetson-stats 4.1.5 - (c) 2023, Raffaello Bonghi
Model: NVIDIA Jetson Xavier NX Developer Kit - Jetpack 5.0.2 GA [L4T 35.1.0]
NV Power Mode: MODE_20W_6CORE - Type: 8
jtop:
- Version: 4.1.5
- Service: Active
Libraries:
- CUDA: 11.4.239
- cuDNN: 8.4.1.50
- TensorRT: 8.4.1.5
- VPI: 2.1.6
- Vulkan: 1.3.203
- OpenCV: 4.5.4 - with CUDA: NO
耗时:36小时左右
安装难度评价:很难,从事编程老司机需要36小时才能完成,刚入门的可能会更慢
首先安装依赖:
sudo apt-get install gcc g++ make cmake git vim unrar python3 python3-dev python3-venv python3-pip swig wget patchelf libopencv-dev
sudo apt-get install libfreetype6-dev libjpeg-dev zlib1g-dev liblapack-dev gfortran libpng-dev
sudo pip3 install virtualenv cython
# sudo pip3 install numpy protobuf wheel setuptools
注意你的GCC是9.4.0的话一定要换成GCC-8的,我试过GCC9.4.0失败了
设置文件打开数量:
在 /etc/security/limits.conf 文件中添加两行,注意左边星号也要写进去。
* hard noopen 102400 * soft noopen 102400
重启计算机,重启后执行以下指令,请将${user}切换成当前用户名。
su ${user} ulimit -n 102400
安装nccl:
git clone https://github.com/NVIDIA/nccl.git
cd nccl
make -j4
sudo make install
安装nccl过程十分漫长预计40分钟左右
安装Paddle:
git clone https://github.com/paddlepaddle/Paddle.git
cd Paddle
mkdir build
cd build
cmake .. -DWITH_CONTRIB=OFF -DWITH_MKL=OFF -DWITH_MKLDNN=OFF -DWITH_TESTING=OFF -DCMAKE_BUILD_TYPE=Release -DON_INFER=ON -DWITH_PYTHON=ON -DWITH_XBYAK=OFF -DWITH_NV_JETSON=ON -DPY_VERSION=3.8 -DCUDA_ARCH_NAME=Auto
make -j4
这个过程需要24小时。。。第三方源码总是下不来,你需要不停make直到成功,最好挂梯子,我没有挂耗费一天半时间,这还是在网好的情况下,网不好就得自己想办法了。
最后说明这个不是水文,验收安装成果:
后面我又编译了带tensorrt的源码
首先自己创建一个文件夹,然后把jetson里面的tensorrt库复制复制过来
比如/home/nvidia/tensorrt_8.4.1.5
cd include
cp -r /usr/include/aarch64-linux-gnu/Nv* ./
cd lib
cp -r /usr/lib/aarch64-linux-gnu/libnv* ./
编译指令:
cmake .. -DWITH_CONTRIB=OFF -DWITH_MKL=OFF -DWITH_MKLDNN=OFF -DWITH_TESTING=OFF -DCMAKE_BUILD_TYPE=Release -DON_INFER=ON -DWITH_PYTHON=ON -DWITH_XBYAK=OFF -DWITH_NV_JETSON=ON -DPY_VERSION=3.8 -DCUDA_ARCH_NAME=Auto -DWITH_TENSORRT=ON -DTENSORRT_ROOT=/home/nvidia/tensorrt_8.4.1.5
make TARGET=ARMV8 -j8
参考文章:
1、https://www.paddlepaddle.org.cn/inference/v2.3/user_guides/source_compile.html
2、https://github.com/mingquanyuan/PaddlePaddle-Jetson
3、如何在Jetson nano上同时编译TensorRT与Paddle Lite框架 - 极术社区 - 连接开发者与智能计算生态
4、Paddle飞桨动态图教程—Jetson AGX Xavier刷机和编译Paddle_jetson nccl_钱彬 (Qian Bin)的博客-CSDN博客