Ubuntu 20.04下多版本CUDA的安装与切换 超详细教程

目录

  • 前言
  • 一、安装 CUDA
    • 1.找到所需版本对应命令
    • 2.下载 .run 文件
    • 3.安装 CUDA
    • 4.配置环境变量
      • 4.1 写入环境变量
      • 4.2 软连接
    • 5.验证安装
  • 二、安装 cudnn
    • 1.下载 cudnn
    • 2.解压文件
    • 3.替换文件
    • 4.验证安装
  • 三、切换 CUDA 版本
    • 1.切换版本
    • 2.检查版本

前言

当我们复现代码时,总会需要不同版本的 CUDA 。此时,我们就需要安装多个版本的 CUDA ,并实现灵活切换。

本文将在已有 CUDA11.3 的 Ubuntu20.04 下,安装 CUDA11.8 。

已经存在的CUDA环境

一、安装 CUDA

1.找到所需版本对应命令

CUDA官方下载地址

1.1 找到对应版本
在这里插入图片描述
1.2 选择对应的操作系统
Linux -> x86_64 -> Ubuntu -> 20.04 -> runfile(local)
在这里插入图片描述
可以看到有两条命令,依次对应下载和安装。

在这里插入图片描述

2.下载 .run 文件

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

在这里插入图片描述

3.安装 CUDA

(1) 运行 .run 文件进行安装

sudo sh cuda_11.8.0_520.61.05_linux.run

在这里插入图片描述
(2) 方向下键↓,选中 “Continue” ,回车 “Enter” 确认
在这里插入图片描述
(3) 输入 accept,然后回车
在这里插入图片描述

(4) 使用方向下键↓,移动到 Driver 上,回车勾选掉 Driver
由于安装的多版本 CUDA ,安装第一个 CUDA 的时候已经安装过驱动,所以不需要再重复安装。
在这里插入图片描述
(5) 使用方向下键↓,移动到 Install 上,回车开始安装
在这里插入图片描述
(6) 之后一路默认,一直敲回车即可

出现如下图的提示即是安装成功
在这里插入图片描述

4.配置环境变量

4.1 写入环境变量

(1) 打开配置文件

sudo gedit ~/.bashrc

在这里插入图片描述

(2) 写入所需的环境变量

# CUDA enviroment variable
export PATH=$PATH:/usr/local/cuda/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda

在这里插入图片描述

(3) 更新环境变量

source ~/.bashrc

4.2 软连接

(1) 进入 /usr/local 目录下

cd /usr/local

在这里插入图片描述
在这里插入图片描述

(2) 删除原有的软连接

sudo rm -rf cuda

在这里插入图片描述

(3) 新建软连接,将其连接到 CUDA11.8

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

在这里插入图片描述

5.验证安装

nvcc -V

可以看到 CUDA 版本已经更新为 11.8
在这里插入图片描述

二、安装 cudnn

1.下载 cudnn

CUDA官方网址
选择适合自己 CUDA 版本的 cuDNN 下载
在这里插入图片描述
在这里插入图片描述

2.解压文件

(1) 进入下载目录
(2) 解压 .xz

xz -d cudnn-linux-x86_64-8.9.7.29_cuda11-archive.tar.xz

在这里插入图片描述

(3) 解压 .tar

tar -xvf cudnn-linux-x86_64-8.9.7.29_cuda11-archive.tar

在这里插入图片描述

3.替换文件

(1) 切换超级用户

su

(2) 复制 lib 或 lib64 文件夹下的文件到 CUDA 安装位置的 lib64 文件夹下

