Ubuntu系统下 Nvidia驱动 + cuda驱动 + CuDNN安装与卸载

Ubuntu系统下 Nvidia驱动 + cuda驱动 + CuDNN安装与卸载

  • 一、NVIDIA驱动与CUDA驱动的区别
  • 二、NVIDIA驱动安装与卸载
      • 1. 查看系统内核版本
      • 2. 查看显卡型号
      • 3. 查看是否有显卡驱动
      • 4. 禁用nouveau并重启
      • 5. 卸载旧版本
      • 6. 安装1:使用标准Ubuntu仓库进行自动化安装
      • 7. 安装2:使用PPA仓库进行自动化安装
      • 7. 安装3:使用官方的NVIDIA驱动进行手动安装
  • 三、CUDA工具包安装与卸载
      • 1. CUDA安装
      • 2. 安装完成后,编辑bashrc文件,设置cuda环境变量
      • 3. 测试安装成功
      • 4. 卸载
      • 5. 卸载干净检查
  • 四、CuDNN安装与卸载

一、NVIDIA驱动与CUDA驱动的区别

  • CUDA驱动与NVIDIA驱动并不是一个东西,NVIDIA驱动接入GPU,对外提供能够访问GPU的接口;CUDA驱动接入NVIDIA驱动提供的接口访问GPU,同时接入程序,将运行结果输出。
  • CUDA Toolkit包含了CUDA驱动和工具

CUDA是NVIDIA发明的并行计算平台和编程模型。它通过利用GPU的强大功能,显着提高计算性能。
CUDA 的开发考虑了以下几个设计目标:

  • 支持 CUDA 的 GPU 拥有数百个核心,可以共同运行数千个计算线程。这些内核具有共享资源,包括寄存器文件和共享存储器。片上共享内存允许在这些内核上运行的并行任务共享数据,而无需通过系统内存总线发送数据。
  • 支持应用程序同时使用 CPU 和 GPU 的异构计算。应用程序的串行部分在 CPU 上运行,并行部分则卸载到 GPU。因此,CUDA 可以增量地应用于现有应用程序。 CPU 和 GPU 被视为具有自己的内存空间的独立设备。此配置还允许在 CPU 和 GPU 上同时计算,而不会争用内存资源。
  • 提供一小组对标准编程语言(例如 C)的扩展,可以直接实现并行算法。借助 CUDA C/C++,程序员可以专注于算法并行化的任务,而不是将时间花在算法的实现上。

二、NVIDIA驱动安装与卸载

1. 查看系统内核版本

cat /proc/version
#或
uname -a

2. 查看显卡型号

lspci | grep -i nvidia
或
lspci -vnn | grep VGA

3. 查看是否有显卡驱动

nvidia-smi
#或
lshw -c video

4. 禁用nouveau并重启

安装Nvidia显卡的官方驱动和系统自带的nouveau驱动冲突

lsmod | grep nouveau
# 如果有输出,说明nouveau正在加载
sudo vim /etc/modprobe.d/blacklist.conf
# 在最后一行加入
blacklist nouveau
options nouveau modeset=0
# 更新
sudo update-initramfs -u
# 重启
reboot
# 再次查看是否禁用nouveau
lsmod | grep nouveau
# 没有输出禁用成功

5. 卸载旧版本

sudo apt-get --purge remove nvidia*
sudo apt autoremove
sudo /usr/bin/nvidia-uninstall

6. 安装1:使用标准Ubuntu仓库进行自动化安装

首先,检测你的NVIDIA显卡型号和推荐的驱动程序的模型。

ubuntu-drivers devices

如下,推荐nvidia-driver-535-server-open
在这里插入图片描述
执行自动安装,将会安装所有推荐的驱动程序

sudo ubuntu-drivers autoinstall

安装完成,重启就OK了

7. 安装2:使用PPA仓库进行自动化安装

使用图形驱动程序PPA存储库安装NVIDIA beta驱动程序,但 有时候这有可能会出现兼容性的问题
将ppa:graphics-drivers/ppa存储库添加到系统中:

$ sudo add-apt-repository ppa:graphics-drivers/ppa
$ sudo apt update

接下来和之前一样,检测你的NVIDIA显卡型号和推荐的驱动程序的模型。

ubuntu-drivers devices
sudo apt install nvidia-driver-535-server-open

安装完成,重启就OK了

7. 安装3:使用官方的NVIDIA驱动进行手动安装

根据之前准备工作查看的显卡型号,进入Nvidia官方下载对应型号的显卡驱动

wget -c http://us.download.nvidia.com/XFree86/Linux-x86_64/440.82/NVIDIA-Linux-x86_64-535.146.02.run
sudo chmod a+x NVIDIA-Linux-x86_64-535.146.02.run
sudo ./NVIDIA-Linux-x86_64-535.146.02.run -no-opengl-files -no-nouveau-check –no-x-check

-no-x-check:安装驱动时关闭X服务
-no-nouveau-check:安装驱动时禁用nouveau
-no-opengl-files:只安装驱动文件,不安装OpenGL文件

