Ubuntu 22.04安装cuda及Pytorch教程

文章目录

  • 1、安装显卡驱动
  • 2、安装CUDA
  • 3、安装cuDNN
  • 4、安装pyTorch
  • 5、卸载CUDA
  • 参考资料

服务器重装系统后,需要重新安装显卡驱动、cuda及Pytorch等,有些步骤容易忘记,这里记录一下。这里我的服务器配置以及安装版本的情况如下:

  • 服务器系统:Ubuntu 22.04
  • 显卡型号:NVIDIA GeForce RTX 2080 Ti
  • 显卡驱动版本:nvidia-driver-535
  • cuda版本:CUDA Toolkit 12.2.0
  • pytorch版本:torch 2.3.1

在PyTorch中使用CUDA,需要确保安装的PyTorch版本与你的CUDA版本兼容, 且正确安装了匹配GPU的CUDA Toolkit。以下是在PyTorch中使用CUDA的一般步骤:

  1. 检查CUDA支持: 首先,确保你的GPU支持CUDA。你可以在官方CUDA支持列表上查找你的GPU型号。或者直接命令行 nvidia-smi 进行查看。

  2. 安装CUDA Toolkit: 下载并安装与你的GPU型号匹配的CUDA Toolkit。你可以从NVIDIA官网下载。在安装期间,可以选择安装适用于你的系统的CUDNN库。

  3. 安装cuDNN(可选): cuDNN是NVIDIA的深度神经网络库,可以加速深度学习任务。在CUDNN下载页面下载适用于你的CUDA版本的cuDNN,并按照安装说明进行安装。

  4. 安装PyTorch: 选择合适的PyTorch版本并使用pip或conda进行安装。

1、安装显卡驱动

在终端命令行输入 nvidia-smi 命令,若正常显示显卡的基础信息,则已成功安装nvidia驱动。

nvidia-smi

在这里插入图片描述

如果报错,则按照以下步骤安装nvidia驱动,具体步骤如下:

  1. 找到合适自己电脑显卡的驱动
ubuntu-drivers devices

会显示你的电脑上可用的nvidia驱动。只需要安装推荐的版本即可(后面有recommend字样)
在这里插入图片描述
这里,服务器显示 nvidia-driver-535 是推荐安装的版本。

  1. 找到对应版本的显卡驱动

我们直接安装 nvidia-driver-535 即可:

sudo apt-get install nvidia-driver-535

在这里插入图片描述
整个安装过程需要花费一小段时间,耐心等待即可。

  1. 重启电脑。
  2. 再次输入 nvidia-smi 命令,已经可以正常显示显卡的基本信息。

在这里插入图片描述

注意:右上角显示 CUDA Version:12.2,这也是这个版本的显卡驱动最高支持的cuda-toolkit版本。

2、安装CUDA

接下来打开nvidia CUDA Toolkit Archive的官方网址:https://developer.nvidia.com/cuda-toolkit-archive

选择想要安装的版本,这里我们安装CUDA Toolkit 12.2.0,如下图所示选择:
在这里插入图片描述

根据我们的操作系统及系统版本选择,这里我们选择了基于 deb(network) 的方式来安装:
在这里插入图片描述

根据页面上生成的安装指令进行操作即可:

wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb
sudo apt-get update
sudo apt-get -y install cuda

查看目录是否存在:

cd /usr/local/cuda-12.2/bin

配置环境变量:安装成功后需要配置一下环境变量。这步很关键,如果不配置环境变量,则运行机器学习运算的时候会找不到GPU。

# 1.切换回home目录
cd ~  
# 2.修改.bashrc文件
vim .bashrc     
# 3.进入.bashrc文件后,拉到最下面,然后键盘按E键,进入编辑模式添加:
export PATH="/usr/local/cuda-12.2/bin:$PATH"
export LD_LIBRARY_PATH="/usr/local/cuda-12.2/lib64:$LD_LIBRARY_PATH"  
# 4.按ESC键退出编辑
:wq   # 退出保存
# 5. 应用生效
source .bashrc

查看安装的cuda版本:

nvcc -V

在这里插入图片描述

可以看到,已经成功安装了 cuda 12.2。

3、安装cuDNN

cuDNN(CUDA Deep Neural Network Library)是一个针对深度学习应用优化的加速库,它使用CUDA技术加速深度神经网络的训练和推断。这个库提供了一些高效的原语,例如卷积、池化、归一化等,可以帮助开发人员快速实现深度神经网络,并且提升训练和推断的速度。

