Linux 35.6 + JetPack v5.1.4之编译 pytorch

news2026/2/15 20:54:09

Linux 35.6 + JetPack v5.1.4之编译 pytorch

  • 1. 源由
  • 2. 折腾
  • 3. 构建步骤
    • 3.1 下载代码
    • 3.2 编译选项
    • 3.3 CUDA选项
    • 3.4 CUDA路径
    • 3.5 版本控制
    • 3.6 编译whl
  • 4. 总结
  • 5. 参考资料

1. 源由

目前,有很多科研性质的自动导航的开源代码,例如:

  • Linux 35.5 + JetPack v5.1.3@VINS-Fusion编译安装
  • Linux 35.5 + JetPack v5.1.3@FC-Planner编译安装
  • Linux 35.5 + JetPack v5.1.3@ego-planner-swarm编译安装
  • Linux 35.5 + JetPack v5.1.3@ego-planner编译安装
  • Linux 35.5 + JetPack v5.1.3@RACER编译安装
  • Linux 35.5 + JetPack v5.1.3@FUEL编译安装
  • Linux 35.5 + JetPack v5.1.3@Fast-Planner编译安装

但是这些代码都有一个特性,基于ROS系统的一些组件:

  • Linux 35.5 + JetPack v5.1.3@ros-noetic安装

当然逻辑上ROS2系统有对应的组件,但是要做升级就需要解决一些兼容性,以及异常问题的DEBUG。可以做,但是。。。。

从学习、研究、以及短平快项目的国内大体环境下,不会去深入系统性的解决问题,除非有利润,这是企业需要做的事情。

为了工作、学习上的收敛,期望jetson orin平台上能够集成更多的功能,我们暂时将目标对准了支持ROS中间件的Jetpack 5.1.4版本。

因为,该版本基于ubuntu20.04,支持ROS中间件,并且NVIDIA大部分AI算法以及Deepstream的功能都支持,且应该BUG修复的相对完善。

但是,pytorch官方仅支持到到2.1版本,虽然Jetpack5系列并未EOL。而在实际应用过程发现NVIDIA pytorch2.1存在导出onnx问题。

因此,想在Jetpack5系列上支持更新的pytorch版本。

2. 折腾

  • build script for pytorch or up to date pytorh binary release supporting jetson boards running L4T35.6
  • pytorch v2.5.1 build for nvidia jetson orin nano 8GB ·#143624
  • pytorch v2.4.1 build for nvidia jetson orin nano 8GB #143816
  • pytorch v2.3.1 build for nvidia jetson orin nano 8GB #143856
  • pytorch v2.2.2 build for nvidia jetson orin nano 8GB #143861
  • pytorch v2.3.1 build failed - CUDA kernel function #143935

功夫不负有心人,但要做好徒劳无果的准备,通常都是徒劳无果的情况居多!

3. 构建步骤

3.1 下载代码

$ git clone git@github.com:pytorch/pytorch.git
$ git checkout v2.3.1
$ git submodule update --init --recursive

注:大家可以直接从pytorch官方网站获取代码,或参考SnapDragonfly/pytorch。

3.2 编译选项

$ export USE_NCCL=0
$ export USE_DISTRIBUTED=0
$ export USE_QNNPACK=0
$ export USE_PYTORCH_QNNPACK=0
$ export USE_PRIORITIZED_TEXT_FOR_LD=1

注:不同的版本,选项可能有所不同,具体根据实际情况调整。

3.3 CUDA选项

$ export TORCH_CUDA_ARCH_LIST="8.7"

注:8.7 是jetson orin板子的CUDA版本。

3.4 CUDA路径

$ export PATH=/usr/local/cuda/bin:$PATH
$ export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH

注:当前使用的CUDA版本,这里是一个软连接。

3.5 版本控制

$ export PYTORCH_BUILD_VERSION=2.3.1
$ export PYTORCH_BUILD_NUMBER=1
$ export L4T_BUILD_VERSION=35.6

注1:PYTORCH_BUILD_VERSION 是对应checkout的pytorch版本。
注2:L4T_BUILD_VERSION 是NVIDIA L4T版本号。

