ubuntu配置多版本cuda+cudnn环境,及版本切换方法

ubuntu配置多版本cuda+cudnn环境,及版本切换方法

环境如下:

  • ubuntu 22.04
  • cuda v11.8
  • cudnn v8.9.7

文章目录

  • ubuntu配置多版本cuda+cudnn环境,及版本切换方法
    • 1.安装Nvidia显卡驱动
      • 1.1卸载默认的驱动`nouveau`
      • 1.2安装nvidia驱动
    • 2.安装cuda
    • 3.安装cudnn
    • 4.切换cuda版本
    • 5.卸载cuda
    • Reference

1.安装Nvidia显卡驱动

1.1卸载默认的驱动nouveau

lsmod | grep nouveau

查看nouveau驱动的启用情况,如果有输出表示nouveau驱动正在工作,如果没有内容输出则表示已经禁用了nouveau。如果启用了nouveau我们需要禁用它

sudo gedit /etc/modprobe.d/blacklist.conf

在文件的末尾追加两行

blacklist nouveau
options nouveau modeset=0

然后应用更改

sudo update-initramfs -u

这样我们就卸载了nouveau,然后重启电脑

1.2安装nvidia驱动

首先我们需要知道我们应该安装哪个版本的驱动,

ubuntu-drivers devices
Image

找到这个带recommended字样的版本号,然后打开软件和更新->附加驱动,选择刚才的版本号,然后应用更改,然后重启

Image

重启完毕后,输入

nvidia-smi
Image

可以看到我们这里的cuda最高支持12.2的版本

2.安装cuda

首先确认需要自己配置环境的使用版本,比如我希望配置一个pytorch v2.0.0的版本,我就需要去torch的官网查看相应的cudacudnn的版本

Image

比如这里支持CUDA 11.7CUDA 11.8,那么我们就去下载这两个版本的cuda中任意一个就行

cuda:https://developer.nvidia.com/cuda-toolkit-archive

然后选择自己的平台配置

Image

使用下面给出语句进行安装,例如,安装cuda 11.8的语句是:

wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda_11.8.0_520.61.05_linux.run
sudo sh cuda_11.8.0_520.61.05_linux.run

在安装的过程中,取消Driver的安装,如下:

Image

然后配置环境变量

sudo gedit ~/.bashrc

写入以下的环境变量,并保存

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

我们测试是否安装成功

nvcc -V

应该出现类似的结果:

Image

3.安装cudnn

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

进入官网选择自己cuda版本适配的cudnn,例如,我安装的是cuda 11.8,应该选择

Image

下载完毕后进行解压

tar -vxf ./cudnn-linux-x86_64-8.9.7.29_cuda11-archive

使用下面两条指令复制解压后文件夹中的文件到/usr/local/cuda-11.8/lib64//usr/local/cuda-11.8/include/