CUDA和cuDNN是两个相互依赖的软件包,它们之间有以下关系:

  • CUDA是必需的:cuDNN需要依赖于CUDA才能够工作。因为cuDNN是使用CUDA技术实现的,所以只有支持CUDA的硬件和系统才能够运行它。在安装cuDNN之前,必须先安装CUDA,并且在环境变量中设置CUDA的路径。
  • cuDNN是可选的:尽管cuDNN可以提升深度学习应用的性能和效率,但它并不是必需的。如果不使用cuDNN,仍然可以使用CUDA进行深度学习计算。cuDNN只是一个可选的加速库,可以根据需要选择是否使用它。

cuDNN官网:https://developer.nvidia.com/rdp/cudnn-archive

首先在cuDNN官网找到跟此前安装的cuda版本兼容的版本,点击进入选择对应服务器系统类型的安装包即可。

4、安装pyTorch

pytorch官网:https://pytorch.org/get-started/locally/

先到pytorch官网找到在你的操作系统、包、CUDA版本、语言版本下对应的安装脚本。根据你的实际情况选择Pytorch安装包版本,然后复制页面自动生成的脚本进行安装。

在这里插入图片描述

这里,使用conda打开需要安装pyTorch的虚拟环境,这里我们的虚拟环境名称为pytorch。

执行安装命令:

pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121

注意:新版本的pytorch已经自带python版本的cuda了,pytorch自带的cuda和前面装的cuda没有关系。

在这里插入图片描述

在 python 环境中检查是否安装完成:

import torch
torch.cuda.current_device()
torch.cuda.device_count()
torch.cuda.get_device_name(0)
torch.cuda.is_available()

输出如下:
在这里插入图片描述

5、卸载CUDA

参考官方文档:NVIDIA CUDA Installation Guide for Linux

参考资料

  • 在PyTorch中使用CUDA, pytorch与cuda不同版本对应安装指南,查看CUDA版本,安装对应版本pytorch

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

OpenGauss数据库-5.数据更新

第1关:插入数据 gsql -d postgres -U gaussdb -W "passwd123123" create table student (id integer primary key,name char(20),age integer ); insert into student values(1,"lily",20),(2,lily,21),(3,marry,19); 第2关:删除数…

【只是查漏补缺】关于动力节点2024版java新课程

反编译命令 javap进行反编译操作,例如:javap Test;使用jd-gui.exe来实现反编译。 二进制数据是采用0和1来表示,则换算单位肯定为2的n次方,而2的10次方恰好等于1024,所以就使用了1024来作文文件存储的换算单…

纯理论容器实现的原理

近期在复习容器的原理,希望这篇文章可以帮助到大家。 一、什么是容器? 容器本质上就是主机上的一个进程。这个进程拥有自己的用户空间并且和主机共享内核空间。 容器内的进程可以通过系统调用与内核进行交互,使用内核提供的各种功能和资源。…

数据可视化Python实现超详解【数据分析】

各位大佬好 ,这里是阿川的博客,祝您变得更强 个人主页:在线OJ的阿川 大佬的支持和鼓励,将是我成长路上最大的动力 阿川水平有限,如有错误,欢迎大佬指正 Python 初阶 Python–语言基础与由来介绍 Python–…

【PowerDesigner】创建和管理CDM之新建实体

目录 🌊1. PowerDesigner简介 🌍1.1 常用模型文件 🌍1.2 PowerDesigner使用环境 🌊2. 创建和管理CDM 🌍​​​​​​2.1 新建CDM 🌍2.2 新建实体 🌊1. PowerDesigner简介 🌍1…

Innodb Buffer Pool缓存机制(三)Innodb Buffer Pool内部组成

一、控制块缓存页 Buffer Pool中默认的缓存页大小和在磁盘上默认的页大小是一样的,都是16KB。为了更好的管理这些在Buffer Pool中的缓存页,InnoDB为每一个缓存页都创建了一些所谓的控制信息,这些控制信息包括该页所属的表空间编号、页号、缓存…

11.链表

数组的分类:便于遍历 静态数组:int arr[10]数据过多造成空间溢出,数据过小空间浪费 动态数组:malloc calloc realloc 合理利用空间不能快捷的插入或删除数据(会涉及到大量的数据移动) 知识点一&#xff1…

【Python】使用pip安装seaborn sns及失败解决方法与sns.load_dataset(“tips“)

