当前位置: 首页 > news >正文

Ubuntu 20.04安装显卡驱动、CUDA、Pytorch(2024.06最新)

文章目录

  • 一、安装显卡驱动
    • 1.1 查看显卡型号
    • 1.2 根据显卡型号选择驱动
    • 1.3 获取下载链接
    • 1.4 查看下载的显卡驱动安装文件
    • 1.5 更新软件列表和安装必要软件、依赖
    • 1.6 卸载原有驱动
    • 1.7 禁用默认驱动
    • 1.8 安装lightdm显示管理器
    • 1.9 停止显示服务器
    • 1.10 在文本界面中,禁用X-window服务
    • 1.11 安装驱动
    • 1.12 检测显卡驱动是否安装成功
    • 1.12 重启显示服务、恢复图像界面
  • 二、安装CUDA
    • 2.1 选择合适的CUDA版本
    • 2.2 下载CUDA
    • 2.3 安装CUDA
    • 2.4 环境变量配置
    • 2.5 检测CUDA是否安装成功
  • 三、安装Pytorch
    • 3.1 选择合适Pytorch版本
    • 3.2 安装Pytorch
  • 四、关于安装cuDNN(这个坑以后再补)

一、安装显卡驱动

1.1 查看显卡型号

lspci | grep -i nvidia

在这里插入图片描述

我们发现输出的信息中有Device 2230,可以根据这个信息查询显卡型号
查询网址:https://admin.pci-ids.ucw.cz/mods/PC/10de?action=help?help=pci

在这里插入图片描述

输入后点击Jump查询

在这里插入图片描述

我们发现显卡型号为RTX A6000

1.2 根据显卡型号选择驱动

英伟达驱动下载:https://www.nvidia.cn/Download/Find.aspx?lang=cn&QNF=1

根据需求,输入显卡型号操作系统语言,选择相应的驱动版本,我选择550.78这个版本。

在这里插入图片描述

1.3 获取下载链接

点击下载
在这里插入图片描述

点击【同意并开始下载

在这里插入图片描述
复制下载链接:https://cn.download.nvidia.cn/XFree86/Linux-x86_64/550.78/NVIDIA-Linux-x86_64-550.78.run
并使用wget在命令行下载:

wget https://cn.download.nvidia.cn/XFree86/Linux-x86_64/550.78/NVIDIA-Linux-x86_64-550.78.run

在这里插入图片描述

1.4 查看下载的显卡驱动安装文件

ll

在这里插入图片描述

1.5 更新软件列表和安装必要软件、依赖

sudo apt-get update
sudo apt-get install g++
sudo apt-get install gcc
sudo apt-get install make

1.6 卸载原有驱动

sudo apt-get remove --purge nvidia* 

1.7 禁用默认驱动

在安装NVIDIA驱动前,禁用系统自带显卡驱动nouveau
使用vim打开和修改文件,也可用gedit

sudo vim /etc/modprobe.d/blacklist.conf

在文件尾增加两行:

blacklist nouveau
options nouveau modeset=0

在这里插入图片描述
更新文件

sudo update-initramfs –u

此时必须重启电脑:

sudo reboot

1.8 安装lightdm显示管理器

sudo apt-get install lightdm

1.9 停止显示服务器

sudo telinit 3

1.10 在文本界面中,禁用X-window服务

sudo service gdm3 stop

1.11 安装驱动

# 授予执行权限
sudo chmod 777 NVIDIA-Linux-x86_64-550.78.run# 执行安装命令
sudo ./NVIDIA-Linux-x86_64-550.78.run

1.12 检测显卡驱动是否安装成功

nvidia-smi

在这里插入图片描述

大功告成~

1.12 重启显示服务、恢复图像界面

sudo  service  gdm3 start
sudo telinit 5

二、安装CUDA

2.1 选择合适的CUDA版本

我显卡的驱动版本是550.78,可以安装CUDA 12版本。可根据自己显卡版本选择合适的CUDA版本:查询链接:https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html
在这里插入图片描述

2.2 下载CUDA

下载页面链接:https://developer.nvidia.com/cuda-toolkit-archive
在这里插入图片描述
在这里插入图片描述

