Ubuntu系统配置深度学习环境之nvidia显卡驱动和cuda安装

news2025/1/12 8:41:17

前言

        NVIDIA 显卡驱动是为了确保 NVIDIA 显卡能够正确运行而开发的软件。显卡驱动负责与操作系统通信,管理显卡的各种功能,并提供性能优化和兼容性保证。安装适用于特定显卡型号和操作系统版本的最新驱动程序是确保显卡能够正常工作的重要步骤。

        CUDA 是 NVIDIA 推出的一种并行计算平台和编程模型。它充分利用 NVIDIA 显卡的并行处理能力,使开发人员能够通过编写并行计算任务来加速各种计算工作。CUDA 提供了一组编程接口和工具,使开发人员能够使用标准编程语言(如C/C++、Python)来开发并行计算应用程序。

        CUDA 依赖于 NVIDIA 显卡驱动的支持。安装正确的显卡驱动是为了确保 CUDA 开发平台能够顺利工作。通过 CUDA,开发人员可以利用 NVIDIA 显卡的强大算力来加速计算任务,从而提高性能和效率。

        因此,NVIDIA 显卡驱动和 CUDA 是相辅相成的,只有在正确安装并配置了适用的显卡驱动程序后,才能利用 CUDA 进行并行计算任务的开发和加速。

1、显卡驱动的安装及卸载

查看独立显卡驱动支持及其支持的最高cuda版本

nvidia-smi

若无输出表示驱动未安装,查询可用的驱动:

ubuntu-drivers devices

上述命令很可能什么都不显示,添加官方 ppa 的源,更新源后即可查询可用驱动:

sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
ubuntu-drivers devices

安装

第一种安装显卡驱动的方式(通过命令行安装)

自动安装推荐的驱动:

sudo ubuntu-drivers autoinstall

指定版本安装:

sudo apt install nvidia-driver-515  #指定安装515版本
第二种安装显卡驱动的方式(通过界面安装)

在ubuntu20.04 安装NVIDIA驱动比较简单,打开系统设置->软件和更新->附加驱动->选择NVIDIA驱动->应用更改,该界面会自动根据电脑上的GPU显示推荐的NVIDIA显卡驱动,选择需要的版本安装即可。

卸载

查看当前驱动、卸载驱动:

dpkg -l | grep nvidia           #查看当前驱动
sudo apt-get purge nvidia*      #卸载当前驱动   
sudo apt autoremove             #清理链接

2、安装Cuda

查看是否安装了cuda:

nvcc -V

输入nvcc-V后,若显示:Command 'nvcc' not found, but can be installed with:sudo apt install nvidia-cuda-toolkit,注意:千万不能使用sudo apt install nvidia-cuda-toolkit。

查看CUDA的位置:cd /usr/local,如果该目录下有CUDA文件夹或软链,表示已经安装了cuda,只需要添加cuda相关的环境变量即可。

打开、编辑环境变量的配置文件:

vim ~/.bashrc 

在文件末尾添加:

# cuda
export LD_LIBRARY_PATH=/usr/local/cuda/lib64
export PATH=$PATH:/usr/local/cuda/bin

然后按:wq保存退出编辑模式。

刷新~/.bashrc文件使其生效:

source ~/.bashrc

重新使用nvcc命令查看CUDA版本:nvcc -V。

安装cuda的步骤

点击网址https://developer.nvidia.com/cuda-toolkit-archive,选择需要的CUDA下载。选择runfile(local),并使用生成的指令进行下载和安装。

wget https://developer.download.nvidia.com/compute/cuda/11.1.1/local_installers/cuda_11.1.1_455.32.00_linux.run
sudo sh cuda_11.1.1_455.32.00_linux.run

若第1步提示Existing package manager installation of the driver found. It is strongly recommended that you remove this before continuing.选择continue,在下一步中点击回车键去除driver项,之后选择install。

安装完成后,显示如下:

在~/.bashrc文件中添加如下环境变量:

export PATH=/usr/local/cuda-11.1/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-11.1/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

验证是否安装成功:

