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

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

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

相关文章

基于简单Agent对医疗数据进行分析

数据表 供应商资格审核规定.pdf 医生名录.xlsx 历史就诊记录.xlsx 患者信息名录.xlsx 药品.xlsx 药品库存管理.xlsx 采购单位基本信息.xlsx Agent测试 模型基于ChatGPT-3.5 问题:帮我找出不达标的供应商 Agent分析过程 [Thought: 0] Key Concepts: - 不达标的供…

IMX6ULL kernel移植

1.环境说明 编译主机Debian 12交叉编译工具arm-none-linux-gnueabihf-gcc(gcc version 12.3.1 20230626)kernel版本lf-6.6.3-1.0.02.官方默认版本说明 默认官方版本的kernel是可以运行的,直接按照下面的命令编译即可 ###清除掉默认配置make ARCH=arm CROSS_COMPILE=arm-no…

【每日刷题】Day58

【每日刷题】Day58 🥕个人主页:开敲🍉 🔥所属专栏:每日刷题🍍 🌼文章目录🌼​​​​​​​ 1. 3038. 相同分数的最大操作数目 I - 力扣(LeetCode) 2. 868. …

男士内裤怎么选?五款不能错过的超舒适男士内裤

在快节奏的现代都市生活中,男士们同样需要关注内在穿搭的品质与舒适度。一条优质贴身的男士内裤,不仅是日常穿着的舒适保障,更是展现男性精致品味的秘密武器。今天,就让我们一同探讨如何挑选出最适合自己的男士内裤,并…

从云端到终端:青犀视频汇聚/融合平台的视频接入方式与场景应用

一、青犀视频汇聚/融合平台 由TSINGSEE青犀视频研发的EasyCVR智能融合/视频汇聚平台基于“云-边-端”一体化架构,支持视频汇聚、融合管理,兼容多协议(GA/T1400/GB28181/Onvif/RTSP/RTMP/海康SDK/Ehome/大华SDK/宇视SDK等)、多类型…

数据结构——哈希表、哈希桶

哈希概念 顺序结构以及平衡树中,元素关键码与其存储位置之间没有对应的关系,因此在查找一个元素时,必须要经过关键码的多次比较,顺序查找时间复杂度为O(N),平衡树中为树的高度,即O(logN),搜索的效率取决于搜索过程种元素的比较次…

新能源集成灶怎么样?不需要燃料就能生火,是真的吗?

在当今的厨房电器领域,集成灶的出现引起了不少网友的广泛关注。这不,就在刚刚人民日报发布的一篇名为《中国新能源产业发展是全球性贡献和机遇》报道中提到:中国新能源产品销量突破万亿大关,中国新能源技术全球领先。从这样一份亮…

windows10系统下替换、修改jar中的文件并重新打包成jar文件然后运行

1、问题来源 maven打包部署之后发现页面上内容显示不正确,究其原因发现是打包之后activiti内某些文件内容错误所致,故想到临时解决方案:先打包完,再修改jar中的activiti文件,再重新打包 2、操作步骤 2.1、解压jar包 …

【Test 58】 Qt信号与槽机制! 高频的Qt 知识点!

文章目录 1.Qt 信号与槽机制原理(Signal & Slot)2. QObject 类 connect 的介绍3. 信号与槽机制连接方式4. 信号和槽机制优势及其效率:5. 信号与槽机制应用 1.Qt 信号与槽机制原理(Signal & Slot) &#x1f42…

个人vsCode配置文件<setting.js>

个人vsCode配置文件setting.js 快速打开1、使用快捷键 CtrlShiftP ,然后搜索setting2、手动 自用配置 快速打开 1、使用快捷键 CtrlShiftP ,然后搜索setting 2、手动 自用配置 {"terminal.integrated.profiles.windows": {"PowerShell&…

Spring的Controller是单例还是多例,如何保证线程安全的。

目录 验证是否单例(默认单例) 多例测试 单例对象成员变量测试 多例对象成员变量测试 解决方案 结论: 补充说明 答案:controller默认是单例的,不要使用非静态的成员变量,否则会发生数据逻辑混乱。 正…

大数据之HDFS磁盘扩容(linux磁盘扩容)

之所以扩容,是因为当前大数据平台已经接入了不同来源的数据,当执行mapreduce任务时,会发生磁盘爆满,导致hdfs爆红 具体扩容方案如下: 1、查看云磁盘分区情况 fdisk -l . 可以从图看出: /dev/vda 数据盘磁盘容量为21.5GB,包含/dev/vda1分区 /dev/vdb 数…

2024 年最新商家转账到零钱功能申请问题集中解答

鉴于诸多商户在申请商家转账到零钱时受到过时、错误经验文章的误导,基于我们数千次成功开通商家转账到零钱功能的丰富经验,特整理此篇文章,以期对新商户开通微信支付的商家转账到零钱功能提供有益帮助。以下将针对商家转账到零钱功能申请前、…

乐高小人分类项目

数据来源 LEGO Minifigures | Kaggle 建立文件目录 BASE_DIR lego/star-wars-images/ names [YODA, LUKE SKYWALKER, R2-D2, MACE WINDU, GENERAL GRIEVOUS ] tf.random.set_seed(1)# Read information about dataset if not os.path.isdir(BASE_DIR train/):for name in …

JDK7 JDK8 JDK9接口中的默认方法、静态方法、私有方法

JDK8开始之后接口新增的方法 JDK7以前:接口中只能定义抽象方法 JDK8的新特性:接口中可以定义有方法体的方法(默认、静态) JDK9的新特性:接口中可以定义私有方法 接口中的默认方法InterA package com.itheima.a06;p…

whistle手机抓包

环境:whistle:2.9.59 whistle手机抓包(ios可以抓小程序的包;安卓机不能抓小程序的包,但是小程序的有开发者工具就够用了) 以安卓手机为例(手机跟电脑要连同一个wifi) 1.电脑安装w…

【Git】之 【Bug】clone 克隆失败 过早的文件结束符

问题 解决 参考:git clone报错 过早结束问题解决方法 git config --global http.lowSpeedLimit 0 git config --global http.lowSpeedTime 999999 git config --global http.postBuffer 10024288000 git config --list

从一道题看利用sqlite打jdbc达到RCE

前言 从今年国赛的一道java题遇到了sqlite数据库去打jdbc达到RCE的姿势,故笔者写篇文章记下 复现 反编译源代码可以看见这三个数据库 这里提供了mysql sqlite psql 但mysql和psql都不行 这里我们用sqlite去打 jdbc就可以执行load_extension() CVE-2023-32697&#…

探索ChatGPT-4在解决化学知识问题上的研究与应用

1. 概述 近年来,人工智能的发展主要集中在 GPT-4 等大型语言模型上。2023 年 3 月发布的这一先进模型展示了利用广泛知识应对从化学研究到日常问题解决等复杂挑战的能力。也开始进行研究,对化学的各个领域,从化学键到有机化学和物理化学&…

Word2021中的The Mathtype DLL cannot be found问题解决(office 16+mathtype7+非初次安装)

问题描述,我的问题发生在word中无法使用自定义功能区中的mathtype 我的环境是:W11Word2021mathtype7 因为我是第二次安装mathtype7,所以我怀疑是因为没有卸载干净,于是我参考了下面这篇文章的做法 参考文章 1.首先重新卸载当前的…