😎 作者介绍:我是程序员洲洲,一个热爱写作的非著名程序员。CSDN全栈优质领域创作者、华为云博客社区云享专家、阿里云博客社区专家博主。 🤓 同时欢迎大家关注其他专栏,我将分享Web前后端开发、人工智能、机器学习、深…

system 和 exec 的区别

在 linux 中,使用 system 和 exec 都可以执行一个程序或者执行一个命令。两者的区别如下: system 中创建了一个子进程,在子进程中执行用户的命令,子进程执行完毕之后,system 会返回。exec 不会创建子进程,…

pdf的压缩该怎么做?快速在线压缩pdf的方法

pdf文件是现在很常用的一种文件格式,有很多的文件内容都可以通过这种格式来展示内容,比如一些通知文件、设计图、个人信息等等,文件的内容越多就会越大,在使用的时候经常会受到一定的限制。那么有什么方法能够快速的将pdf文件变小…

计算机提示msvcp120.dll如何修复,7个不同方法分享

msvcp120.dll 是 Microsoft Visual C Redistributable 的一个关键组件,它包含了 C 运行时库,这些库对基于 Visual C 编写的应用程序至关重要。当应用程序运行时,msvcp120.dll 会被加载到内存中以提供必要的函数和类支持。 一、msvcp120.dll功…

详解python中的pandas.read_csv()函数

😎 作者介绍:我是程序员洲洲,一个热爱写作的非著名程序员。CSDN全栈优质领域创作者、华为云博客社区云享专家、阿里云博客社区专家博主。 🤓 同时欢迎大家关注其他专栏,我将分享Web前后端开发、人工智能、机器学习、深…

从GPU到ASIC,博通和Marvell成赢家

ASIC市场上,博通预计今年AI收入将达到110亿美元以上,主要来自与Google和Meta的合作;Marvell预计2028年AI收入将达到70亿至80亿美元,主要来自与Amazon和Google的合作。 随着芯片设计和系统复杂性的增加,科技大厂将更多地…

初阶 《函数》 2.C语言中函数的分类

2.C语言中函数的分类 1.库函数 2.自定义函数 2.1 库函数 为什么会有库函数? 1.我们知道在我们学习C语言编程的时候,总是在一个代码编写完成之后迫不及待的想知道结果,想把这个结果打印到我们的屏幕上看看。这个时候我们会频繁的使用一个功能…

排序-快排算法对数组进行排序

目录 一、问题描述 二、解题思路 1.初始化 2.将右侧小于基准元素移到左边 3.将左侧大于基准元素移到右边 4.重复执行上面的操作 5.对分好的左、右分区再次执行分区操作 6.最终排序结果 三、代码实现 四、刷题链接 一、问题描述 二、解题思路 快排算法实现数组排序&am…

配置 JDK 和 Android SDK

目录 一、配置JDK 1. 安装 JDK 2. JDK 环境配置 3. JDK的配置验证 二、配置 adb 和Android SDK环境 1、下载 2、配置 Android SDK 环境 一、配置JDK 1. 安装 JDK 安装链接:Java Downloads | Oracle 我安装的是 .zip ,直接在指定的文件夹下解压就…

产品创新:驱动企业增长的核心动力

在当今快速变化的市场环境中,产品创新已成为企业生存和发展的关键。产品创新不仅涉及全新产品或服务的开发,也包括对现有产品或服务的持续改进和优化。本文将深入探讨产品创新的定义、重要性以及如何通过创新驱动企业增长,并结合实际案例进行…

Redis系列之淘汰策略介绍

Redis系列之淘汰策略介绍 文章目录 为什么需要Redis淘汰策略?Redis淘汰策略分类Redis数据淘汰流程源码验证淘汰流程Redis中的LRU算法Redis中的LFU算法 为什么需要Redis淘汰策略? 由于Redis内存是有大小的,当内存快满的时候,又没有…

IO进程线程(十一)进程间通信 消息队列

文章目录 一、IPC(Inter-Process Communication)进程间通信相关命令 :(一)ipcs --- 查看IPC对象(二)获取IPC键值(三)删除IPC对象的命令(四)获取IPC键值的函数1. 函数定义…

13 RTP包的使用

RTP RTP包最主要的就是Sequence number。 对于发送者来说,视频的每一个帧都有很多包组成。对于接收端来接收的时候是有一个队列进行接收的。这个队列大小都是通过计算的。有了队列之后就会不断的往队列中插入数据。当队列中有的数据超时一直组不成包的时候&#xf…