第一个问题选择continue installation,第二个问题选择No(32位的兼容库)
安装完成,重启就OK了

三、CUDA工具包安装与卸载

1. CUDA安装

首先到官网下载CUDA Toolkit 11.3(举例)

由于我们需要安装指定版本,所以建议本地安装,最后一个选择deb(local)

在这里插入图片描述
然后按照下面的指令依次安装

wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin
sudo mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/11.3.0/local_installers/cuda-repo-ubuntu2004-11-3-local_11.3.0-465.19.01-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu2004-11-3-local_11.3.0-465.19.01-1_amd64.deb
sudo apt-key add /var/cuda-repo-ubuntu2004-11-3-local/7fa2af80.pub
sudo apt-get update
sudo apt-get -y install cuda

安装cuda的时候一路确认,选择默认设置即可。但是,需要注意的是,当询问是否安装显卡驱动时,选择no,当输入nvidia-smi没问题的时候一般代表显卡驱动没问题

  • cuda默认是安装在/usr/local目录下的,可执行文件都存放在bin目录下,需要用到的库放在lib64下。
  • 安装完成后,local目录下出现了名为cuda-11.3的文件夹。由于在安装过程中选择了创建软连接,即创建了cuda目录指向cuda-11.3,故接下来添加路径只需添加cuda的路径即可。这样做,在进行不同版本的cuda切换时会方便很多。

2. 安装完成后,编辑bashrc文件,设置cuda环境变量

sudo gedit ~/.bashrc在文件末尾添加:
export CUDA_HOME=/usr/local/cuda
export PATH=$PATH:/usr/local/cuda/bin
export LD_LIBRARY_PATH=/usr/local/cuda/lib64
保存关闭文件后,运行
source ~/.bashrc

3. 测试安装成功

nvcc -V

4. 卸载

A: 运行卸载脚本

1.运行卸载脚本
cd /usr/local/cuda/bin
sudo ./cuda-uninstaller
2.删除安装文件夹
sudo rm -rf cuda
sudo rm -r cuda-12.2

B: 卸载软件及其配置

sudo apt-get --purge remove cuda   :卸载软件及其配置
sudo apt-get autoremove cuda          :卸载软件及其依赖的安装包
sudo apt-get autoclean ubuntu          :删除残余

C: 手动卸载

sudo dpkg -P cuda  然后按Tab键补全,按两次就会弹出所有cuda开头的东西

5. 卸载干净检查

sudo dpkg -l |grep cuda         :罗列已安装cuda开头的东西,发现还是有很多没有卸载掉

四、CuDNN安装与卸载

  • 首先到CuDNN下载页面,选择合适的版本进行下载
  • 然后解压,并进入相应目录,执行一下命令
sudo cp cuda/include/cudnn.h /usr/local/cuda-10.1/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda-10.1/lib64
sudo chmod a+r /usr/local/cuda-10.1/include/cudnn.h 
sudo chmod a+r /usr/local/cuda-10.1/lib64/libcudnn*
  • 通过以下命令查看CuDNN版本
cat /usr/local/cuda-10.1/include/cudnn.h | grep CUDNN_MAJOR -A 2

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

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

相关文章

学习笔记Day21:转录组差异分析

转录组差异分析 差异分析难点在于将数据处理成需要的格式 表达矩阵 数值型矩阵-count 行名是symbol 低表达量的基因需要过滤 分组信息 因子,对照组在level第一位 与表达矩阵的列一一对应 项目名称 字符串(不要有特殊字符) TCGA-XX…

路由策略实验

一.实验拓扑图: 二.实验要求: 1.按照图示配置IP地址,R1,R3,R4上使用loopback口模拟业务网段 2.R1和R2运行RIPv2,R2,R3和R4运行OSPF,各自协议内部互通 3.在RIP和OSPF间配置双向路由引入,要求除R4…

PHP 函数的命名空间是否会影响执行顺序?

在 php 中,函数命名空间一般不会影响执行顺序。执行顺序通常由文件顺序或函数调用顺序决定。即使函数位于不同的命名空间中,只要它们在同一文件中,它们就会按照定义顺序执行。 PHP 函数命名空间是否会影响执行顺序? 简介 在 PHP…

pygame 烟花效果

# 初始化 pygame.init() screen_width 800 screen_height 600 screen pygame.display.set_mode((screen_width, screen_height)) pygame.display.set_caption(烟花效果) # 焰火发射 particles [] # 焰火粒子 def firework(x, y): num_particles 100 # 每次发射的…

关于ResNet的假说

ResNet 最核心的思想就是 恒等映射吧 那么现在来提出几个问题: 为什么deeper 以后train L 会增加?恒等映射会解决什么问题?能否解决梯度非常陡峭的问题?你想到了什么模型有类似的问题,如何进行改进的? as…

本地环境通过ssh通道连接服务器数据库,实现本地客户端和代码可以访问数据库

