ubuntu22.04 安装 NVIDIA 驱动以及CUDA

目录

1、事前问题解决

2、安装 nvidia 驱动

3、卸载 nvidia 驱动方法

4、安装 CUDA

5、安装 Anaconda

6、安装 PyTorch


1、事前问题解决

在安装完ubuntu之后,如果进入ubuntu出现黑屏情况,一般就是nvidia驱动与linux自带的不兼容,可以通过以下方式解决:

1、启动电脑,进入引导菜单,将光标移动到 Ubuntu项,按键盘上的 "E" 键,进入GRUB页面

2、选择首单词为 linux 对应的行,将光标移动到该行的末尾(一般这行的倒数第2、3个参数为:quiet splash),在这行末尾空一个后输入:nomodeset ,按下键盘的 “Ctrl + X” 或者 F10启动,就能进入Ubuntu系统桌面了。
3、之后需要将系统自带的 nouveau 驱动加入系统黑名单中,输入:sudo gedit /etc/modprobe.d/blacklist.conf ,在文件的末尾添加以下字段:blacklist nouveau,该操作就是将 nouveau 驱动加入系统黑名单
4、最后更新黑名单:sudo update-initramfs -u

2、安装 nvidia 驱动

接下来查询系统推荐的nvidia显卡版本号:

// 先执行这两行 cmd,否则可能出现 ubuntu-drivers devices 执行后没反映的现象
sudo apt update
sudo apt upgrade 
// 查询系统建议安装的nvidia版本
ubuntu-drivers devices
/// 例如  
wsx@wsx:~$ ubuntu-drivers devices
== /sys/devices/pci0000:00/0000:00:01.1/0000:01:00.0 ==
modalias : pci:v000010DEd00002520sv00001043sd00001722bc03sc00i00
vendor   : NVIDIA Corporation
model    : GA106M [GeForce RTX 3060 Mobile / Max-Q]
driver   : nvidia-driver-545-open - distro non-free
driver   : nvidia-driver-535-server - distro non-free
driver   : nvidia-driver-535 - distro non-free recommended   // 建议安装版本
driver   : nvidia-driver-470 - distro non-free
driver   : nvidia-driver-470-server - distro non-free
driver   : nvidia-driver-535-open - distro non-free
driver   : nvidia-driver-535-server-open - distro non-free
driver   : nvidia-driver-545 - distro non-free
driver   : xserver-xorg-video-nouveau - distro free builtin

然后首先确保 BIOS 的 security boot 是 disable 状态的,以华硕电脑为例,操作如下:

安装过程中可能在进入BIOS时找不到U盘启动项,这时可以尝试将电脑的 Secure Boot Control 关掉。具体的做法为:进入BIOS -> Advanced Mode -> Security -> Secure Boot -> Secure Boot Control -> Disabled。如下所示:

然后执行以下命令安装,最后需要执行 reboot 重启电脑(必须重启,否则后面执行 nvidia-smi 会报错):

sudo apt install nvidia-driver-535
reboot

重启之后执行 nvidia-smi,正常情况下可以看到 nvidia driver 信息以及显卡信息:

注意,这里右上角所显示的 cuda version 是指当前 nvidia 所支持的 cuda 的最高版本,也就是说是可以兼容 cuda 12.1 的。

nvidia-smi 显示的的 cuda version 是当前驱动支持的最大 cuda toolkit 的版本。

CUDA有两种API,分别是运行时API和驱动API,即所谓的Runtime API与Driver API。[可参考:CUDA Compatibility]

nvidia-smi 的结果除了有 GPU 驱动版本型号,还有 CUDA Driver API 的版本号,而 nvcc -V 的结果是对应 CUDA Runtime API。CUDA Runtime API 依赖 CUDA Driver API。

使用conda install pytorch torchvision torchaudio pytorch-cuda=12.1 -c pytorch -c nvidia 命令安装 pytorch 时,附带的 CUDA 和从官网安装的 CUDA 有何不同?一言以蔽之:前者是后者的子集,是 pytorch 所必须的那一部分子集,而像编译器 nvcc 等非必须的 CUDA 组件则没有。

Pytorch往往只需要使用 CUDA 的动态链接库使程序顺利运行,因为其中利用 CUDA 计算的部分是提前编译好的 ,就像常见的可执行程序一样,不需要重新进行编译过程,只需要其所依赖的动态链接库存在即可正常运行。

当两者同时安装时,pytorch 深度学习环境会优先使用前者。当没有单独安装CUDA时,如果在安装pytorch时安装了 CUDA 子集,那么环境也是可以正常使用的,这在pytorch的源码中可以发现。因此建议使用深度学习环境的同学非必要不安装单独的CUDA,只需保持显卡驱动的正常更新即可。


参考:https://www.zhihu.com/question/622711856/answer/3339303390

3、卸载 nvidia 驱动方法

卸载nvidia驱动的方法: 

sudo apt-get purge nvidia-*
sudo apt-get update
sudo apt-get autoremove