nvcc -V

完毕!!!

        文章到此就结束了,下篇文章将的的如何安装cuda对应版本的cudnn,因为安装cudnn适合99%的linux系统,所以单独拿出来讲解,cudnn详细安装讲解请看下篇文章:Linux系统配置深度学习环境之cudnn安装

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

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

相关文章

Python:核心知识点整理大全1-笔记

在本章中,你将运行自己的第一个程序——hello_ world.py。为 此,你首先需要检查自己的计算机是否安装了Python;如果没有安装, 你需要安装它。你还要安装一个文本编辑器,用于编写和运行Python 程序。你输入Python代码时…

【Altera】Cyclone10 FPGA DDR3使用

目录 开发板 硬件 框图 原理图 测试工具 DDR IP核配置 调试及遇到的问题 读写仲裁时序 问题1.拉高read后,wait一直没反应 问题2.DDR校正不过的一个可能性 延伸学习 开发板 Intel官方提供c10的开发套件:Intel Cyclone 10 GX FPGA Development …

Web前端JS如何控制 Video/Audio 视音频声道(左右声道|多声道)、视音频轨道、音频流数据

写在前面: 接上篇博文:Web前端JS如何获取 Video/Audio 视音频声道(左右声道|多声道)、视音频轨道、音频流数据 讲解了如何根据视频链接地址,实现在播放时实时的显示该视频的音频轨道情况,并实时的将各音频轨道数据以可视化&#x…

04. 函数

目录 1、前言 2、Python中的函数 2.1、内置函数 2.2、自定义函数 2.3、函数调用 3、函数的参数 3.1、形参和实参 3.2、位置参数(Positional Arguments) 3.3、默认参数(Default Arguments): 3.4、关键字参数&a…

jsp页面之间传值的一些问题总结

在http协议中一共有4种方法来完成这件事情&#xff1a; 1&#xff09;url传值 2&#xff09;表单传值 3&#xff09;Cookie方法 4&#xff09;Session方法 1、URL传值 将页面1中的值传给页面2 <body> <%String str"123";int numberInteger.parseInt(s…

Siemens-NXUG二次开发-C/C++/Python环境配置[20231204]

Siemens-NXUG二次开发-C/C/Python运行方式[20231204] 1.NX/UG C/C/Python API官方开发文档2.运行方式2.1内部模式2.2 外部模式2.3 许可证书服务器启动 3.C/C环境配置4.Python环境配置5.第三方环境配置 1.NX/UG C/C/Python API官方开发文档 西门子NX/UG Python api开发文档&…

Python----练习:使用面向对象实现报名系统开发

第一步&#xff1a;分析哪些动作是由哪些实体发出的 学生提出报名 学生提供相关资料 学生缴费 机构收费 教师分配教室 班级增加学生信息 于是&#xff0c;在整个过程中&#xff0c;一共有四个实体&#xff1a;学生、机构、教师、班级&#xff01;在现实中的一个具体的实…

【Cell Signaling + 神经递质(neurotransmitter) ; 神经肽 】

Neuroscience EndocytosisExcitatory synapse pathwayGlutamatergic synapseInflammatory PainInhibitors of axonal regenerationNeurotrophin signaling pathwaySecreted Extracellular VesiclesSynaptic vesicle cycle

shell编程系列(11)-使用grep查找文本

文章目录 前言grep的使用根据关键字查找反向查找 结语 前言 grep命令也是我们在日常使用linux&#xff0c;编写shell脚本中会用到的一个高频命令&#xff0c;grep主要是帮助我们查找我们想要的内容&#xff0c;类似于我们在office word里面的 Ctrl f 查找功能&#xff0c;但是…

力扣每日一题day26[42. 接雨水]

给定 n 个非负整数表示每个宽度为 1 的柱子的高度图&#xff0c;计算按此排列的柱子&#xff0c;下雨之后能接多少雨水。 示例 1&#xff1a; 输入&#xff1a;height [0,1,0,2,1,0,1,3,2,1,2,1] 输出&#xff1a;6 解释&#xff1a;上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] …

