Ubuntu20.04下安装多CUDA版本,以及后续切换卸载

news2024/10/17 18:36:45

本方案的前提是假设机子上已经有一个版本的cuda,现在需要支持新的torch2.1.2和torchvision==0.16.2,于是来安装新的cuda

一、选择版本

如果我想安装支持torch2.1.2的cuda版本,到官网(https://pytorch.org/get-started/previous-versions/#v200)查看版本对应,发现11.8或者12.1可以支持torch2.1.2和torchvision==0.16.2

image-20241014094057455

nvidia-smi

查看自己的电脑能支持什么版本,根据结果我们的设备最高只能运行12.0版本,达不到12.1,所以选择安装11.8

image-20241014094807690

二、安装CUDA

到官网找到11.8:https://developer.nvidia.com/cuda-toolkit-archive,根据指引进行安装,即运行以下命令

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

image-20241014094322833

运行run之后,取消选中Driver,其他默认,然后Install

【注意如果这里没有Driver,可以参考其他博客先安装好Nvidia显卡驱动】

image-20241014095739610

三、安装Cudnn

进入官网:https://developer.nvidia.com/rdp/cudnn-archive,我要安装CUDA11.8,所以选择for CUDA 11.x下的内容

image-20241014095418748

下载完成后,运行以下命令来解压和配置

# 解压
tar -vxf ./cudnn-linux-x86_64-8.9.7.29_cuda11-archive.tar.xz
# 复制
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-20241014101132577

四、环境配置

最后运行官网中一开始的命令来完成安装(没有环境的先用前两行代码创建一个)

# conda create -n torch21 python=3.10 -y
# conda activate torch
conda install pytorch==2.1.2 torchvision==0.16.2 torchaudio==2.1.2 pytorch-cuda=11.8 -c pytorch -c nvidia

五、其他操作(切换/卸载CUDA版本)

(1)切换cuda版本

安装的时候我们电脑下可能已经有默认的cuda版本,安装新版本是是会支持覆盖的

image-20241014095827334

另外也可以通过以下命令切换

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

(2)卸载CUDA

如果想卸载CUDA,进入对应路径,运行以下命令后选中相应的(以卸载CUDA12.0为例),然后Done

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

image-20241014155430601

参考链接:

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

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

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

相关文章

【Python文件操作】掌握文件读写和目录管理的技巧!

【Python文件操作】掌握文件读写和目录管理的技巧! 在现代编程中,文件操作是不可避免的一部分,尤其是在处理数据、日志、配置文件等场景下。Python 提供了强大而简洁的文件操作方法,可以轻松完成文件的读取、写入和目录管理等操作…

005_django基于Python的乡村居民信息管理系统设计与实现2024_106f2qg9

目录 系统展示 开发背景 代码实现 项目案例 获取源码 博主介绍:CodeMentor毕业设计领航者、全网关注者30W群落,InfoQ特邀专栏作家、技术博客领航者、InfoQ新星培育计划导师、Web开发领域杰出贡献者,博客领航之星、开发者头条/腾讯云/AW…

SpringMVC源码-异常处理机制

定义一个异常处理类TestErrorController: Controller public class TestErrorController {RequestMapping("/exception")public ModelAndView exception(ModelAndView view) throws ClassNotFoundException {view.setViewName("index");throw new ClassNot…

Mysql主从集群搭建+分库分表+ShardingSphere(实战)

什么是 ShardingSphere 介绍 Apache ShardingSphere 是一款分布式的数据库生态系统, 可以将任意数据库转换为分布式数据库,并通过数据分片、弹性伸缩、加密等能力对原有数据库进行增强。 Apache ShardingSphere 设计哲学为 Database Plus,…

CRMEB标准版Mysql修改sql_mode

数据库配置 1.宝塔控制面板-软件商店-MySql-设置 2.点击配置修改,查找sql-mode或sql_mode (可使用CtrlF快捷查找) 3.复制 NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION 然后替换粘贴,保存 注:MySQL8.0版本的 第三步用…

Redis --- 第四讲 --- 常用数据结构 --- string类型

一、认识数据类型和编码方式 有序集合,相当于除了存储member之外,还需要存储一个score(权重,分数) Redis底层在实现上述数据结构的时候,会在源码层面,针对上述实现进行特定的优化,来…

文生图:Stable Diffusion、Midjourny

前言 Stable Diffusion(SD)和Midjourney(MJ)是当前流行的两款AI图像生成工具,它们各有特点和优势: **- Stable Diffusion是完全开源的,**这意味着用户可以免费使用,并且有技术能力…

excel如何把年龄转换为日期

总体的思路 我们从一个核心的日期函数出发 我们首先需要年月日 我的数据大概是这样的。 获取年份 第一步:提取岁前面的数字 left(目标单元格,“从左到右获取第几个字符”)第二步:替换掉数字后面的岁 第三步:新增一个单元格 在里面填入年 第四步:用…

Android系統Audio hal

一.Android系統Audio hal简介 Android系统的音频硬件抽象层(HAL)是系统与硬件之间的桥梁,允许音频应用和服务访问底层音频硬件,而无需直接与硬件交互。 主要组件: 音频 HAL 接口:定义了应用和服务如何调用音频硬件的规范。典型的音频操作包括播放、录制、音量控制等。 …

N1060A 50/85GHz精密型波形分析模块

N1060A 50/85GHz精密型波形分析模块 苏州新利通 概述 Keysight N1060A 精密型波形分析仪是一款数字通信分析仪(DCA)模块,可与 Keysight N1000A 主机兼容。 与是德科技的所有其他 DCA 模块一样,N1060A 提供了广泛的配置和性能选…

【C语言】数组函数冒泡排序bubble sort

数组:对于n个数字进行排序,就必须定义n个变量来存储。那么为了统一处理,选择数组就十分便捷了。 函数:将排序算法写到函数中,后续遇到所有的排序需求,都可以直接进行调用。 冒泡排序:受气泡在水…

HDFS详细分析

目录 一、HDFS架构 (1)Block - 数据块 (2)MetaData - 元数据 (3)NameNode - 主结点 (4)DataNode - 从结点 (5)SecondaryNameNode 二、HDFS的特点 &…

【19楼-注册安全分析报告】

前言 由于网站注册入口容易被黑客攻击,存在如下安全问题: 暴力破解密码,造成用户信息泄露短信盗刷的安全问题,影响业务及导致用户投诉带来经济损失,尤其是后付费客户,风险巨大,造成亏损无底洞…

2024年下软考——信息系统运行管理员考前30天冲刺学习指南!!!

2024下半年软考已经迫在眉睫了,还没有开始备考的小伙伴赶紧行动起来。为了帮助大家更好的冲刺学习,特此提供一份信息系统运行管理员考前30天学习指南。本指南包括考情分析、学习规划、冲刺攻略三个部分,可以参考此指南进行最后的复习要领&…

javaWeb项目-Springboot+vue-校园论坛系统功能介绍

本项目源码(点击下方链接下载):java-springbootvue-xx学校校园论坛信息系统实现源码(项目源码-说明文档)资源-CSDN文库 项目关键技术 开发工具:IDEA 、Eclipse 编程语言: Java 数据库: MySQL5.7 框架:ssm、Springboot…

鼠标移入盒子,盒子跟随鼠标移动

demo效果: 鼠标移入盒子,按下鼠标,开启移动跟随移动模式,再次按下关闭移动模式 涉及主要属性 在元素上单击鼠标按钮时输出鼠标指针的坐标: var x event.pageX; // 获取水平坐标 var y event.pageY; // 获取垂直坐标元素offsetL…

【含开题报告+文档+PPT+源码】基于SSM的景行天下旅游网站的设计与实现

开题报告 随着互联网的快速发展,旅游业也逐渐进入了数字化时代。作为一个旅游目的地,云浮市意识到了互联网在促进旅游业发展方面的巨大潜力。为了更好地推广云浮的旅游资源,提高旅游服务质量,云浮市决定开发一个专门的旅游网站。…

【python】用tk做一个简单的商品搜索更新展示的桌面应用

import tkinter as tk from tkinter import ttk import pandas as pddata_list [{id:1,name: 苹果, price: 6.5,tag:水果},{id:2,name: 香蕉, price: 2.5,tag:水果},{id:3,name: 葡萄, price: 8.5,tag:水果},{id:4,name: 橘子, price: 4.5,tag:水果}, ]df pd.DataFrame(data_…

SwiftUI 如何取得 @Environment 中 @Observable 对象的绑定?

概述 从 SwiftUI 5.0(iOS 17)开始,苹果推出了全新的 Observation 框架。它作为下一代内容改变响应者全面参与到数据流和事件流的系统中。 有了 Observation 框架的加持,原本需要多种状态类型的 SwiftUI 视图现在只需要 3 种即可大…

海康NVR管理平台EasyNVR多品牌NVR管理工具实现智能化视频管理介入现代化工厂

一、方案背景 在当今这个日新月异的时代,制造业作为国民经济的支柱之一,正经历着前所未有的变革。随着信息技术的飞速发展,工厂的现代化管理手段准确性也越来越高,越来越丰富,各种先进的技术手段比如视频监控系统&…