当前位置: 首页 > news >正文

ubuntu18.04复现yolo v8之CUDA与pytorch版本问题以及多CUDA版本安装及切换

最近在复现yolo v8的程序,特记录一下过程

环境:ubuntu18.04+ros melodic

小知识:GPU并行计算能力高于CPU—B站UP主说的

Ubuntu可以安装多个版本的CUDA。如果某个程序的Pyorch需要不同版本的CUDA,不必删除之前的CUDA,可以实现多版本的CUDA切换

一、查看当前PyTorch使用的CUDA版本:

python -c "import torch; print(torch.version.cuda)"

注意:sudo ln -sf libcudnn.so.8.0.5 libcudnn.so.8
1.需要进入conda环境
2.进入conda环境命令:

conda activate ****

3.查看conda环境命令:

conda env list

二、假设ubuntu系统已经安装了CUDA,此时需要重新安装另外一个版本(如果你是第一次安装CUDA也没关系,重复下面步骤两次,选择不同的CUDA版本即可)。进入cuda官网,选择需要的版本。

原因:为什么如此麻烦下载多个版本的CUDA呢?因此我们在复现别人代码时,都会看到类似的要求:
Pip install the ultralytics package including all requirements in a Python>=3.8 environment with PyTorch>=1.8.
不同程序需要不同版本的python和pytorch,而pytorch和CUDA之间有一定的对应关系,如果不按要求安装,会造成后续报错,无法复现他人的程序。pytorch和CUDA的对应关系网站:
https://pytorch.org/get-started/previous-versions/

CUDA官网下载:https://developer.nvidia.com/cuda-toolkit
在这里插入图片描述

注意:官网页面显示的是最新版本的cuda,点击Resources中的Archive of Previous CUDA Releases,选择之前的版本,例如我这里选择的是CUDA Toolkit 11.1.1 (October 2020), Versioned Online Documentation
点击CUDA Toolkit 11.1.1即可

在这里插入图片描述
按照下图进行选择Linux—x86_64—Ubuntu—18.04—runfile(local)

在这里插入图片描述
下载方法可以参考我另外一篇博客:ubuntu系统配置CUDA和cuDNN

大致流程如下

安装:复制https://developer.download.nvidia.com/compute/cuda/11.1.1/local_installers/cuda_11.1.1_455.32.00_linux.run 到另外一个网页进行下载。

使用如下命令安装

sudo sh cuda_11.1.1_455.32.00_linux.run

后面的步骤为:

1. Q:Existing package manager installation of the driver found. It is strongly    │
│ recommended that you remove this before continuing.                          │
│ Abort                                                                        │
│ Continue
A:Continu2. Q:Do you accept the previously read EULA?(accept/decline/quit):
A:accept  # 接受协议
3.Q:
│ CUDA Installer                                                               │
│ - [X] Driver                                                                 │
│      [X] 455.32.00                                                           │
│ + [X] CUDA Toolkit 11.1                                                      │
│   [X] CUDA Samples 11.1                                                      │
│   [X] CUDA Demo Suite 11.1                                                   │
│   [X] CUDA Documentation 11.1                                                │
│   Options                                                                    │
│   Install   
A:
#注意根据提示:[ ]中没有X的即不选择,[X] 表示选择安装,因为已经提前安装了显卡驱动,所以把显卡驱动的安装选项取消掉:
#只有CUDA Toolkit 11.0是必选项,其他可选可不选
# Install进入下一步
4.Q: A symlink already exists at /usr/local/cuda. Update to this installation?    │
│ Yes                                                                          │
│ No   
A:N0,选择no,否则会创建一个软连接覆盖之前那个/usr/local/cuda

至此CUDA11.1安装成功

cuda版本切换和环境变量设置

1、在 ~/.bashrc 文件中设置cuda的环境变量内容如下,这样是可以做到cuda版本切换的,通过更换软连接方式:

gedit ~/.bashrc
添加环境变量,在~/.bashrc的最后添加以下内容export PATH=/usr/local/cuda/bin:$PATH  
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
export CUDA_HOME=/usr/local/cuda保存文件,然后运行命令:
source ~/.bashrc

安装后,在/usr/local路径下,通过ls命令查看是否存在新安装的CUDA目录:
在这里插入图片描述可以看到有之前安装的cuda-11.0和新安装的cuda-11.1

三、安装对应的cuDNN
安装新的版本的CUDA后,还要安装对应的cuDNN。
1、首先下载对应版本的cuDNN
百度搜索cuDNN官网,下载CUDA对应版本的cuDNN