redis 常见问题分析

目录 redis 使用分析 一、redis 双写一致性分析 常见方式 1、先写数据库&#xff0c;后写缓存 2、先写数据库&#xff0c;后删缓存 3、先删缓存&#xff0c;再写数据库 4、延迟双删 二、redis 常见异常分析 一、缓存穿透 1、概念 2、解决方案 二、缓存雪崩 1、概念…

【BAT】关于在for中SET变量失效的问题

如题&#xff0c;在for中进行一些细化操作时发现SET变量一直不成功(尤其在读取文件时)   简单搜了下看到有个帖子(BAT求助与讨论-SET变量失效)是讨论这个问题的&#xff0c;然后有个老哥给出的解答&#xff0c;其中使用了使用CALL&#xff0c;这让我想起几天前看到的一个博客…

YouTube Premium 会员白嫖教程

前言 YouTube是美国Alphabet旗下的视频分享网站&#xff0c;也是目前全球最大的视频搜索和分享平台&#xff0c;同时允许用户上传、观看、分享及评论视频 1、点击自己的头像&#xff0c;点击购买内容与会员 2、点击免费试订 3、这里选择个人 4、点击开始试用一个月 5、添加一…

每周一算法:背包问题(三)多重背包

多重背包 有 N N N件物品和一个容量是 M M M的背包。第 i i i种物品最多有 s i s_i si​件&#xff0c;每件的体积是 v i v_i vi​&#xff0c;价值是 w i w_i wi​。 求解将哪些物品装入背包&#xff0c;可使这些物品的总体积不超过背包容量&#xff0c;且总价值最大。 输…

基于ssm Vue的戒烟网站源码和论文

基于ssm Vue的戒烟网站源码和论文734 开发工具&#xff1a;idea 数据库mysql5.7 数据库链接工具&#xff1a;navcat,小海豚等 环境&#xff1a; jdk8 tomcat8.5 开发技术 ssm 摘要 随着互联网的高速发展&#xff0c;线上管理成为当代人们管理事物的重要手段之一&#xff…

C++ 系列 第五篇 C++ 算术运算符及类型转换

系列文章 C 系列 前篇 为什么学习C 及学习计划-CSDN博客 C 系列 第一篇 开发环境搭建&#xff08;WSL 方向&#xff09;-CSDN博客 C 系列 第二篇 你真的了解C吗&#xff1f;本篇带你走进C的世界-CSDN博客 C 系列 第三篇 C程序的基本结构-CSDN博客 C 系列 第四篇 C 数据类型…

nodejs微信小程序+python+PHP问卷调查系统的设计与实现-计算机毕业设计推荐

目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 3 2.1 nodejs简介 4 2.2 express框架介绍 6 2.4 MySQL数据库 4 第3章 系统分析 5 3.1 需求分析 5 3.2 系统可行性分析 5 3.2.1技术可行性&#xff1a;…

从存储器原理看 cpu 内存墙的本质

冯诺伊曼结构是个 cpu 和主存储器的通信结构&#xff0c;一个通信过程时延可分为处理时延&#xff0c;传播时延&#xff0c;排队时延&#xff0c;三者共同构筑了内存墙。其中处理时延最核心也最无解&#xff0c;先看它。 看个作为标准存储单元的双稳态触发器(至少教科书上就这…

2.1 Linux C 编程

一、Hello World 1、在用户根目录下创建一个C_Program&#xff0c;并在这里面创建3.1文件夹来保存Hellow World程序&#xff1b; 2、安装最新版nvim ①sudo apt-get install ninja-build gettext cmake unzip curl ②sudo apt install lua5.1 ③git clone https://github.…

深入理解Go语言GC机制

1、Go 1.3之前的标记-清除&#xff08;mark and sweep&#xff09;算法 Go 1.3之前的时候主要用的是普通的标记-清除算法&#xff0c;此算法主要由两个主要的步骤&#xff1a; 标记&#xff08;Mark phase&#xff09;清除&#xff08;Sweep phase&#xff09; 1&#xff09…