NVIDIA Jetson AGX Orin源码编译安装CV-CUDA

news2024/11/16 23:34:29

目录

1  下载源码并配置

2 编译安装CV-CUDA

2.1 安装相应依赖包

2.2 升级gcc到gcc-11

2.3 build

2.4 升级cmake

2.5 再次build

2.5.1 报错 /usr/include/c++/11/bits/std_function.h:435:145: error: parameter packs not expanded with ‘...’:

3 直接使用安装包

参考文献:


Jetson AGX Orin还没到货,先在之前的Jetson AGX Xavier上面做相关开发,我Jetson AGX Xavier上新刷的机,然后JetPack用的是5.1.3。下面记录下我在Jetson上的CV-CUDA的编译安装工作。

1  下载源码并配置

sudo apt install -y git git-lfs
git clone https://github.com/CVCUDA/CV-CUDA.git
cd CV-CUDA/
./init_repo.sh 

执行init_repo.sh之后报错

./init_repo.sh 
pre-commit must be fully configured.
Try 'sudo apt-get install -y pip shellcheck && sudo pip install pre-commit'.

那就先执行这两个命令,然后再配置

sudo apt-get install -y pip shellcheck
sudo pip install pre-commit

然后 vim .pre-commit-config.yaml 里面加入如下内容

repos:
  - repo: https://github.com/pre-commit/pre-commit-hooks
    rev: v3.4.0
    hooks:
      - id: trailing-whitespace
      - id: end-of-file-fixer
      - id: check-yaml

然后

pre-commit install

然后再次执行 ./init_repo.sh

2 编译安装CV-CUDA

2.1 安装相应依赖包

sudo apt install -y cmake ninja-build python3-dev libssl-dev patchelf

2.2 升级gcc到gcc-11

如果直接apt install gcc-11 g++-11会报下面的错误

sudo apt install gcc-11 g++-11
Reading package lists... Done
Building dependency tree... 0%
Building dependency tree       
Reading state information... Done
E: Unable to locate package gcc-11
E: Unable to locate package g++-11

需要添加PPA源,然后再安装

sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt update
sudo apt install gcc-11 g++-11

然后更改替代项

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 11
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-11 11

然后选择默认版本

sudo update-alternatives --config gcc
sudo update-alternatives --config g++

然后发现成功升级成11版本

2.3 build

mkdir build
ci/build.sh release  -DBUILD_TESTS=1 -DPYTHON_VERSIONS=3.8 -DPUBLIC_API_COMPILERS=gcc-11

发生下面的错误

ci/build.sh release  -DBUILD_TESTS=1 -DPYTHON_VERSIONS=3.8 -DPUBLIC_API_COMPILERS=gcc-11
CMake Error at CMakeLists.txt:16 (cmake_minimum_required):
  CMake 3.20.1 or higher is required.  You are running version 3.16.3


-- Configuring incomplete, errors occurred!

2.4 升级cmake

先卸载掉之前的cmake

sudo apt-get remove cmake

然后 直接下载二进制包

Download CMake

然后

chmod 777 cmake-3.30.2-linux-aarch64.sh
./cmake-3.30.2-linux-aarch64.sh  --prefix=/usr/local
vim ~/.bashrc
export PATH=/usr/local/cmake-3.30.2-linux-aarch64/bin:$PATH
source  ~/.bashrc

2.5 再次build

ci/build.sh release  -DBUILD_TESTS=1 -DPYTHON_VERSIONS=3.8 -DPUBLIC_API_COMPILERS=gcc-11

2.5.1 报错 /usr/include/c++/11/bits/std_function.h:435:145: error: parameter packs not expanded with ‘...’:

/usr/include/c++/11/bits/std_function.h:435:145: error: parameter packs not expanded with ‘...’:
  435 |         function(_Functor&& __f)
      |                                                                                                                                                 ^ 
/usr/include/c++/11/bits/std_function.h:435:145: note:         ‘_ArgTypes’
/usr/include/c++/11/bits/std_function.h:530:146: error: parameter packs not expanded with ‘...’:
  530 |         operator=(_Functor&& __f)
      |                                                                                                                                                  ^ 
/usr/include/c++/11/bits/std_function.h:530:146: note:         ‘_ArgTypes’

解决方法在

Fails on Cuda 11.6 and PyTorch 1.12 (/usr/include/c++/11/bits/std_function.h:435:145: error: parameter packs not expanded with ‘...’:) · Issue #1491 · NVIDIA/apex · GitHub

具体就是

vim /usr/include/c++/11/bits/std_function.h 

然后把436这里的和后面531行这里的注释掉。