https://developer.nvidia.cn/rdp/cudnn-archive

我下载的是Download cuDNN v8.0.5 (November 9th, 2020), for CUDA 11.1

在这里插入图片描述

此处下载:

cuDNN Library for Linux (x86_64)

2、cd到cudnn压缩包所在的文件夹下进行解压等操作:

tar -zxvf cudnn-11.1-linux-x64-v8.0.5.39.tgz
sudo cp cuda/include/cudnn.h /usr/local/cuda-11.1/include/ 
sudo cp cuda/lib64/libcudnn* /usr/local/cuda-11.1/lib64/
sudo chmod a+r /usr/local/cuda-11.1/include/cudnn.h /usr/local/cuda-11.1/lib64/libcudnn*cd /usr/local/cuda-11.1/lib64/
sudo ln -sf libcudnn.so.8.0.5 libcudnn.so.8

注意:这里cuda-后面的数字根据自己的版本号进行个修改,不知道的话可以Tab补全

四、CUDA版本的切换

1、删除原版本的cuda软连接

sudo rm -rf /usr/local/cuda

2、建立新的指向cuda-11.1的软连接

sudo ln -s /usr/local/cuda-11.1 /usr/local/cuda

3、重新查看当前CUDA版本

cd /usr/local/
stat cuda

在这里插入图片描述
终于搞定了,完结撒花~~

相关文章:

ubuntu18.04复现yolo v8之CUDA与pytorch版本问题以及多CUDA版本安装及切换

最近在复现yolo v8的程序,特记录一下过程 环境:ubuntu18.04ros melodic 小知识:GPU并行计算能力高于CPU—B站UP主说的 Ubuntu可以安装多个版本的CUDA。如果某个程序的Pyorch需要不同版本的CUDA,不必删除之前的CUDA,…...

Redis三种模式——主从复制,哨兵模式,集群

目录 一、主从复制 1.1主从复制的概念 1.2Redis主从复制作用 1.2.1数据冗余 1.2.2故障恢复 1.2.3负载均衡 1.2.4高可用基石 1.3Redis主从复制流程 1.4部署Redis 主从复制 1.4.1.环境部署 1.4.2.所有服务器都先关闭防火墙 1.4.3.所有服务器都安装Redis 1.4.4修改Master主节点R…...

mysql8.0.31新增只读远程普通用户

在 MySQL 8.0.31 中,可以通过以下步骤新增只读远程普通用户: 1、使用 root 用户登录 MySQL 数据库。 mysql -u root -p 2、创建用户: CREATE USER username% IDENTIFIED WITH mysql_native_password BY password ; 其中,username…...

揭开路由协议隐藏的风险

路由协议在互联网和基于其的服务的运行中发挥着至关重要的作用。然而,许多这些协议的开发都没有考虑到安全问题。 例如,边界网关协议 (BGP) 最初并未考虑对等点之间发生攻击的可能性。过去几十年来,BGP 中的起源和路径验证已投入了大量工作。…...

图片因固定宽高被拉伸了?object-fit:一个神奇的属性

一、问题产生的场景 近期在完成项目开发时,测试人员针对漫画长图上传后的展示提出了一个界面优化的点,因为其特点是长,但是我们展示图片的区域是固定的,如果我们按照正常思路将图片的宽高写死,确实占位大小的问题解决了…...

客户案例:中圣科技—CAC2.0防范盗号威胁,加固安全防线

客户背景 中圣科技(江苏)股份有限公司(以下简称“中圣科技”),是一家以技术研发为驱动,以清洁能源核心成套装备和节能环保工程服务为支撑的科技创新型企业。其以南京为核心运营基地,与当地政府…...

pandas数据分析40——读取 excel 合并单元格的表头

案例背景 真的很容易疯....上班的单位的表格都是不同的人做的,所以就会出现各种合并单元格的情况,要知道我们用pandas读取数据最怕合并单元格了,因为没规律...可能前几列没合并,后面几列又合并了....而且pandas对于索引很严格&am…...

Java后端开发面试题——微服务篇总结

Spring Cloud 5大组件有哪些? 随着SpringCloudAlibba在国内兴起 , 我们项目中使用了一些阿里巴巴的组件 注册中心/配置中心 Nacos 负载均衡 Ribbon 服务调用 Feign 服务保护 sentinel 服务网关 Gateway Ribbon负载均衡策略有哪些 ? RoundRobinRule&…...

第十一章MyBatis查询专题