4、安装 CUDA

 CUDA 版本与 NVIDIA 驱动的兼容关系可以参考:CUDA 12.5 Update 1 Release Notes

CUDA 的下载地址: CUDA Toolkit Archive | NVIDIA Developer

这里我装 12.1.1 版本

选择 runfile 来安装,deb 那个看起来命令太多了,吓人。。。 

 这里我在 wget 后面加一个 -P 参数可以制定安装文件夹路径,对应的在执行 .run 文件时也需要加上指定的路径才行:

wget https://developer.download.nvidia.com/compute/cuda/12.1.1/local_installers/cuda_12.1.1_530.30.02_linux.run -P Downloads/
sudo sh Downloads/cuda_12.1.1_530.30.02_linux.run

安装的时候记得去掉安装 driver 的选项,因为上面已经装过了。安装完成之后会出现:

然后添加系统环境变量,根据自己安装的实际版本修改:

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

然后输入 nvcc -V 来查看是否安装成功:

source .bashrc // 刷新刚才写入的环境变量
nvcc -V

Ubuntu 安装NVIDIA显卡驱动、安装对应的CUDA_ubuntu安装nvidia显卡驱动-CSDN博客

接下来:

5、安装 Anaconda

Download Anaconda Distribution | Anaconda

创建conda环境:

conda create -n name python=3.12

 6、安装 PyTorch

Start Locally | PyTorch

嫌弃 ubuntu pip 安装太慢的话,可以换一下国内的源:

cd ~
mkdir .pip
cd .pip
touch pip.conf
sudo chmod 755 pip.conf
gedit pip.conf

填入以下内容并保存,我这里选择aliyun的源:

[global]
index-url = https://mirrors.aliyun.com/pypi/simple/

下载直接起飞~

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

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

相关文章

找工作准备刷题Day10 回溯算法 (卡尔41期训练营 7.24)

回溯算法今天这几个题目做过,晚上有面试,今天水一水。 第一题:Leetcode77. 组合 题目描述 解题思路 从题目示例来看,k个数是不能重合的,但是题目没有明确说明这一点。 使用回溯算法解决此问题,利用树形…

数据结构 —— B+树和B*树及MySQL底层引擎

数据结构 —— B树和B*树及MySQL底层引擎 B树B*树B树的应用B树在MySQL中的应用MyISAMInnoDB 我们之前学习了B树的基本原理,今天我们来看看B树的一些改良版本——B树和B*树。如果还没有了解过的小伙伴可以点击这里: https://blog.csdn.net/qq_67693066/ar…

【MySQL进阶之路 | 高级篇】MVCC三剑客:隐藏字段,Undo Log,ReadView

1. 再谈隔离级别 我们知道事务有四个隔离级别,可能存在三种并发问题: 在MySQL中,默认的隔离级别是可重复读,可以解决脏读和不可重复读的问题,如果仅从定义的角度来看,它并不能解决幻读问题。如果我们想要解…

Nacos-2.4.0最新版本docker镜像,本人亲自制作,部署十分方便,兼容postgresql最新版本17和16,奉献给大家了

基于Postgresql数据库存储的nacos最新版本2.4.0,采用docker镜像安装方式 因业务需要,为了让nacos支持postgresql,特意花了两天时间修改了源码,然后制作了docker镜像,如果你也在找支持postgresql的nacos最新版本,恭喜你,你来的正好~ nacos-2.4.0 postgresql的数据库脚本…

安宝特方案|解放双手,解决死角,AR带来质量监督新体验

AR质量监督 解放双手,解决死角 在当今制造业快速发展的背景下,质量监督成为确保产品高质量和完善的管理制度的关键环节。然而,传统的质量监督方式存在诸多挑战,如人工操作带来的效率低下、查岗不及时、摄像头死角等问题。 为了解…

本地部署,Whisper: 开源语音识别模型

目录 简介 特点 应用 使用方法 总结 GitHub - openai/whisper: Robust Speech Recognition via Large-Scale Weak SupervisionRobust Speech Recognition via Large-Scale Weak Supervision - openai/whisperhttps://github.com/openai/whisper 简介 Whisper 是一个由 O…

GoogleCTF2023 Writeup

GoogleCTF2023 Writeup Misc NPC Crypto LEAST COMMON GENOMINATOR? Web UNDER-CONSTRUCTION NPC A friend handed me this map and told me that it will lead me to the flag. It is confusing me and I don’t know how to read it, can you help me out? Attach…

软件更新的双刃剑:从”微软蓝屏”事件看网络安全的挑战与对策

引言 原文链接 近日,一场由微软视窗系统软件更新引发的全球性"微软蓝屏"事件震惊了整个科技界。这次事件源于美国电脑安全技术公司"众击"提供的一个带有"缺陷"的软件更新,如同一颗隐形炸弹在全球范围内引爆,…

17.5【C语言】static的补充说明