3.6 编译whl

$ python3 setup.py bdist_wheel

4. 总结

通过不懈的努力,顺利构建了一下二进制:

  • Release pytorch_v2.2.2+l4t35.6-cp38-cp38-aarch64
  • Release pytorch_v2.1.2+l4t35.6-cp38-cp38-aarch64

注:这里需要注意各自板子当前系统的swap内存大小,笔者看到最大使用到9.2GB。

希望,在不久的将来,能够构建出 2.3.1 / 2.4.1 甚至更高的版本!

5. 参考资料

【1】Linux 35.6 + JetPack v5.1.4@yolo安装
【2】Linux 35.6 + JetPack v5.1.4@python opencv安装
【3】Linux 35.6 + JetPack v5.1.4@DeepStream安装
【4】Linux 35.6 + JetPack v5.1.4之RTP实时视频Python框架
【5】Linux swap 配置与虚拟内存

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2267821.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

瑞芯微全新芯片平台RK3506优势详解,高集成低功耗,为工业而生 触觉智能测评

RK3506是瑞芯微Rockchip在2024年第四季度全新推出的Arm嵌入式芯片平台,三核Cortex-A7单核Cortex-M0多核异构设计,CPU频率达1.5Ghz, M0 MCU为200Mhz。 而RK3506芯片平台下的工业级芯片型号RK3506J,具备-40-85℃的工业宽温性能、发热量小&#…

AIOps平台的功能对比:如何选择适合的解决方案?

定义与概念 AIOps,即人工智能运维(Artificial Intelligence for IT Operations),是将人工智能技术应用于 IT 运维领域,以实现自动化、智能化的运维管理。它通过整合大数据、机器学习等先进技术,对海量运维数…

Python + 深度学习从 0 到 1(03 / 99)

希望对你有帮助呀!!💜💜 如有更好理解的思路,欢迎大家留言补充 ~ 一起加油叭 💦 欢迎关注、订阅专栏 【深度学习从 0 到 1】谢谢你的支持! ⭐ 神经网络的数据表示 – 张量 你可能对矩阵很熟悉&a…

Lumos学习王佩丰Excel第二十三讲:饼图美化与PPT图表

一、双坐标柱形图的补充知识 1、主次坐标设置 2、主次坐标柱形避让(通过增加两个系列,挤压使得两个柱形挨在一起) 增加两个系列 将一个系列设置成主坐标轴,另一个设成次坐标轴 调整系列位置 二、饼图美化 1、饼图美化常见设置 …

基于Vue+SSM+SpringCloudAlibaba书籍管理系统