使用方法: ssh -p 搭建隧道的端口 -fNL 本地端口:远程ip:远程端口号 搭建隧道的账号搭建隧道的ip 可以增加参数-v,输出更多的信息 ssh -p 搭建隧道的端口 -fNL 本地端口:远程ip:远程端口号 -v 搭建隧道的账号搭建隧道的ip 有时候,测试环境的数据库不允许…

ClickHouse 数据类型、表引擎与TTL

文章目录 数据类型表引擎1.TinyLog 引擎2.MergeTree 引擎3.ReplacingMergeTree 引擎4.AggregatingMergeTree 引擎5.SummingMergeTree 引擎6.CollapsingMergeTree 引擎7.Distributed 引擎 TTL列级 TTL表级TTL 数据类型 ClickHouse 数据类型Java 数据类型数据范围UInt8Short0 到…

获取肖博数学全套视频+讲义

肖博数学是一个专业团队,教学方法非常颠覆,具有很多技巧&特殊的解题方法内容,能使得学生在高考时冲刺高分 hello,今天分享一下高中数学资料,肖博数学, 他们的教学方法与传统的教学方式有所不同&#…

vue实现周日历 日历按周切换 vue日程管理

实现的功能 1、点击今天:回到今日日期并选中今日日期,查当天数据 2、点击左箭头:切换上一周 3、点击右箭头:切换下一周 4、黄圆圈代表有日程提醒,点击选中,下方对应显示当前日程提醒的内容,没有…

C++设计模式|创建型 4.建造者模式

1.什么是建造者模式? 建造者模式(也被成为生成器模式),是一种创建型设计模式,软件开发过程中有的时候需要创建很复杂的对象,而建造者模式的主要思想是将对象的构建过程分为多个步骤,并为每个步骤定义一个…

nlp 自然语言处理的dataset数据库积累

下面的这个和 entity recognition有关的。 Weights & Biases

3i平台体验性能加持,13600KF+B760M+撼与科技A770 TITAN装机体验

在2022年,intel重启显卡线,带来了多款性价比十分不错的显卡。而近段时间,又有传言说intel第二代产品e即将面世,甚至已经有数款Battlemage GPU曝光,让不少intel忠实粉丝直呼期待,或许在今年年底,…

mysql面试题八(SQL语句)

目录 1.SQL 基本组成部分 常用操作示例 创建表 插入数据 查询数据 更新数据 删除数据 创建索引 授予用户权限 2.常见的聚合查询 1. 计数(COUNT) 2. 求和(SUM) 3. 平均值(AVG) 4. 最大值&…

Opencv | 图像卷积与形态学变换操作

这里写目录标题 一. 滤波 / 卷积操作1. 平滑均值滤波/卷积2. 平滑中值滤波/卷积3. 平滑高斯滤波/卷积3.1 关注区域3.2 分解特性 二. 形态学变换1. 常用核2. cv.erode ( ) 腐蚀操作3. cv.dilate ( ) 膨胀操作4. Open 操作5. Close 操作6. Morphological Gradient 形态梯度操作7.…

设计模式之创建型模式---工厂模式

文章目录 工厂模式概述简单工厂简单工厂的代码实现简单工厂的使用简单工厂应用场景 工厂方法工厂方法模式的代码实现工厂方法的使用工厂方法应用场景 抽象工厂抽象工厂模式代码实现抽象工厂的使用方法抽象工厂模式的应用场景 总结 工厂模式概述 工厂模式从名字就能看出&#x…

Threejs绘制传送带

接下来会做一个MES场景下的数字孪生,所以开始做车间相关的模型,不过还是尽量少用建模,纯代码实现,因为一方面可以动态使用,可以调节长度和宽度等, 下面这节就做一个简单的传送带,这是所有车间都…

基础SQL DML-插入语句

插入语句前,我们先创建一个表。表的创建在DDL语句里面涉及,可以参考:小赖同学吖-CSDN博客 我们创建一个员工表进行数据的插入操作 插入(添加)语句的语法 给员工表添加一条记录 给员工表添加多条记录 也可以通过下面的方…

年薪5.8万美元|临床医生赴美国康奈尔大学从事博士后研究

作为临床医学8年制的博士毕业生,A医生希望能到国外从事一段时间的博士后,以强化基础科研训练,弥补职业发展的短板。最终我们为其申请到康奈尔大学Weill Cornell医学院的博士后职位,年薪为5.8万美元。 A医生背景: 申请…

C语言项目实践——贪吃蛇

引言:本篇博客中,我将会使用结构体,链表,WIN32 API等一系列知识完成C语言项目——贪吃蛇的实现。在观看此篇博客之前,请将这些知识所熟悉,不然可能会造成理解困难。 更多有关C语言的知识详解可前往个人主页…

【C++】explicit关键字详解(explicit关键字是什么? 为什么需要explicit关键字? 如何使用explicit 关键字)

目录 一、前言 二、explicit关键字是什么? 三、构造函数还具有类型转换的作用 🍎单参构造函数 ✨引出 explicit 关键字 🍍多参构造函数 ✨为什么需要explicit关键字? ✨怎么使用explicit关键字? 四、总结 五…