cp lib/* /usr/local/cuda-11.8/lib64/

在这里插入图片描述

(3) 复制 include 文件夹下的全部文件到 CUDA 安装位置的 include 文件夹下

cp include/* /usr/local/cuda-11.8/include/

在这里插入图片描述

4.验证安装

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

出现下图提示即为安装成功
在这里插入图片描述

三、切换 CUDA 版本

1.切换版本

(1) 进入 /usr/local 目录下

cd /usr/local

在这里插入图片描述

(2) 删除软连接

sudo rm -rf cuda

在这里插入图片描述

(3) 新建软连接到想切换的版本

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

在这里插入图片描述

2.检查版本

nvcc -V

可以看到版本已经切换成功
在这里插入图片描述

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

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

相关文章

彻底解决Path with “WEB-INF“ or “META-INF“: [WEB-INF/views/index.jsp]

背景描述 项目使用的是springboot2jsp的架构。以前好好的项目复制了一份,然后就无法访问报错。百度了好久都乱七八糟的,还没有解决问题。错误消息如下: 2024-07-05 15:45:51.335 INFO [http-nio-12581-exec-1]org.springframework.web.ser…

Linux服务器使用总结-不定时更新

# 查看升级日志 cat /var/log/dpkg.log |grep nvidia|grep libnvidia-common

阶段三:项目开发---搭建项目前后端系统基础架构:任务13:实现基本的登录功能

任务描述 任务名称: 实现基本的登录功能 知识点: 了解前端Vue项目的基本执行过程 重 点: 构建项目的基本登陆功能 内 容: 通过实现项目的基本登录功能,来了解前端Vue项目的基本执行过程,并完成基…

firewalld(8) policies

简介 前面的文章中我们介绍了firewalld的一些基本配置以及NAT的相关配置。在前面的配置中,我们所有的策略都是与zone相关的,例如配置的rich rule,--direct,以及NAT,并且这些配置都是数据包进入zone或者从zone发出时设置的策略。 我们在介绍…

昇思25天学习打卡营第15天 | Vision Transformer图像分类

内容介绍: 近些年,随着基于自注意(Self-Attention)结构的模型的发展,特别是Transformer模型的提出,极大地促进了自然语言处理模型的发展。由于Transformers的计算效率和可扩展性,它已经能够训练…

在VMware虚拟机的创建以及安装linux操作系统

一、创建虚拟机 1.双击打开下载好的VMware Workstation软件 2.点击“创建新的虚拟机” 3.根据个人选择需要创建的虚拟机,点击下一步 4.直接点击下一步 5.选择稍后安装操作系统,点击下一步 、 6.选择需要的操作系统,点击下一步 7.根据…

YOLOv8改进---BiFPN特征融合

一、BiFPN原理 1.1 基本原理 BiFPN(Bidirectional Feature Pyramid Network),双向特征金字塔网络是一种高效的多尺度特征融合网络,其基本原理概括分为以下几点: 双向特征融合:BiFPN允许特征在自顶向下和自…

【踩坑】修复pyinstaller报错 No module named pkg_resources.extern

转载请注明出处:小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你,欢迎[点赞、收藏、关注]哦~ 报错如下: 修复方法: pip install --upgrade setuptools pippyinstaller -F -w main.py --hidden-importpkg_resources.py2_wa…

算法系列--分治排序|归并排序|逆序对的求解

一.基本概念与实现 归并排序(mergeSort)也是基于分治思想的一种排序方式,思路如下: 分解:根据中间下标mid将数组分解为两部分解决:不断执行上述分解过程,当分解到只有一个元素时,停止分解,此时就是有序的合并:合并两个有序的子区间,所有子区间合并的结果就是原问题的解 归并…

【TB作品】51单片机 Proteus仿真 00002仿真-智能台灯色调倒计时光强

实验报告:基于51单片机的智能台灯控制系统 背景 本实验旨在设计一个基于51单片机的智能台灯控制系统,该系统可以通过按键进行手动控制,并能根据环境光强度自动调节台灯亮度。此外,系统还具备倒计时关灯功能。 器件连接 51单片…

Xilinx FPGA:vivado关于真双端口的串口传输数据的实验

一、实验内容 用一个真双端RAM,端口A和端口B同时向RAM里写入数据0-99,A端口读出单数并存入单端口RAM1中,B端口读出双数并存入但端口RAM2中,当检测到按键1到来时将RAM1中的单数读出显示到PC端,当检测到按键2到来时&…

强化学习的数学原理:时序差分算法

概述 之前第五次课时学习的 蒙特卡洛 的方法是全课程当中第一次介绍的第一种 model-free 的方法,而本次课的 Temporal-Difference Learning 简称 TD learning (时序差分算法)就是第二种 model-free 的方法。而对于 蒙特卡洛方法其是一种 non…

QWidget窗口抗锯齿圆角的一个实现方案(支持子控件)2

QWidget窗口抗锯齿圆角的一个实现方案(支持子控件)2 本方案使用了QGraphicsEffect,由于QGraphicsEffect对一些控件会有渲染问题,比如列表、表格等,所以暂时仅作为研究,优先其他方案 在之前的文章中&#…

论文辅助笔记:ST-LLM

1 时间嵌入 2 PFA(Partial Frozen Architecture) 3 ST_LLM 3.1 初始化 3.2 forward

Idea新增Module报错:sdk ‘1.8‘ type ‘JavaSDK‘ is not registered in ProjectJdkTable

文章目录 一,创建Module报错二,原因分析三,解决方案1,点击上图的加号,把JDK8添加进来即可2,点击左侧[Project],直接设置SDK为JDK8 四,配置检查与验证 一,创建Module报错 …

【Linux】:进程创建与终止

朋友们、伙计们,我们又见面了,本期来给大家解读一下有关Linux程序地址空间的相关知识点,如果看完之后对你有一定的启发,那么请留下你的三连,祝大家心想事成! C 语 言 专 栏:C语言:从…

dell Vostro 3690安装win11 23h2 方法

下载rufus-4.5.exe刻U盘去除限制 https://www.dell.com/support/home/zh-cn/product-support/product/vostro-3690-desktop/drivers dell官网下载驱动解压到U盘 https://dl.dell.com/FOLDER09572293M/2/Intel-Rapid-Storage-Technology-Driver_88DM9_WIN64_18.7.6.1010_A00_01…

【鸿蒙学习笔记】创建自定义组件

官方文档:创建自定义组件 目录标题 [Q&A] 如何自定义组件?1・struct 自定义组件名 {...}2・build()函数:3・@Component4・Entry5・Reusable 自定义组件的参数 buil…

GD32 MCU ADC采样率如何计算?

大家在使用ADC采样的时候是否计算过ADC的采样率,这个问题非常关键! 以下为GD32F303系列MCU中有关ADC的参数,其中ADC时钟最大值为40MHz,12位分辨率下最大采样率为2.86MSPS.如果ADC时钟超频的话,可能会造成ADC采样异常&…

SAP_MM模块-采购信息记录变更文档的三种查询方式

最近有用户在问采购信息记录变更的信息怎么去查找,想要看看是谁更改了价格,于是就给她查了一下,顺便做个记录,SAP中的业务数据或者主数据的变更信息查询方法,都是比较类似的,学会了这三个方法,其…