返回单个Car 返回单个可以直接用Car接收返回参数 Car carCarMapper.getOne(100);返回多个Car 返回多个可以直接用List接收返回参数 List<Car> carCarMapper.getAll();用一个对象无法接受返回多个参数&#xff0c;用list可以接收返回一个参数 返回Map 如果没有合适的…...

测试驱动开发(TDD)

测试驱动开发&#xff08;TDD&#xff09; 本篇文章简单叙述一下什么是测试驱动开发&#xff0c;以及怎么进行测试驱动开发&#xff01; TDD &#xff08;Test Driven Development&#xff09;&#xff1a;&#xff08;源于极限编程&#xff08;XP&#xff09;&#xff09;在不…...

深度学习|CNN卷积神经网络

CNN卷积神经网络 解决的问题人类的视觉原理原理卷积层——提取特征池化层——数据降维全连接层——输出结果 应用图像处理自然语言处理 解决的问题 在CNN没有出现前&#xff0c;图像对人工智能来说非常难处理。 主要原因&#xff1a; 图像要处理的数据量太大了。图像由像素组…...

【洁洁送书第五期】为什么我们要了解可观测性工程

导读 可观测性已成为一个热门话题&#xff0c;并广受关注。随着它的普及&#xff0c;“可观测性”不幸被误作“监控”或“系统遥测”的同义词。可观测性是软件系统的一个特征。而且&#xff0c;只有当团队采用新的实践进行持续开发时&#xff0c;才能在生产软件系统中有效利用这…...

将vue项目通过electron打包成windows可执行程序

将vue项目打包成windows可执行程序 1、准备好dist将整个项目打包 npm run build2、安装electron依赖 npm install electron --save-dev npm install electron-packager --save-dev"electron": "^13.1.4", "electron-packager": "^15.2.0…...

【0基础入门Python Web笔记】三、python 之函数以及常用内置函数

三、python 之函数以及常用内置函数 函数函数定义函数调用函数参数返回值 常用内置函数input()函数range()函数其它 更多实战项目可进入下方官网 函数 函数是一种用于封装可重复使用代码块的工具&#xff0c;能够将一系列操作组织成一个逻辑单元。 函数定义 在Python中&…...

相交链表00

题目链接 相交链表 题目描述 注意点 保证 整个链式结构中不存在环函数返回结果后&#xff0c;链表必须 保持其原始结构如果 listA 和 listB 没有交点&#xff0c;intersectVal 为 0 解答思路 两个链表从头开始遍历&#xff0c;如果其是在同一个位置处相交&#xff0c;则在…...

怎样压缩mp4视频大小?

怎样压缩mp4视频大小&#xff1f;由于视频文件的体积通常比其他类型的文件更大&#xff0c;因此它们需要更多的存储空间来保存。但是&#xff0c;如果我们的设备、应用程序或平台不支持某些视频格式或分辨率&#xff0c;或者我们没有足够的存储空间来容纳这些大型视频文件&…...

ubuntu20.04 安装使用 Indemind 双目相机

1、先按照官方wiki搭建环境 Ubuntu 安装 — IMSEE SDK 1.4.2 文档&#xff08;ubuntu20使用官网会报错&#xff0c;可以参考我下面的步骤&#xff09; 1.1、获取代码 sudo apt-get install git git clone https://github.com/indemind/IMSEE-SDK.git 1.2、准备依赖 cd <…...

一文读懂设备管理系统:是什么、谁需要、怎样选

工业的迅猛发展让人类向前迈出了史无前例的步伐&#xff0c;工业4.0将我们又带入了一个信息化技术促进工业变革的新时代——智能化时代。一台台机器设备是工业发展史上必不可少的参与者&#xff0c;但企业对设备的管理存在种种痛点&#xff0c;比如生产设备多&#xff0c;但备件…...

删除链表的中间节点

题目&#xff1a; 示例&#xff1a; 思路&#xff1a; 这个题类似于寻找链表中间的数字&#xff0c;slow和fast都指向head&#xff0c;slow走一步&#xff0c;fast走两步&#xff0c;也许你会有疑问&#xff0c;节点数的奇偶不考虑吗&#xff1f;while执行条件写成fast&&…...

Q/GDW 1597-2015《国家电网公司应用软件系统通用安全要求》

电力安全测试报告 电力行业检测标准 随着信息技术的快速发展和广泛应用&#xff0c;应用软件系统已成为企业信息化建设中不可或缺的重要组成部分。然而&#xff0c;应用软件系统的安全问题也随之而来&#xff0c;给企业和用户带来了潜在的风险和威胁。为了提高应用软件系统的…...

