Linux 35.5 + JetPack v5.1.3@CUDA安装和版本切换

Linux 35.5 + JetPack v5.1.3@CUDA安装和版本切换

  • 1. 源由
  • 2. 现象
  • 3. 分析
    • 3.1 看本质
    • 3.2 善动脑
    • 3.3 笔记回忆
    • 3.4 底层思考
    • 3.5 多版本
  • 4. 版本切换
  • 5. 总结

1. 源由

最近遇到一些CUDA编程,以及编译链接过程出现一些版本不匹配的问题。

首先,申明下,本人是从来没有做过CUDA开发的。想在此表达的意思,只要底层概念清楚,去理解解决一些问题,还是能非常快的搞定的(反正我花了大概2个小时解决CUDA版本不一致导致无法编译成功的问题)。

2. 现象

从提示角度看,编译链接的时候发现找到了CUDA 12.6版本,但是要求使用11.4的版本。

注:之前这个软件包编译链接一切顺利,突然莫名其妙的就这样了。妥妥的直接崩溃!!!

-- +++ processing catkin package: 'camera_models'
-- ==> add_subdirectory(VINS-Fusion/camera_models)
CMake Error at /usr/share/cmake-3.16/Modules/FindPackageHandleStandardArgs.cmake:146 (message):Could NOT find CUDA: Found unsuitable version "12.6", but required is exactversion "11.4" (found /usr/local/cuda)
Call Stack (most recent call first):/usr/share/cmake-3.16/Modules/FindPackageHandleStandardArgs.cmake:391 (_FPHSA_FAILURE_MESSAGE)/usr/share/cmake-3.16/Modules/FindCUDA.cmake:1104 (find_package_handle_standard_args)/usr/local/lib/cmake/opencv4/OpenCVConfig.cmake:86 (find_package)/usr/local/lib/cmake/opencv4/OpenCVConfig.cmake:108 (find_host_package)VINS-Fusion/camera_models/CMakeLists.txt:16 (find_package)

3. 分析

底层逻辑思维的重要性,在于透过现象看本质;而技术出发的角度不仅仅是善于动脑,更要学会动手。

3.1 看本质

看这篇文章的小伙伴,不知道有几个用过Windows 95/98的?呵呵,如果用过,请评论留言。因为这样的小伙伴依然在这样一线动脑的可能不多了。

在上述系统上,如果出现蓝屏或者系统重启,通常Windows操作系统会提示用户,请卸载最近安装的程序(应用软件或者驱动程序)。

因此,大概率是最近安装什么导致了这个当前系统在编译链接的时候由于底层库或者配置环境的变更,导致了此次错误。

回忆:是的,我装了CUDA 12.6,而且一开始装了12.6,nvcc --version命令还用不了,还需要修改PATH路径。

好吗,估计这里就是问题的原因了。可是乍解决呢?知道管个PPPPPPPP用,,,所以,,,,

3.2 善动脑

俗话说“懒人多福”,在此就是,既然我都装了最新的CUDA12.6,凭什么我要换回去,再说了我也没有删除或者卸载CUDA 11.4啊。

能不能两个都要,随意切换呢?

3.3 笔记回忆

俗话说“好记性,不如烂笔头”,笔者的习惯就是干活干事,都会比较好的做一些简单的记录。

有以下几个好处:

  1. 能够有个过程记录,以免受到干扰忘记做到哪里了;
  2. 事后可提供详实的复现步骤;
  3. 根据前面的工序,通过记录内容,进行回退工作;
  4. 根据实验步骤或者先后次序,结合结果进行底层逻辑分析,定位可能问题;
  • CUDA Toolkit 12.6 Update 1 Downloads
    在这里插入图片描述
$ wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/arm64/cuda-ubuntu2204.pin
$ sudo mv cuda-ubuntu2204.pin /etc/apt/preferences.d/cuda-repository-pin-600
$ wget https://developer.download.nvidia.com/compute/cuda/12.6.1/local_installers/cuda-tegra-repo-ubuntu2204-12-6-local_12.6.1-1_arm64.deb
$ sudo dpkg -i cuda-tegra-repo-ubuntu2204-12-6-local_12.6.1-1_arm64.deb
$ sudo cp /var/cuda-tegra-repo-ubuntu2204-12-6-local/cuda-*-keyring.gpg /usr/share/keyrings/
$ sudo apt-get update
$ sudo apt-get -y install cuda-toolkit-12-6 cuda-compat-12-6
$ export PATH=/usr/local/cuda/bin:$PATH
$ export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH

3.4 底层思考

  • 环境变量
$ export PATH=/usr/local/cuda/bin:$PATH
$ export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
  • 安装路径,第一层
$ nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2024 NVIDIA Corporation
Built on Wed_Aug_14_10:14:07_PDT_2024
Cuda compilation tools, release 12.6, V12.6.68
Build cuda_12.6.r12.6/compiler.34714021_0
  • 安装路径,第二层