sudo cp cudnn-linux-x86_64-8.9.7.29_cuda11-archive/include/* /usr/local/cuda-11.8/include
sudo cp cudnn-linux-x86_64-8.9.7.29_cuda11-archive/lib/libcudnn* /usr/local/cuda-11.8/lib64

然后给其添加读写权限

sudo chmod a+r /usr/local/cuda-11.8/include/cudnn.h
sudo chmod a+r /usr/local/cuda-11.8/lib64/libcudnn*

然后测试安装是否正常

cat /usr/local/cuda-11.8/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
Image

4.切换cuda版本

假如你需要使用不同版本的torch,则需要切换多版本的cuda,现在我的ubuntu下安装了cuda 11.8cuda 11.0两个版本,我可以使用下列的方法来进行切换

Image

我之前的使用cuda -11.8,现在我需要切换到cuda -11.0,我可以使用如下的方法

sudo rm -rf /usr/local/cuda    #删除之前创建的软链接
sudo ln -s /usr/local/cuda-11.0 /usr/local/cuda    #创建链接到cuda-11.0的软链接
nvcc --version    #查看当前cuda版本

结果如下:

Image

5.卸载cuda

进入cuda的安装路径中,比如我需要卸载cuda 11.0版本

cd /usr/local/cuda-11.0/bin
sudo ./cuda-uninstaller

全选然后Enter

Image

然后

sudo rm -rf /usr/local/cuda-11.0

即可删除

Reference

[1]Ubuntu20.04下CUDA、cuDNN的详细安装与配置过程(图文)
[2]ubuntu下安装多版本cuda及版本切换教程
[3]超详细介绍Ubuntu系统安装CUDA和cuDNN【一站式服务!!!】

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

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

相关文章

分布式与一致性协议之MySQL XA协议

MySQL XA协议 概述 相信很多人都知道MySQL支持单机事务,那么在分布式系统中,涉及多个节点,MySQL又是怎样实现分布式事务的呢? 举个例子,一个业务系统需要接收来自外部的指令,然后访问多个内部其他系统来执…

Pycharm无法链接服务器环境(host is unresponsived)

困扰了很久的一个问题,一开始是在服务器ubuntu20.04上安装pycharm community,直接运行服务器上的pycharm community就识别不了anaconda中的环境 后来改用pycharm professional也无法远程连接上服务器的环境,识别不了服务器上的环境&#xff…

【Web后端】web后端开发简介_Servlet简介

1.web后端开发简介 Java企业级开发,也就是学习]avaEE(Enterprise Edition)版本,是一种结构和一套标准。在应用中开发的标准就是Servlet、jsp和JavaBean技术。jsp技术现在已基本处于淘汰状态,简单了解即可web后端开发,基于B/S模式的开发体系。…

雷蛇笔记本数据丢失怎么恢复?提供详细指南

在数字化时代,笔记本电脑已成为我们日常生活和工作中不可或缺的一部分。然而,尽管技术不断进步,数据丢失的风险仍然存在。雷蛇(Razer)作为一家知名的电脑硬件制造商,其笔记本电脑也难免会遇到这样的问题。当…

【数学】泰勒公式

目录 引言 一、泰勒公式 1.泰勒公式及推导 (1)推导 (2)公式 2.泰勒中值定理 (1)定理1(佩亚诺余项) (2)定理2(拉格朗日余项) …

接口自动化框架篇:使用python连接数据库 - PySQL介绍!

PySQL介绍:使用Python连接数据库的接口自动化框架 在接口自动化测试中,经常需要使用数据库来操作测试数据,验证接口返回的数据是否正确。Python是一种功能强大的编程语言,可以轻松地连接数据库,并进行各种数据库操作。…

每天五分钟深度学习:数学中的极值

本文重点 在数学领域中,极值是一个极其重要的概念,它不仅在纯数学理论研究中占据核心地位,而且在工程、物理、经济等实际应用领域也发挥着不可替代的作用。极值问题涉及函数的最大值和最小值,是微积分学中的一个基本问题。本文旨在详细介绍数学中的极值概念、性质、求解方…

【Vulhub靶场】Nginx 中间件漏洞复现

【Vulhub靶场】Nginx 中间件漏洞复现 一、Nginx 文件名逻辑漏洞(CVE-2013-4547)1. 影响版本2. 漏洞原理3. 漏洞复现 二、Nginx越界读取缓存漏洞(CVE-2017-7529)1. 漏洞详情2. 影响版本3. 漏洞复现 三、Nginx 配置错误导致漏洞&…

Spring JdbcTemplate实现自定义动态sql拼接功能

需求描述: sql 需要能满足支持动态拼接,包含 查询字段、查询表、关联表、查询条件、关联表的查询条件、排序、分组、去重等 实现步骤: 1,创建表及导入测试数据 CREATE TABLE YES_DEV.T11 (ID BINARY_BIGINT NOT NULL,NAME VARCH…

非模块化 Vue 开发的 bus 总线通信

个人感觉,JavaScript 非模块开发更适合新人上手,不需要安装配置一大堆软件环境,不需要编译,适合于中小项目开发,只需要一个代码编辑器即可开发,例如 vsCode。网页 html 文件通过 script 标签引入 JavaScrip…

使用Matplotlib绘制正弦和余弦函数曲线

前言 在数据可视化领域,Matplotlib是一个功能强大的Python库,它允许用户创建各种静态、交互式和动画图形。本文将引导您通过一个简单的示例,学习如何使用Matplotlib绘制正弦和余弦函数曲线。 第一步:导入必要的库: …

【漫画版】指挥官的排序战术:快速排序算法解密

作者介绍:10年大厂数据\经营分析经验,现任字节跳动数据部门负责人。 会一些的技术:数据分析、算法、SQL、大数据相关、python,欢迎探讨交流 欢迎加入社区:码上找工作 作者专栏每日更新: LeetCode解锁1000题…

基于自我对弈框架的偏好优化算法SPPO

传统的从人类反馈中进行强化学习(RLHF)的方法仰赖如Bradley-Terry模型等参数模型,但这样的模型难以充分捕捉人类偏好中的非递移性和非理性。最新的研究进展显示,直接使用偏好机率可以更准确地反映人类偏好,从而实现更灵活、更精确的语言模型对齐。本文提…

教你解决PUBG绝地求生登不进去 无法进入游戏 启动很慢的问题

尽管《绝地求生》(PUBG)以它那扣人心弦的战术竞技和逼真模拟的战场氛围风靡全球,揽获无数玩家的喜爱,但一些玩家在经历了一场血脉喷张的生存较量后,却不得不面对一个不那么愉悦的后续:游戏在结算阶段后出现…

YOLOv5改进 | 注意力机制 | 理解全局和局部信息的SE注意力机制

在深度学习目标检测领域,YOLOv5成为了备受关注的模型之一。本文给大家带来的是能够理解全局和局部信息的SE注意力机制。文章在介绍主要的原理后,将手把手教学如何进行模块的代码添加和修改,并将修改后的完整代码放在文章的最后,方…

C语言/数据结构——每日一题(分割链表)

一.前言 今天在LeetCode觉得很不错,想和大家们一起分享这道链表题——分割链表:https://leetcode.cn/problems/partition-list-lcci废话不多说,让我们直接进入正题吧。 二.正文 1.1题目描述 1.2题目分析 大致思路:我们可以通过…

从头开始的建材类电商小程序开发指南

在当今数字化时代,小程序已经成为了许多企业推广和销售的重要渠道。对于建筑材料行业来说,开发一个属于自己的小程序商城不仅可以提升产品曝光度,还可以提供更好的用户购物体验。下面,我们将逐步教你如何开发建筑材料行业小程序。…

文章分享:《肿瘤DNA甲基化标志物检测及临床应用专家共识(2024版)》

本文摘自于《肿瘤DNA甲基化标志物检测及临床应用专家共识(2024版)》 目录 1. DNA甲基化标志物概述 2 DNA甲基化标志物的临床检测 2.1 临床样本前处理注意事项 2.2 DNA甲基化标志物检测技术方法 2.2.1 DNA提取与纯化 2.2.2 DNA转化 2.2.3 DNA 甲基…

翻工第二次 Ant Design Pro 下载,发现问题,电脑网络配置有误,魔法了

一、相关网址链接 鱼皮的用户中心项目 (前端Ant Design Pro构建) 语雀 ## 没有选择umi版本这一步 Issue #11144 ant-design/ant-design-pro GitHub 关于umi ui图标未显示问题_umi ui不出现-CSDN博客 二、存在问题 导致下载速度慢 本人镜像代码写…

AI实景模型无人自动直播助手.减少商家在短视频线上卖货的成本,开启无人直播新时代!

在互联网时代,直播已经成为信息传播的主流方式,尤其是在年轻人中,直播更是备受追捧。然而,对于许多想要尝试直播的人来说,缺乏合适的主播可能成为一大障碍。那么,面对这一难题,如何实现手机无人…