433       template<typename _Functor,
434                typename _Constraints = _Requires<_Callable<_Functor>>>
435         function(_Functor&& __f)
436         //noexcept(_Handler<_Functor>::template _S_nothrow_init<_Functor>())
437         : _Function_base()
438         {
439           static_assert(is_copy_constructible<__decay_t<_Functor>>::value,
440               "std::function target must be copy-constructible");
441           static_assert(is_constructible<__decay_t<_Functor>, _Functor>::value,
442               "std::function target must be constructible from the "
443               "constructor argument");
444 
445           using _My_handler = _Handler<_Functor>;
446 
447           if (_My_handler::_M_not_empty_function(__f))
448             {
449               _My_handler::_M_init_functor(_M_functor,
450                                            std::forward<_Functor>(__f));
451               _M_invoker = &_My_handler::_M_invoke;
452               _M_manager = &_My_handler::_M_manager;
453             }
454         }
528       template<typename _Functor>
529         _Requires<_Callable<_Functor>, function&>
530         operator=(_Functor&& __f)
531         //noexcept(_Handler<_Functor>::template _S_nothrow_init<_Functor>())
532         {
533           function(std::forward<_Functor>(__f)).swap(*this);
534           return *this;
535         }

然后编译就不报错了,但是编译过程中我发现,这太慢了

[167/377 4 1968.540s] Building CUDA object src/cvcuda/priv/legacy/CMakeFiles/cvcuda_legacy.dir/composite.cu.o

我直接放弃源码编译的方法,直接下载安装包试试,

3 直接使用安装包

Releases · CVCUDA/CV-CUDA · GitHub

去这里下载

然后直接

sudo apt install -y ./cvcuda-lib-0.10.1_beta-cuda11-aarch64-linux.deb ./cvcuda-dev-0.10.1_beta-cuda11-aarch64-linux.deb
sudo apt install -y ./cvcuda-python3.8-0.10.1_beta-cuda11-aarch64-linux.deb

参考文献:

ubuntu安装cmake-CSDN博客

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

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

相关文章

力扣: 两两交换链表中的节点

文章目录 需求代码代码解释结尾 需求 给你一个链表&#xff0c;两两交换其中相邻的节点&#xff0c;并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题&#xff08;即&#xff0c;只能进行节点交换&#xff09;。 示例 1&#xff1a; 输入&#xff1a;…

jmeter性能测试之CSV 数据文件设置

文章目录 业务场景使用步骤步骤1&#xff1a;准备数据步骤二: 编写csv文件步骤三:添加CSV 数据文件设置步骤四:定义接口&#xff0c;选择文件上传&#xff0c;文件名称通过“浏览”添加即可 业务场景 有一个文件上传的接口&#xff0c;希望每个线程上传不同的文件&#xff08;比…

FOFA搜索引擎的语法

FOFA 是一款网络空间搜索引擎&#xff0c;允许用户通过自定义查询语法来检索全球范围内的互联网资产。FOFA 提供了丰富的语法&#xff0c;可以帮助用户筛选目标。以下是 FOFA 语法的基本介绍&#xff1a; 1. 基本语法格式 FOFA 的查询语句遵循以下格式&#xff1a; 字段&quo…

MVVM分层思想

M:Model数据模型 V:View视图 VM:ViewModel视图模型 Vue也是借鉴了MVVM的思想 在Vue中,M就是data,V指挂载点,而Vue实例本身就是一个VM <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X…

前端手写源码系列(二)——手写call、apply、bind

手写源码系列目录 一、作用二、手写call方法三、手写apply方法四、手写bind方法五、三者区别applycallbind小结 一、作用 call、apply、bind作用是改变函数执行时的上下文&#xff0c;简而言之就是改变函数运行时的this指向 那么什么情况下需要改变this的指向呢&#xff1f;下…

Spring Boot启用GZIP压缩

1.为什么是需要gzip压缩&#xff1f; 经常我们都会与服务端进行大数据量的文本传输&#xff0c;例如 JSON 就是常见的一种格式。通过 REST API 接口进行 GET 和 POST 请求&#xff0c;可能会有大量的文本格式数据提交、返回。然后对于文本&#xff0c;它有很高的压缩率&#x…

systemserver进程监控者--watchdog

戳蓝字“牛晓伟”关注我哦&#xff01; 用心坚持输出易读、有趣、有深度、高质量、体系化的技术文章&#xff0c;技术文章也可以有温度。 本文摘要 本文同样采用自述的方式来介绍systemserver进程的监控者watchdog&#xff0c;通过本文您将了解watchdog的作用&#xff0c;它…

【机器学习】梯度下降算法

梯度下降算法 这篇博客更加详细&#xff0c;以下只是我个人的理解 梯度下降算法原理讲解——机器学习-CSDN博客 梯度下降算法是一种优化算法&#xff0c;通过梯度下降找到函数最小值时的自变量值。 其基本思想是沿着梯度方向的反方向更新参数&#xff0c;直到逼近函数的极值…

【LLM大模型】生成式人工智能大型语言模型的安全性:概述