static &#xff08;静态的) 作用&#xff1a;修饰局部变量&#xff0c;修饰全局变量&#xff0c;修饰函数 对比两段代码 #include <stdio.h> void test() {int a 5;a;printf("%d ", a); } int main() {int i 0;for(i0; i<5; i){test();}return 0; } …

高并发内存池——链表设计

自由链表类的设计 由于申请的空间块经过对齐之后大小至少为8&#xff0c;因此可以考虑在未被使用的内存块中取前8字节存储下一个空间的地址 FreeList类初步声明 class FreeList { private:void* _freelistnullptr; //自由链表头指针size_t _size0; //自由链表的长度size_t …

【Django】anaconda环境变量配置及配置python虚拟环境

文章目录 配置环境变量配置python虚拟环境查看conda源并配置国内源在虚拟环境中安装django 配置环境变量 control sysdm.cpl,,3笔者anaconda安装目录为C:\ProgramData\anaconda3 那么需要加入path中的有如下三个 C:\ProgramData\anaconda3 C:\ProgramData\anaconda3\Scripts C:…

最新风车IM即时聊天源码及完整视频教程2024年7月版

堡塔面板 试验性Centos/Ubuntu/Debian安装命令 独立运行环境&#xff08;py3.7&#xff09; 可能存在少量兼容性问题 不断优化中 curl -sSO http://io.bt.sy/install/install_panel.sh && bash install_panel.sh 1.宝塔环境如下: Nginx 1.20 Tomcat 8 MySQL 8.0 R…

Java 开发环境配置

1. 下载 JDK 直接在oracle 官网下载 https://www.oracle.com/java/technologies/downloads或者使用博主已经从oracle下载的 jdk21&#xff1a;https://download.csdn.net/download/u011171506/89585231jdk8&#xff1a;https://download.csdn.net/download/u011171506/8958523…

快醒醒,别睡了!...讲《数据分析pandas库》了—/—<4>

一、废话不多说&#xff0c;直接开讲 1、DataFrame的索引和切片 1.1 选择列 当想要获取 df 中某列数据时&#xff0c;只需要在 df 后面的方括号中指明要选择的列即可。如果是 一列&#xff0c;则只需要传入一个列名;如果是同时选择多列&#xff0c;则传入多个列名即可&#xf…

SAPUI5基础知识20 - 对话框和碎片(Dialogs and Fragments)

1. 背景 在 SAPUI5 中&#xff0c;Fragments 是一种轻量级的 UI 组件&#xff0c;类似于视图&#xff08;Views&#xff09;&#xff0c;但它们没有自己的控制器&#xff08;Controller&#xff09;。Fragments 通常用于定义可以在多个视图中重用的 UI 片段&#xff0c;从而提…

集成千兆网口(Gigabit Ethernet Port)的作用主要是提供高速的有线网络连接,其工作原理涉及以下几个关键点:

传输速率&#xff1a; 千兆网口支持的最高传输速率达到1 Gbps&#xff08;即每秒10亿位&#xff09;&#xff0c;是传统百兆网口&#xff08;100 Mbps&#xff09;的十倍速度。这使得它能够处理更大量、更高质量的数据传输。 数据传输效率&#xff1a; 千兆网口能显著提高局域…

C#如何引用dll动态链接库文件的注释

1、dll动态库文件项目生成属性中要勾选“XML文档文件” 注意&#xff1a;XML文件的名字切勿修改。 2、添加引用时XML文件要与DLL文件在同一个目录下。 3、如果要是添加引用的时候XML不在相同目录下&#xff0c;之后又将XML文件复制到相同的目录下&#xff0c;需要删除引用&am…

【机器学习】Python、NumPy和向量化的基础知识以及三者结合的用法和示例

引言 在机器学习中&#xff0c;NumPy是一个非常重要的库&#xff0c;特别是在进行向量化操作时。向量化是一种优化技术&#xff0c;可以显著提高数组计算的效率&#xff0c;特别是在处理大型数据集时。NumPy提供了丰富的数组运算功能&#xff0c;使得向量化操作变得简单高效 文…

驾驭代码的无形疆界:动态内存管理揭秘

目录 1.:为什么要有动态内存分配 2.malloc和free 2.1:malloc 2.2:free 3.calloc和realloc 3.1:calloc 3.1.1:代码1(malloc) 3.1.2:代码2(calloc) 3.2:realloc 3.2.1:原地扩容 3.2.2:异地扩容 3.2.3:代码1(原地扩容) 3.2.3:代码2(异地扩容) 4:常见的动态内存的错误…

掀桌子了!原来是咱们的大屏设计太酷,吓着前端开发老铁了

掀桌子了&#xff01;原来是咱们的大屏设计太酷&#xff0c;吓着前端开发老铁了 艾斯视觉观点认为&#xff1a;在软件开发的世界里&#xff0c;有时候创意和设计的火花会擦得特别亮&#xff0c;以至于让技术实现的伙伴们感到既兴奋又紧张。这不&#xff0c;我们的设计团队刚刚…