Qwen3.5-35B-AWQ-4bit企业应用指南:教育题图解析、医疗影像初筛、办公文档理解

Qwen3.5-35B-AWQ-4bit企业应用指南&#xff1a;教育题图解析、医疗影像初筛、办公文档理解 1. 引言&#xff1a;当AI学会“看图说话”&#xff0c;企业效率能提升多少&#xff1f; 想象一下这样的场景&#xff1a;一位老师需要快速从几十张试卷中找出典型错题&#xff0c;一位…...

M2LOrder模型LSTM原理浅析与实战:时序情感分析入门

M2LOrder模型LSTM原理浅析与实战&#xff1a;时序情感分析入门 你是不是经常看到一些智能客服或者社交平台&#xff0c;能分析出一段对话里用户情绪的变化&#xff1f;比如&#xff0c;用户一开始有点生气&#xff0c;聊着聊着又缓和了&#xff0c;最后还挺满意。这种对“情绪…...

用Python和ROS 2 Humble手把手教你写一个简易机械臂仿真器(附完整代码)

用Python和ROS 2 Humble构建2自由度机械臂仿真器&#xff1a;从零实现运动学与轨迹可视化 在机器人开发中&#xff0c;机械臂的运动控制一直是核心难点。传统实体设备的高成本和复杂调试流程让许多开发者望而却步。本文将带你用Python和ROS 2 Humble构建一个完整的2自由度机械臂…...

【昇腾】Deepseek双机:高效网络配置与故障排查指南

1. 昇腾AI双机组网基础架构 第一次接触昇腾AI服务器双机部署时&#xff0c;最让我头疼的就是网络架构设计。不同于普通服务器的千兆网卡互联&#xff0c;昇腾NPU的200G/400G高速网络接口需要特殊的组网方案。这里我结合自己踩过的坑&#xff0c;给大家拆解两种最常见的组网模式…...

PCB板验证

铺铜完成是PCB设计中的一个重要里程碑&#xff0c;但还不是终点。在发送给板厂生产之前&#xff0c;还需要完成一系列关键的验证、优化和文件输出工作。简单来说&#xff0c;铺铜之后的标准流程是&#xff1a;设计验证&#xff08;DRC/DFM&#xff09; → 必要分析&#xff08;…...

群晖ARPL界面IP显示正常但Synology Assistant搜不到?试试这5个排查步骤

群晖ARPL界面IP显示正常但Synology Assistant搜不到的深度排查指南 当你兴奋地完成黑群晖的ARPL引导安装&#xff0c;在启动界面看到系统已经成功获取IP地址&#xff0c;却突然发现Synology Assistant工具死活搜不到这个IP时&#xff0c;那种从云端跌入谷底的感觉我太熟悉了。这…...

UICKeyChainStore常见问题解答:解决开发者遇到的典型问题

UICKeyChainStore常见问题解答&#xff1a;解决开发者遇到的典型问题 【免费下载链接】UICKeyChainStore UICKeyChainStore is a simple wrapper for Keychain on iOS, watchOS, tvOS and macOS. Makes using Keychain APIs as easy as NSUserDefaults. 项目地址: https://gi…...

25619+ASMR资源一键获取:让音频收藏效率提升10倍的智能下载工具

25619ASMR资源一键获取&#xff1a;让音频收藏效率提升10倍的智能下载工具 【免费下载链接】asmr-downloader A tool for download asmr media from asmr.one(Thanks for the asmr.one) 项目地址: https://gitcode.com/gh_mirrors/as/asmr-downloader 在数字音频时代&am…...

如何解决OpenCode在开发大型项目时的“特性丢失”与“特性退化”问题?

你遇到的情况在大型项目中使用 AI 编程助手时非常典型。随着项目规模扩大&#xff0c;AI 生成的代码容易出现“特性退化”和“特性丢失”&#xff0c;核心原因在于上下文窗口有限、模型对项目全局理解不足、以及缺乏稳定的开发规范约束。针对 OpenCode 这类 AI 编程助手&#x…...

高等数学实战解析:定积分换元法与分部积分法的核心技巧

1. 定积分换元法的实战技巧 第一次接触定积分换元法时&#xff0c;我完全被那些符号变换绕晕了。直到后来在物理实验中遇到一个弹簧振子的能量计算问题&#xff0c;才真正明白这个方法的精妙之处。想象你手里拿着一根橡皮筋&#xff0c;想要测量拉伸它需要的总能量——这就是定…...