# 使用命令下载文件:
wget https://developer.download.nvidia.com/compute/cuda/12.1.0/local_installers/cuda_12.1.0_530.30.02_linux.run

在这里插入图片描述

# 使用命令查看文件下载:
ll

在这里插入图片描述

2.3 安装CUDA

sudo sh cuda_12.1.0_530.30.02_linux.run

稍等一会,会出现如下界面,输入:accept即可安装
在这里插入图片描述

接着会出现如下界面:

在这里插入图片描述
需要注意的是,上述过程我们已在步骤1安装显卡驱动,已无需再装,可通过键盘选择,取消驱动的安装。
再将光标通过键盘移至Install,开始安装:

在这里插入图片描述

2.4 环境变量配置

vim方式打开配置文件

sudo vim ~/.bashrc

在文件尾中加入以下两行:

export PATH="/usr/local/cuda-12.1/bin:$PATH"
export LD_LIBRARY_PATH="/usr/local/cuda-12.1/lib64:$LD_LIBRARY_PATH"

在这里插入图片描述
更新环境变量

source ~/.bashrc

2.5 检测CUDA是否安装成功

nvcc -V

在这里插入图片描述
命令行显示如上信息,表明安装成功!大功告成~

三、安装Pytorch

3.1 选择合适Pytorch版本

链接:https://pytorch.org/get-started/previous-versions/
在这里插入图片描述
由于CUDA安装的版本是12.1,所以可以用Pytorch的v2.2.0版本

3.2 安装Pytorch

可用conda安装

conda install pytorch==2.2.0 torchvision==0.17.0 torchaudio==2.2.0 pytorch-cuda=12.1 -c pytorch -c nvidia

也可用pip安装

pip install torch==2.2.0 torchvision==0.17.0 torchaudio==2.2.0 --index-url https://download.pytorch.org/whl/cu121

四、关于安装cuDNN(这个坑以后再补)

cuDNN是一个基于CUDA的深度学习GPU加速库,可以提高深度学习模型在GPU上的训练速度。cuDNN不是必须安装的,但是一般会采用这个加速库。部分深度学习框架,如PyTorch,会自带预先编译的cuDNN,无需手动安装。后面我还需要安装Pytorch,所以cuDNN就没安装,需要安装的可以参考下面信息,但是不完整。

版本查看页面:https://developer.nvidia.com/cudnn-downloads
在这里插入图片描述

下载CUDA 12对应的cuDNN版本,这里我们选择8.9.0版本。点击该版本,显示如下,我们选择红框圈中的版本。

在这里插入图片描述

相关文章:

Ubuntu 20.04安装显卡驱动、CUDA、Pytorch(2024.06最新)

文章目录 一、安装显卡驱动1.1 查看显卡型号1.2 根据显卡型号选择驱动1.3 获取下载链接1.4 查看下载的显卡驱动安装文件1.5 更新软件列表和安装必要软件、依赖1.6 卸载原有驱动1.7 禁用默认驱动1.8 安装lightdm显示管理器1.9 停止显示服务器1.10 在文本界面中,禁用X…...

wpf 附加属性 RegisterAttached 内容属性

// // 摘要: // 选中时展示的元素 public static readonly DependencyProperty CheckedElementProperty DependencyProperty.RegisterAttached("CheckedElement", typeof(object), typeof(StatusSwitchElement), new PropertyMetadata((object)null…...

laravel8框架windows下安装运行

目录 1、安装前如果未安装先安装Composer 2、使用composer安装laravel8 3、使用内置服务器:8000 的命令去访问测试 ​4、使用本地环境运行phpstudy配置到public目录下 Laravel官网 Laravel 中文网 为 Web 工匠创造的 PHP 框架 安装 | 入门指南 |《Laravel 8 中文文档 8.x…...

如何快速判断IP被墙

IP被墙是指IP部分地区或者运营商无法被正常进行访问的一个情况。 被墙的原因有很多种不一一列举,由于被墙的时间短的为按周按月计算,时间长的则为按年计算,所以一般这种情况下只能选择更换IP。 检查办法: 第一,确认IP…...

vitest-前端单元测试