生成性AI大型语言模型&#xff08;LLMs&#xff09;的安全性&#xff1a;概述 具有生成性AI能力的大型语言模型&#xff08;如ChatGPT&#xff09;正面临加速采用和创新。生成性AI&#xff08;GAI&#xff09;的日益普及不可避免地引发了对这些模型相关风险和安全性的担忧。本…

Linux 下 gdb 的使用

目录 一、概述1、安装和启动 GDB 二、 GDB 常用命令1、查看源码2、断点2.1 设置断点2.2 查看断点信息2.3 删除断点2.4 激活/禁用断点2.5 观察断点2.6 捕获信号2.7 线程中断 3、查看信息3.1 查看数据3.2 查看内存3.3 查看栈信息3.4 查看栈帧信息 4、运行、调试5、编辑和搜索 一、…

MacOS安装 Python 和 PyCharm

MacOS安装 Python3.12.5 和 PyCharm 小阿呜有话说一、MacOS安装PythonPython官网下载 二、MacOS安装PyCharmPyCharm官网下载 叮嘟&#xff01;这里是小啊呜的学习课程资料整理。好记性不如烂笔头&#xff0c;今天也是努力进步的一天。一起加油进阶吧&#xff01; 小阿呜有话说 …

发完朋友圈就“退款”?黑神话的玩家是否都是“忠实粉丝”?

​声明&#xff1a;此篇为 ai123.cn 原创文章&#xff0c;转载请标明出处链接&#xff1a;https://ai123.cn/2228.html 《黑神话&#xff1a;悟空》自上线以来&#xff0c;便引发了玩家社区的广泛讨论。游戏的退款现象主要受到了一些技术问题和个人体验差异的影响。部分玩家因遇…

容器的ip地址不稳定问题、联合文件系统、核对时间、制作基础镜像

在docker中部署线上考试系统 1、部署前端服务器 # 上传本地下载的dist文件&#xff0c;因为上传的是目录&#xff0c;加-r选项 scp -r D:\云计算\压缩包\项目\dist root192.168.2.50:/root/ # 创建基础容器 [rootdocker ~]# docker run -it --name c0 centos:latest /bi…

SolidityFoundry BitMap

写合约的时候&#xff0c;记录某个账户的bool状态很常见&#xff0c;例如是否领取空投等&#xff0c;传统的写法mapping(uint256>bool)中一个slot只能存储一个账户的信息&#xff0c;在其他语言中&#xff0c;我们经常会用到bitmap来表示标志位&#xff0c;如果我们可以将bi…

银行卡三要素验证如何用Java进行调用

一、什么是银行卡三要素验证&#xff1f; 银行卡三要素验证又叫银行卡三要素核验、银行卡三要素校验、银行卡实名认证、银行卡三元素验证&#xff0c;即输入银行卡卡号、姓名、身份证号码&#xff0c;验证此三要素是否一致&#xff0c;该接口支持所有带银联标识的银行卡。 二…

langchain入门系列之五 初探代理

代理的核心思想是使用LLM来选择要采取的一系列动作。 在链式结构中&#xff0c;一系列动作是硬编码的&#xff08;在代码中&#xff09;。 在代理中&#xff0c;使用语言模型作为推理引擎来确定要采取的动作及其顺序。 代理 这是负责决定下一步采取什么动作的类。 这是由语言…

lidar3607.2 lidar360mls7.2 强大的雷达点云数据处理应用软件

1、LiDAR360是一款强大的激光雷达点云数据处理和分析平台&#xff0c;拥有超过10种先进的点云数据处理算法&#xff0c;可同时处理超过300G点云数据。平台包含丰富的编辑工具和自动航带拼接功能&#xff0c;可为地形、林业、矿山和电力行业&#xff08;参考LiPowerline软件&…

【HarmonyOS 4.0】@BuilderParam 装饰器

1. BuilderParam 装饰器 BuilderParam 装饰器用于装饰自定义组件(struct)中的属性&#xff0c;其装饰的属性可作为一个UI结构的占位符&#xff0c;待创建该组件时&#xff0c;可通过参数为其传入具体的内容。参数必须满足俩个条件&#xff1a; 2.1 参数类型必须是个函数&#x…

前端使用canvas绘制简单工作流-react

效果图如下&#xff1a; 目前只做了绘制部分&#xff0c;绘制方式也比较简单&#xff0c;点击工具栏中需要绘制的图形&#xff0c;在画布上左键点击将会绘制一个图形出来&#xff0c;工具栏选中第一个&#xff0c;再点击其他图像&#xff0c;长按鼠标左键可以移动&#xff0c;删…

丢掉Beyond Compare吧!新款文件差异对比工具WinMerge更具性价比!

今天想和大家分享一款非常实用的免费开源文件比较工具&#xff1a;WinMerge。 作为一名长期从事互联网行业的人&#xff0c;我经常需要处理大量的文档和代码文件&#xff0c;文件对比工具在我的日常工作中可谓是必不可少的“左膀右臂”。 也相信很多朋友在处理多个文档内容或者…