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.mzph.cn/web/41253.shtml

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

相关文章

深入分析SSL/TLS服务器的证书(C/C++代码实现)

SSL(Secure Sockets Layer)和TLS(Transport Layer Security)是网络安全领域的重要协议,它们在保护网络通信中发挥着至关重要的作用。这些协议通过加密和身份验证机制,确保数据在传输过程中的机密性和完整性…

建投数据与中再数科签署战略合作协议

近日,建投数据科技股份有限公司(以下简称“建投数据”)与中再保数字科技有限责任公司(以下简称“中再数科”)签署战略合作协议。双方通过资源整合共享,实现优势互补,共同探索产品及服务的跨领域…

初见:AntDB智能运维“三剑客“之ACC

前情回顾 在前两个章节中,我们介绍了 AntDB 智能运维"三剑客"的 ADC 和 MTK。 初见:AntDB智能运维"三剑客"之ADC 初见:AntDB智能运维"三剑客"之MTK 本文将继续介绍 AntDB 数据库智能运维平台 ACC。 AntDB 介绍…

如何设置PHP wkhtmltopdf

首先参考:Composer三步曲:安装、使用、发布 在 php 路径下,应能打开命令行输入php -v能够看到php版本信息。 然后执行以下三条: php -r "copy(https://install.phpcomposer.com/installer, composer-setup.php);"php…

minist数据集分类模型的训练

minist数据集训练 训练方法:利用pytorch来实现minist数据集的分类模型训练 训练模型如下图所示 模型代码: import torch from torch import nn from torch.nn import Flattenclass Net(nn.Module):def __init__(self):super().__init__()self.module …

ChatGPT对话:Scratch编程中一个单词,如balloon,每个字母行为一致,如何优化编程

【编者按】balloon 7个字母具有相同的行为,根据ChatGPT提供的方法,优化了代码,方便代码维护与复用。初学者可以使用7个字母精灵,复制代码到不同精灵,也能完成这个功能,但不是优化方法,也没有提高…

__builtin_constant_p 常量检查函数

__builtin_constant_p 详细介绍 功能:__builtin_constant_p 是 GCC (GNU Compiler Collection) 提供的一个内置函数,用于在编译时检测一个表达式是否是常量。它返回一个整型值: 如果表达式 exp 是编译时常量,则返回 1。否则&…

【sklearn模型训练全指南】深入理解机器学习模型的构建过程

标题:【sklearn模型训练全指南】深入理解机器学习模型的构建过程 在机器学习中,模型训练是一个核心过程,它涉及到从数据中学习并获得预测能力。scikit-learn(简称sklearn)作为Python中一个广泛使用的机器学习库&#…

FairJob:促进在线广告系统公平性研究

在人工智能(AI)与人类动态的交汇处,既存在机遇也存在挑战,特别是在人工智能领域。尽管取得了进步,但根植于历史不平等中的持续偏见仍然渗透在我们的数据驱动系统中,这些偏见不仅延续了不公平现象&#xff0…

Centos新手问题——yum无法下载软件

起因:最近在学习centos7,在VM上成功安装后,用Secure进行远程登陆。然后准备下载一个C编译器,看网络上的教程,都是用yum来下载,于是我也输入了命令: yum -y install gcc* 本以为会自动下载&…

使用Python绘制雷达图

使用Python绘制雷达图 雷达图效果代码 雷达图 雷达图,也称为蛛网图或星型图,是一种二维图表,用于显示多变量数据。每个变量在一个从中心点向外辐射的轴上表示,轴的数量与变量的数量相同。雷达图通常用于比较多个样本的多维数据&a…

docker部署redis/mongodb/

一、redis 创建/root/redis/conf/redis.conf 全部执行命令如下 docker run -it -d --name redis -p 6379:6379 --net mynet --ip 172.18.0.9 -m 400m -v /root/redis/conf:/usr/local/etc/redis -e TXAsia/Shangehai redis redis-server /usr/local/etc/redis/redis.conf 部署…

C#——密封类详情

密封类 密封类是密封方法的扩展,用于确保某个类不会被继承。在C#中,你可以使用sealed关键字来声明一个密封类。 public sealed class SealedClass {// 类成员定义 } 如果使用密封类继承的话,程序会报错!!&#xff0…

01:spring

文章目录 一:常见面试题1:什么是Spring框架?1.1:spring官网中文1.2:spring官网英文 2:谈谈自己对于Spring IOC和AOP的理解2.1:IOCSpring Bean 的生命周期主要包括以下步骤: 2.2&…

Centos7开放端口

在CentOS 7中,开放端口的命令主要通过firewall-cmd工具来执行。以下是详细的步骤和命令说明: 一、使用firewall-cmd开放端口 查看当前的防火墙区域(zone) 执行命令: firewall-cmd --get-active-zones此命令将显示当前…

代码的坏味道——长函数

前言:一个函数应该尽量做一件事情,如果非要做多个事情,要做函数提取,每次迭代应该考虑到是否有重复代码或者可以优化的代码。 长函数:长函数的产生: 逻辑是平铺直叙的需求迭代没有考虑优化,一次…

解决微信读书和Apple Books导入epub电子书不显示图片的问题

title: 解决微信读书和Apple Books导入epub电子书不显示图片的问题 tags: 个人成长 categories:杂谈 最近找到一本很喜欢的书的电子版的epub版,发现无论是导入微信读书,还是Apple家的Books, 都无法正常显示图片。 于是我用calibre打开epub电子书&#x…

安卓虚拟位置修改

随着安卓系统的不断更新,确保软件和应用与最新系统版本的兼容性变得日益重要。本文档旨在指导用户如何在安卓14/15系统上使用特定的功能。 2. 系统兼容性更新 2.1 支持安卓14/15:更新了对安卓14/15版本的支持,确保了软件的兼容性。 2.2 路…

linux中可执行文件为什么不能拷贝覆盖

对于一个普通的文件,假如有两个文件,分别是file和file1,我们使用 cp file1 file的方式使用file1的内容来覆盖file的内容,这样是可以的。 但是对于可执行文件来说,当这个文件在执行的时候,是不能通过cp的方…

将 KNX 接入 Home Assistant 之四 功能测试

一:测试标准的KNX网关功能 测试软件识别是否正常 可以看到再ETS6和ETS5上都能正常识别 测试数据收发 可以正常发送数据 测试配置设备参数(下载配置) 可以看出,在ETS5上是可以正常下载参数的 但是 ETS6下载是失败的&#xff…