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

news2025/4/4 20:20:28

最近在复现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:Continu

2. 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

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

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

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

相关文章

wazuh环境配置

目录 一、wazuh的安装 1.1官方仓库安装 1.2虚拟机OVA安装 1.2.1 然后执行下面命令 1.2.2 这里还要下载脚本和config.yml配置文件,用来生成证书​编辑 1.2.3然后编辑config.yml文件,将下面的三个IP地址改为一样的 1.2.4运行./wazuh-certs-tool.sh以…

Linux Ubuntu系统安装OpenVPN服务

OpenVPN Ubuntu/Linux 服务端安装 官方文档:https://community.openvpn.net/openvpn/wiki/Openvpn24ManPage 介绍 嘿,今天我们要探讨的话题是OpenVPN——那个让你在互联网上以安全又私密的方式冲浪的神奇工具。 首先,你可能会问&#xff…

机器学习模型的可解释性算法汇总

模型可解释性汇总 现有许多机器学习模型,尤其是深度学习模型,虽然他们的预测效果很好,但不具备很强的解释性,难以解释模型内部是如何作出决策的。这确实会带来很多问题: 信任度问题。如果一个模型无法解释自身,人们很难 100%信任它。这对于一些重要应用场景如医疗诊断来说尤其重…

【安全】原型链污染 - Code-Breaking 2018 Thejs

目录 准备工作 环境搭建 加载项目 复现 代码审计 payload 总结 准备工作 环境搭建 Nodejs BurpSuite 加载项目 项目链接 ① 下载好了cmd切进去 ② 安装这个项目 可以检查一下 ③运行并监听 可以看到已经在3000端口启动了 复现 代码审计 const fs require(fs) cons…

整理mongodb文档:聚合管道

个人博客 整理mongodb文档:聚合管道 个人博客,求关注,电脑版看体验更加,如果不够清晰,请指出来,谢谢 文章概叙 文章主要通过几个常用的聚合表达式来介绍聚合管道的使用,以及从索引的角度来介绍聚合管道…

使用lambda表达式提取共用代码使其更加简洁

1、在开发预下单接口访问并发问题出现需要加锁代码如下 RLock lock redissonClient.getLock(String.format(appointmentKey, activityId, studentId));try {boolean tryLock lock.tryLock(10, 20, TimeUnit.SECONDS);if (tryLock) {AppointmentMallOrderInfoDTO appointmentM…

【修改MAC地址工具】-TMAC

本文介绍修改MAC地址的神器小工具Technitium-MAC-Address-Changer 1. 下载地址 地址1: https://technitium.com/tmac/ 地址2: 链接:https://pan.baidu.com/s/1-jtwQ936gtepVWXKo_qwfg 提取码:2n1s 2. 安装 直接双击就可以安装…

iTwinCapture中文版原ContextCapture安装包以及安装教程

iTwinCapture软件安装教程 一、获取软件 中文安装包评论区或后台回复iTwinCapture 在App Store或Google Play搜索软件名称"iTwin Capture",下载安装软件。 您也可以在Bentley官网下载对应的iTwin Capture版本。 二、软件安装 点击下载后的安装包,根据提示完成安装…

NR SDAP

在NR系统的核心网中,业务不再以EPS承载的形式下发到接入网,而是以QoS flow的形式下发到接入网。在核心网引入QoS flow之后,可以提供比EPS承载更好的QoS粒度,从而更好地对IP数据流进行管理。一个QoS flow由一个或多干IP data stream聚合而成。因此,在核心网中,IP flow映射…

git 统计(命令)

查询某人某个时刻提交了多少代码 added 添加代码 removed 删除代码 total 总代码 git log --author刘俊秦 --since2023-08-01 00:00:00 --until2023-08-23 23:00:00 --prettytformat: --numstat | awk { add $1; subs $2; loc $1 - $2 } END { printf "added lines: %s…

JW0818近电报警芯片

JW0818 市电感应报警电路适用于电业人员和电信行业施工人员的安全保护用品–近电预警器 报警电路。 特别注意芯片引脚6,输出信号是方波,而不是高低电平;在产品开发过程遇到这个坑。

C++中的抽象类和接口

面向对象中的抽象概念 在进行面向对象分析时,会发现一些抽象的概念! 图形的面积如何计算? 什么是抽象类? 在现实中需要知道具体的图像类型才能求面积,所以对概念上的 "图形" 求面积是没有意义的&#xff…

私有化部署即时通讯平台,30分钟替换钉钉和企业微信

随着企业对即时通讯和协作工具的需求不断增长,私有化部署的即时通讯平台成为企业的首选。WorkPlus作为有10余年行业深耕经验与技术沉淀品牌,以其安全高效的私有化部署即时通讯解决方案,帮助企业在30分钟内替换钉钉和企业微信。本文将深入探讨…

基于Jenkins自动打包并部署docker、PHP环境,ansible部署-------从小白到大神之路之学习运维第86天

第四阶段提升 时 间:2023年8月23日 参加人:全班人员 内 容: 基于Jenkins部署docker、PHP环境 目录 一、环境部署 (一)实验环境,服务器设置 (二)所有主机关闭防火墙和selinu…

Docker容器与虚拟化技术:Gitlab账户注册

目录 一、实验 1.gitlab 一、实验 1.gitlab (1) 概念 GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的Web服务。 (2)官网 The DevSecOps Platform | GitLab (3&#…

nginx 一个端口配置前后端分离项目访问

nginx 一个端口配置前后端分离项目访问 nginx配置 server {listen 8888;server_name _;location ~ .*\.(gif|jpg|jpeg|png|pdf|txt|zip|rar|7z|doc|docx|xls|xlsx|ppt|pptx|mp3|mp4)$ {root D:/platform/tomcat/apache-tomcat-9.0.31/webapps/resources;}location /api/…

智慧灌区闸控一体化解决方案

智慧灌区闸控一体化解决方案是指将灌溉系统中的闸门控制与水文监测、远程通信和数据管理等功能相集成,实现对灌区水资源的智能化管理和控制的方案。以下是智慧灌区闸控一体化解决方案的主要组成部分: ■闸门控制系统:包括闸门、闸门执行器和控…

计算机视觉入门 4)滑动窗口

系列文章目录 计算机视觉入门 1)卷积分类器计算机视觉入门 2)卷积和ReLU计算机视觉入门 3)最大池化计算机视觉入门 4)滑动窗口计算机视觉入门 5)自定义卷积网络计算机视觉入门 6) 数据集增强(D…

WoShop跨境电商系统开发:打造全球畅销产品

随着全球贸易的发展,跨境电商成为了许多企业拓展市场、增加盈利的重要途径。而要在跨境电商领域取得成功,开发一个高效、稳定的跨境电商系统是至关重要的。本文将为您详细介绍跨境电商系统开发,以及打造全球畅销产品的关键要素和方法。 一、…

H5页面跳转到公众号关注页面

效果展示: 未关注展示关注;已关注展示发消息 实现步骤: 登录微信公众平台 : https://mp.weixin.qq.com/鼠标右键选择查看网页源代码,找到uin_base64值如果没有uin_base64,那就找到uin进行base64编码编码地…