[jetson]paddlepaddle2.4.0在jetpack5.0.2源码编译流程

Posted FL1623863129

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[jetson]paddlepaddle2.4.0在jetpack5.0.2源码编译流程相关的知识,希望对你有一定的参考价值。

由于官方暂时没有提供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博客

以上是关于[jetson]paddlepaddle2.4.0在jetpack5.0.2源码编译流程的主要内容,如果未能解决你的问题,请参考以下文章

Jetson Xavier NX (15) -- Jetson.GPIO

jetson TX2

英伟达jetson系列盒子参数(jetson参数)

英伟达jetson系列盒子参数(jetson参数)信息

[Jetson Nano]Jetson Nano快速入门

[Jetson][转载]jetson上安装pytorch+torchvision教程