功能要求 一、登录功能(http://localhost:8080/#/login) 输入账号和密码(admin/admin)进行登录: 如果密码错误,给出提示信息 如果密码正确,跳转到主页 账号或密码错误: 账号密码正确:跳转到…

【优先算法】滑动窗口 --(结合例题讲解解题思路)(C++)

目录 ​编辑 1.什么是滑动窗口? 2. 滑动窗口例题 2.1 例题1:长度最小的子数组 2.1.1 解题思路 2.1.2 方法一:暴力枚举出所有的子数组的和 2.1.3 方法二:使用 “同向双指针” 也就是滑动窗口来进行优化 2.2 例题2:无重…

VS Code 从命令行启动

在 VS Code 中,code 命令允许你在命令行中快速打开文件、文件夹或新窗口。 安装 原本地址:https://code.visualstudio.com/docs/setup/mac 使用 使用 code 命令 打开文件:你可以通过在命令行输入 code 文件名 来直接打开一个文件。 打开文…

微服务-配置管理

文章目录 1.什么是配置管理2.配置共享添加共享配置拉取共享配置 3.配置热更新添加配置到Nacos配置热更新 4.动态路由监听Nacos配置变更 1.什么是配置管理 到目前为止我们已经解决了微服务相关的几个问题: 微服务远程调用微服务注册、发现微服务请求路由、负载均衡…

ArrayList 和LinkedList的区别比较

前言 ‌ArrayList和LinkedList的主要区别在于它们的底层数据结构、性能特点以及适用场景。‌ArrayList和LinkedList从名字分析,他们一个是Array(动态数组)的数据结构,一个是Linked(链表)的数据结构&#x…

MySQL--》如何在SQL中巧妙运用函数与约束,优化数据处理与验证?

目录 函数使用 字符串函数 数值函数 日期函数 流程函数 约束 外键约束 约束规则 函数使用 函数是指一段可以直接被另一段程序调用的程序或代码,在mysql当中有许多常见的内置函数,接下来开始对这些内置函数及其作用进行简单的讲解和使用&#xf…

一文大白话讲清楚CSS盒子模型和块级格式化上下文(BFC)

一文大白话讲清楚CSS盒子模型和块级格式化上下文(BFC) 1.啥是个CSS盒子 鞋盒你家总有吧,方方正正,有长度有高度。css盒子跟这个八九不离十当我们编写html页面时,写了很多的元素,比如"div",&quo…

Docker 快速搭建 GBase 8s数据库服务

1.查看Gbase 8s镜像版本 可以去到docker hub网站搜索:gbase8s liaosnet/gbase8s如果无法访问到该网站,可以通过docker search搜索 docker search gbase8s2.拉取Gbase 8s镜像 以下演示的版本是目前官网最新版本Gbase8sV8.8_3.5.1 docker pull liaosn…

密钥登录服务器

1. 生成 SSH 密钥对 如果您还没有生成密钥对,可以使用以下命令生成: ssh-keygen 在 root 用户的家目录中生成了一个 .ssh 的隐藏目录,内含两个密钥文件:id_rsa 为私钥,id_rsa.pub 为公钥。 在提示时,您可…

王佩丰24节Excel学习笔记——第二十讲:图表基础

【以 Excel2010 系列学习,用 Office LTSC 专业增强版 2021 实践】 【本章技巧】 课件图片有问题,不能随隐藏熟悉各个图表小部件的功能,需要修改都是选中右键进行更改。 一、认识图表中的元素 图表标题:主坐标(横坐标&…

华为交换机配置本地端口流量镜像

端口镜像(Port Mirroring)是网络监控的一种重要技术,通过复制流经特定端口的报文,并将其传送到指定的观察端口,以便对网络流量进行分析和监控。下面将详细介绍如何在华为交换机上配置本地端口镜像,以N:1镜像…

IDEA设置作者信息 日期等

file -> setting 或 ctrl alt s找到如下 然后添加注释即可 可以直接编辑5处的文字,在 author 后放自己的名字即可 /*** author 你的名字* date ${DATE} ${TIME})*/当然 整体不止这些 ,看下面的描述中,还有很多其他选项 也可以 4 这…

【stm32can】

can时钟 can波特率计算(位同步内容) ss是固定的1tq, pts,pbs1,pbs2是用户设定值 同步时间段的理解有误? 原文出处 数据帧 遥控帧

【论文笔记】Contrastive Learning for Sign Language Recognition and Translation

🍎个人主页:小嗷犬的个人主页 🍊个人网站:小嗷犬的技术小站 🥭个人信条:为天地立心,为生民立命,为往圣继绝学,为万世开太平。 基本信息 标题: Contrastive Learning for…

springboot514基于SpringBoot的家电销售展示平台(论文+源码)_kaic

摘 要 传统办法管理信息首先需要花费的时间比较多,其次数据出错率比较高,而且对错误的数据进行更改也比较困难,最后,检索数据费事费力。因此,在计算机上安装家电销售展示平台软件来发挥其高效地信息处理的作用&#x…

【探花交友】day03—MongoDB基础

目录 课程介绍 1、通用设置 1.1 需求分析 1.2 查询通用设置 1.2 陌生人问题 1.3 通知设置 1.4 黑名单管理 2、MongoDB简介 1.1、MongoDB简介 1.2、MongoDB的特点 1.3 数据类型 3、MongoDB入门 2.1、数据库以及表的操作 2.2、新增数据 2.3、更新数据 2.4、删除数…