Vitest是一个轻量级、快速且功能强大的测试框架,特别适用于Vite项目,但也可以与其他前端项目(如使用webpack构建的项目)集成使用。Vitest提供极速的测试体验,并包含一系列用于编写和组织测试用例的API,如de…...

Redis 7.x 系列【9】数据类型之自动排重集合(Set)

有道无术,术尚可求,有术无道,止于术。 本系列Redis 版本 7.2.5 源码地址:https://gitee.com/pearl-organization/study-redis-demo 文章目录 1. 前言2. 常用命令2.1 SADD2.2 SCARD2.3 SISMEMBER2.4 SREM2.5 SSCAN2.6 SDIFF2.7 SU…...

【LeetCode】每日一题:反转链表

题解思路 循环的方法需要注意prev应该是None开始,然后到结束的时候prev是tail,递归的思路很难绕过弯来,主要在于很难想清楚为什么可以返回尾节点,需要多做递归题,以及递归过程中,可以不使用尾节点来找当前…...

使用Spring Boot创建自定义Starter

使用Spring Boot创建自定义Starter 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天我们将探讨如何使用Spring Boot创建自定义Starter,来简化项目…...

cmd设置编码为utf8

文章目录 临时设置永久设置(通过注册表) cmd命令乱码,解决方案比较简单。 输入chcp, 如果返回的是936,通常是GBK或CP936。 如果返回的是65001,表示是UTF-8。 临时设置 chcp 65001 # 设置 chcp # 查看 永久设置(通过注册表) 打…...

一次关于k8s的node节点NotReady的故障排查

master现象 分析 kubectl get nodes -A 看了下pod的状态,好多CrashLoopBackOff kubectl get nodes -o wide 定位到那个具体node的IP地址,登录对应的IP去查看为什么会这样 node节点 journalctl -xe -f -u kubelet 查看此节点的 kubelet 服务&#xff…...

Java变量与标识符

一、关键字(Keyboard) 定义:被Java语言赋予了特殊含义,用做专门用途的字符串(或单词) 特点:全部关键字都是小写字母 官方地址: https://docs.oracle.com/javase/tutorial/java/nut…...

AWS无服务器 应用程序开发—第十七章 AWS用户池案例