$ ls /usr/local/cuda -l
lrwxrwxrwx 1 root root 22 94 08:05 /usr/local/cuda -> /etc/alternatives/cuda
$ ls /etc/alternatives/cuda -l
lrwxrwxrwx 1 root root 20 914 07:09 /etc/alternatives/cuda -> /usr/local/cuda-12.6

3.5 多版本

那现在有哪些CUDA在系统上,分别是如何安装的?

$ ls /usr/local/cuda -l
lrwxrwxrwx 1 root root 22 94 08:05 /usr/local/cuda -> /etc/alternatives/cuda$ ls /etc/alternatives/cuda* -l
lrwxrwxrwx 1 root root 20 914 07:09 /etc/alternatives/cuda -> /usr/local/cuda-12.6
lrwxrwxrwx 1 root root 20 94 08:05 /etc/alternatives/cuda-11 -> /usr/local/cuda-11.4
lrwxrwxrwx 1 root root 20 914 07:09 /etc/alternatives/cuda-12 -> /usr/local/cuda-12.6

4. 版本切换

  • Step 1:编辑 .bashrc 文件

在文件末尾添加:

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

保存并退出后,运行:source ~/.bashrc

  • Step 2:切换 CUDA 版本
$ sudo rm /etc/alternatives/cuda
$ sudo ln -s /usr/local/cuda-11.4 /etc/alternatives/cuda$ ls /etc/alternatives/cuda -l
lrwxrwxrwx 1 root root 20 914 10:01 /etc/alternatives/cuda -> /usr/local/cuda-11.4

因为环境变量是关联在/usr/local/cudabinlib64的,所以环境变量不需要更新。

  • Step 3:验证当前CUDA版本
$ nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2022 NVIDIA Corporation
Built on Sun_Oct_23_22:16:07_PDT_2022
Cuda compilation tools, release 11.4, V11.4.315
Build cuda_11.4.r11.4/compiler.31964100_0

注:如果实在不放心,重启下板子,看看是否还有cache什么的问题(这个逻辑,还没有深入研究)。

  • Step 4:重新编译ROS工程
$ rm build/ devel/ -rf
$ catkin_make

5. 总结

当然除了这个方法以外,还可以通过工程里面指定编译的CUDA版本。

总的来说,学会底层逻辑思维(透过现象看本质),勤于动手,事情总是能解决的!

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

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

相关文章

No module named MYSQLdb 问题解决

问题: 导入写好的数据库时报错 解决:pip install mysql-python (又报错) 找了网上的方法: 执行 pip install PyMySQL,将数据库连接改为 mysqlpymysql://username:passwordserver/db,接下来的操…

prompt实用技巧-AI+Mermaid【酷炫钉钉文档】

AI 新技能,最近 chatGPTo1 发布后模型能力出现了新的跨越,之前模型的一本正经的胡说八道幻想模式,让AI 对待理科推理明显弱于文案的 AGI 的生成。 prompt engineer 工程师程序员的福音 prompt 内容如下, 按照以上格式生成创建公…

安卓玩机工具-----ADB与 FASTBOOT模式 图形化 多功能玩机刷机工具

工具说明 这款工具是英文版。易于使用的工具提供了用于运行 ADB 和 Fastboot 命令的图形用户界面。ADB 功能包括旁加载、安装和卸载应用程序、测试设备以及重新启动到不同的模式。可以使用 fastboot 命令进行设备管理;其中包括检查 Antirollback 和 active slots 等变…

鸿蒙 ArkUI组件一

ArkUI组件 布局 布局指用特定的组件或者属性来管理用户页面所放置UI组件的大小和位置。在实际的开发过程中,需要遵守以下流程保证整体的布局效果: 确定页面的布局结构。分析页面中的元素构成。选用适合的布局容器组件或属性控制页面中各个元素的位置和大…

react crash course 2024 (1)理论概念

state的作用 react hooks 而无需写一个class jsx 样式用 spa

Python 数学建模——ARMA 时间序列分析

文章目录 前言使用前提平稳性检验白噪声检验 用法代码实例第一步——平稳性分析方法一方法二方法三 第二步——白噪声分析第三步——确定参数第四步——模型构建与检验检验模型效果预测未来数据 前言 常见的时间序列分析方法有很多,之前介绍了一个稍微新颖的 Prophe…

Springboot项目打war包运行及错误解决

一,打war包 1. 修改pom.xml 为了不影响原pom.xml, 我复制了一个文件叫pom_war.xml , 需要打war包就采用pom_war.xml进行打war包, 你也可以直接修改pom.xml ① 打包方式改为war 没有就增加此配置 <packaging>war</packaging> ② 排除内嵌tomcat依赖 <de…

AI+代码审核平台CodeSec获CCIA中国网络安全创新创业大赛总决赛三等奖

近日&#xff0c;由中央网信办指导&#xff0c;中国网络安全产业联盟&#xff08;CCIA&#xff09;主办的2024年中国网络安全创新创业大赛总决赛及颁奖典礼在国家网络安全宣传周落下帷幕。开源网安“AI代码审核平台CodeSec V4.0” 凭借在AI方向的技术创新、技术突破及功能应用创…