在AWS Cognito用户池中,用户属性可以根据应用程序的需求进行配置和管理。以下是一般情况下用户属性的一些常见设置: 必须的属性: 用户名(Username):通常用作用户的唯一标识符。 密码(Password…...

java中的枚举

第1部分:引言 枚举在Java中的重要性 枚举在Java中扮演着至关重要的角色,它不仅提高了代码的可读性和可维护性,还增强了类型安全。枚举的使用可以避免使用魔法数字或散列常量,这些在代码中通常难以理解和维护。通过枚举&#xff…...

各种开发语言运行时占用内存情况比较

随着科技的发展,编程语言种类繁多,不同的编程语言在运行时的内存占用情况各不相同。了解这些差异对于开发者选择合适的编程语言尤为重要。本文将讨论几种主流编程语言在运行时的内存占用情况,包括C、C、Java、Python和Go等。 1. C语言 内存…...

【基础知识10】label与input标签

label标签说明 HTML元素表示用户界面中某个元素的说明 将一个和一个元素相关联主要有这些优点: 标签文本不仅与其相应的文本输入元素在视觉上相关联,程序中也是如此。这意味着,当用户聚焦到这个表单输入元素时,屏幕阅读器可以读…...

【SDV让汽车架构“和而不同”】

昔日以“排气管数量”和“发动机动力”为骄傲的荣耀已然成为过往。在这个崭新的时代,特斯拉、理想、蔚来、小鹏、零跑等新兴的汽车制造商纷纷推出了搭载可交互大屏、实现万物互联、软件功能持续更新的新车型,它们被誉为“车轮上的智能手机”。同时&#…...

面试经验分享 | 驻场安全服务工程师面试

所面试的公司:某安全厂商 所在城市:浙江宁波 面试职位:驻场安全服务工程师 面试官的问题: 1、信息收集如何处理子域名爆破的泛解析问题? 泛域名解析是:*.域名解析到同一IP。域名解析是:子域…...

SpringBoot 学习笔记

文章目录 SpringBoot1 SpringBoot 的纯注解配置(了解)1.1 环境搭建1.1.1 jdbc配置1.1.2 mybatis配置1.1.3 transactional配置1.1.4 service配置1.1.5 springmvc配置1.1.6 servlet配置1.1.7 存在的问题 1.2 新注解说明1.2.1 Configuration1.2.2 Component…...

Android 13 为应用创建快捷方式

参考 developer.android.google.cn 创建快捷方式 来自官网的说明: 静态快捷方式 :最适合在用户与应用互动的整个生命周期内使用一致结构链接到内容的应用。由于大多数启动器一次仅显示四个快捷方式,因此静态快捷方式有助于以一致的方式执行…...

PTA—C语言期末复习(选择题)

1. 按照标识符的要求,(A)不能组成标识符。 A.连接符 B.下划线 C.大小写字母 D.数字字符 在大多数编程语言中,标识符通常由字母(包括大写和小写)、数字和下划线组成,但不能以数字开头&#xff0c…...

AI-调查研究-01-正念冥想有用吗?对健康的影响及科学指南

点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...

linux之kylin系统nginx的安装

一、nginx的作用 1.可做高性能的web服务器 直接处理静态资源(HTML/CSS/图片等),响应速度远超传统服务器类似apache支持高并发连接 2.反向代理服务器 隐藏后端服务器IP地址,提高安全性 3.负载均衡服务器 支持多种策略分发流量…...

TDengine 快速体验(Docker 镜像方式)

简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能,本节首先介绍如何通过 Docker 快速体验 TDengine,然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker,请使用 安装包的方式快…...

【配置 YOLOX 用于按目录分类的图片数据集】

现在的图标点选越来越多,如何一步解决,采用 YOLOX 目标检测模式则可以轻松解决 要在 YOLOX 中使用按目录分类的图片数据集(每个目录代表一个类别,目录下是该类别的所有图片),你需要进行以下配置步骤&#x…...

3-11单元格区域边界定位(End属性)学习笔记

返回一个Range 对象,只读。该对象代表包含源区域的区域上端下端左端右端的最后一个单元格。等同于按键 End 向上键(End(xlUp))、End向下键(End(xlDown))、End向左键(End(xlToLeft)End向右键(End(xlToRight)) 注意:它移动的位置必须是相连的有内容的单元格…...

RabbitMQ入门4.1.0版本(基于java、SpringBoot操作)

RabbitMQ 一、RabbitMQ概述 RabbitMQ RabbitMQ最初由LShift和CohesiveFT于2007年开发,后来由Pivotal Software Inc.(现为VMware子公司)接管。RabbitMQ 是一个开源的消息代理和队列服务器,用 Erlang 语言编写。广泛应用于各种分布…...

计算机基础知识解析:从应用到架构的全面拆解

目录 前言 1、 计算机的应用领域:无处不在的数字助手 2、 计算机的进化史:从算盘到量子计算 3、计算机的分类:不止 “台式机和笔记本” 4、计算机的组件:硬件与软件的协同 4.1 硬件:五大核心部件 4.2 软件&#…...

MySQL:分区的基本使用

目录 一、什么是分区二、有什么作用三、分类四、创建分区五、删除分区 一、什么是分区 MySQL 分区(Partitioning)是一种将单张表的数据逻辑上拆分成多个物理部分的技术。这些物理部分(分区)可以独立存储、管理和优化,…...

使用SSE解决获取状态不一致问题

使用SSE解决获取状态不一致问题 1. 问题描述2. SSE介绍2.1 SSE 的工作原理2.2 SSE 的事件格式规范2.3 SSE与其他技术对比2.4 SSE 的优缺点 3. 实战代码 1. 问题描述 目前做的一个功能是上传多个文件,这个上传文件是整体功能的一部分,文件在上传的过程中…...

手动给中文分词和 直接用神经网络RNN做有什么区别

手动分词和基于神经网络(如 RNN)的自动分词在原理、实现方式和效果上有显著差异,以下是核心对比: 1. 实现原理对比 对比维度手动分词(规则 / 词典驱动)神经网络 RNN 分词(数据驱动&#xff09…...