[数据集][目标检测]俯拍航拍森林火灾检测数据集VOC+YOLO格式6116张2类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;6116 标注数量(xml文件个数)&#xff1a;6116 标注数量(txt文件个数)&#xff1a;6116 标注…

ESP8266做httpServer提示Header fields are too long for server to interpret

CONFIG_HTTP_BUF_SIZE512 CONFIG_HTTPD_MAX_REQ_HDR_LEN1024 CONFIG_HTTPD_MAX_URI_LEN512CONFIG_HTTPD_MAX_REQ_HDR_LEN由512改为1024

基础GAN生成式对抗网络(pytorch实验)

&#xff08;Generative Adversarial Network&#xff09; 一、理论 https://zhuanlan.zhihu.com/p/307527293?utm_campaignshareopn&utm_mediumsocial&utm_psn1815884330188283904&utm_sourcewechat_session 大佬的文章中的“GEN的本质”部分 二、实验 1、数…

【F的领地】项目拆解:少儿英语虚拟资料项目 | 虚拟资料类目 | 学会利用 AI 去生成素材

项目介绍 前几天我分享的小学教辅资料整合项目&#xff0c;已经有学员私信我&#xff0c;说在实操的过程碰到问题了。 我给出了对应的解答&#xff0c;问了下收益&#xff0c;虽然才出十几单&#xff0c;但起码是行动了。 碰到问题&#xff0c;并不可怕&#xff0c;我之前博…

数业智能心大陆探索生成式AIGC创新前沿

近日&#xff0c;数业智能心大陆参与了第九届“创客中国”生成式人工智能&#xff08;AIGC&#xff09;中小企业创新创业大赛。在这场汇聚了众多创新力量的研讨过程中&#xff0c;广东数业智能科技有限公司基于多智能体的心理健康技术探索与应用成果&#xff0c;从众多参赛者中…

「Qt Widget中文示例指南」如何实现一个系统托盘图标?(二)

Qt 是目前最先进、最完整的跨平台C开发工具。它不仅完全实现了一次编写&#xff0c;所有平台无差别运行&#xff0c;更提供了几乎所有开发过程中需要用到的工具。如今&#xff0c;Qt已被运用于超过70个行业、数千家企业&#xff0c;支持数百万设备及应用。 System Tray Icon&a…

农产品自动识别系统(Java+Springboot+SSM+Vue+Maven+二维码溯源+识别农作物CNN模型PyTorch框架)

简介&#xff1a; 本系统有前后台的区分&#xff0c;分别由用户及管理员使用&#xff0c;其中用户还可以使用移动端登录。 用户端分为注册登录模块&#xff1b;个人信息模块&#xff1b;二维码模块&#xff1b;文章模块&#xff1b;溯源信息模块&#xff1b;农产品识别模块&a…

目标检测中的解耦和耦合、anchor-free和anchor-base

解耦和耦合 写在前面 在目标检测中&#xff0c;objectness&#xff08;或 objectness score&#xff09;指的是一个评分&#xff0c;用来表示某个预测框&#xff08;bounding box&#xff09;中是否包含一个目标物体。 具体来说&#xff0c;YOLO等目标检测算法需要在每个候选区…

深入理解Python中的生成器:高效迭代与延迟计算的艺术

在处理大量数据时&#xff0c;如何有效地管理内存成为了一个关键问题。Python中的生成器&#xff08;Generator&#xff09;提供了一种优雅的解决方案&#xff0c;它允许你在迭代过程中按需生成数据&#xff0c;而不是一次性加载所有数据到内存中。本文将详细探讨生成器的工作原…

OSSEC搭建与环境配置Ubuntu

尝试使用Ubuntu配置了OSSEC&#xff0c;碰见很多问题并解决了&#xff0c;发表博客让后来者不要踩那么多坑 环境 &#xff1a; server &#xff1a;Ubuntu22.04 64位 内存4GB 处理器4 硬盘60G agent: 1.Windows11 64位 2.Ubuntu22.04 64位 服务端配置 一、配置安装依赖项&…

信息安全数学基础(11)同余的概念及基本性质

一、同余的概念 同余是一个数学概念&#xff0c;用于描述两个数在除以某个数时所得的余数相同的情况。具体地&#xff0c;设m是一个正整数&#xff0c;a和b是两个整数&#xff0c;如果a和b除以m的余数相同&#xff0c;则称a和b模m同余&#xff0c;记作a≡b(mod m)。反之&#x…

筑牢网络安全防线:为数字时代保驾护航

《筑牢网络安全防线&#xff1a;为数字时代保驾护航》 一、网络安全&#xff1a;数字时代的关键课题 网络安全在当今数字时代的重要性愈发凸显。2024 年国家网络安全宣传周以 “网络安全为人民&#xff0c;网络安全靠人民” 为主题&#xff0c;深刻体现了网络安全与每个人息息…