Ubuntu 20.04 LTS 系统下 安装Nvidia 显卡驱动、CUDA、cuDNN, 并可进行CUDA版本切换

2023-11-08

因为做深度学习的研究项目,为全新机器在Ubuntu 20.04 LTS 系统下 安装Nvidia 显卡驱动、Cuda、Cudnn。并进行CUDA版本切换
成功安装完成了,写个记录。

1. 安装Nvidia 显卡驱动

步骤一: 安装更新软件列表和依赖项

  • 在安装Nvidia显卡驱动之前,需要更新软件列表和必要的依赖项。
sudo apt-get update		# 更新软件列表
sudo apt-get install g++		# 下载g++编译器
sudo apt-get install gcc		# 下载gcc编译器
sudo apt-get install make		# 下载GNU Make编译器
sudo apt-get install initramfs-tools   # 下载安装initramfs-tools

步骤二: 查看GPU型号,并下载对应驱动

# lspci -n/-nn:显示设备的vendor厂商号和device设备号;显示厂商等信息和名称。
lspci -nn | grep VGA

# 例如我这边输出
# 2d:00.0 VGA compatible controller: NVIDIA Corporation Device 2204 (rev a1)
  • 输入数字代码(2204)查询显卡型号
    http://pci-ids.ucw.cz/read/PC/10de/2504
    在这里插入图片描述
  • 知道了显卡型号,就可以在官网下载对应的显卡驱动
    https://www.nvidia.cn/Download/index.aspx?lang=cn
  • 选择对应的显卡类型、信号
  • 我这边安装的是Ubuntu 20.04 LTS,选择操作系统Linux 64-bit
  • 也可以输出命令arch 查询操作系统架构
  • 下载类型选生成分支生,语言选中文即可
  • 点击下载,即可在这里插入图片描述

步骤三:禁用nouveau通用驱动

  • 同时,我这边是服务器版Ubuntu,无图形界面,若安装的是有图形界面的Ubuntu,可输入Ctrl + Alt + F1F6,以免出现报错

  • 我这边原先是没驱动的,就不用删除原有显卡驱动,要是有的话,需要提前进行删除。sudo apt-get remove --purge nvidia*,需要彻底删除,否则安装时会报错。

  • 修改blacklist.conf文件

sudo vim /etc/modprobe.d/blacklist.conf
  • 在blacklist.conf文件,最下方添加命令
blacklist nouveau
options nouveau modeset=0
  • 更新配置
sudo update-initramfs -u
  • 之后必须进行重启,sudo reboot ,重启后输入下方命令,若无输出则说明禁用成功
lsmod | grep nouveau

步骤三:安装Nvidia 显卡驱动

对显卡驱动run文件,进行赋权,并进行安装。

 #修改权限
sudo chmod 777 NVIDIA-Linux-x86_64-384.111.run 
#安装驱动
sudo ./NVIDIA-Linux-x86_64-525.105.17.run –no-x-check –no-nouveau-check –no-opengl-files 
#–no-x-check 关闭X服务
#–no-nouveau-check 禁用nouveau
#–no-opengl-files 不安装OpenGL文件
  • 安装过程中出现以下提示,进行选择。(顺序可能不同)
  • 1.Install NVIDIA's 32-bit compatibility libraries?
    是否安装NVIDIA的32位兼容库?
    选择  NO
    
    2.The distribution-provided pre-install script failed! Are you sure you          want to continue?
    分发提供的预安装脚本失败!你确定要继续吗?
    选择  continue installation
    
    3.Would you like to register the kernel module souces with DKMS? This will allow DKMS to automatically build a new module, if you install a different kernel later?  
    您想向DKMS注册内核模块源吗?
    这将允许DKMS自动构建一个新模块,如果您稍后安装不同的内核?
    选择 No 
    
    4.Would you like to run the nvidia-xconfigutility to automatically update your x configuration so that the NVIDIA x driver will be used when you restart x? Any pre-existing x confile will be backed up.  
    是否要运行nvidia-xconfigutility来自动更新x配置,
    以便在重新启动x时使用nvidia x驱动程序?
    任何预先存在的x confile都将被备份。
    ​​​​​​​选择 Yes
    

安装完成后,

# 可进行重启
sudo reboot

# 输入指令查看显卡信息
nvidia-smi 

在这里插入图片描述

2. 安装CUDA

步骤一: 下载CUDA安装包

在这里插入图片描述

在这里插入图片描述

  • 接下来根据提示进行下载、安装
wget https://developer.download.nvidia.com/compute/cuda/12.1.0/local_installers/cuda_12.1.0_530.30.02_linux.run

sudo sh cuda_12.1.0_530.30.02_linux.run
  • 其中,可以直接依据指令wget命令进行下载。也可以复制run包到浏览器 中,进行下载。(ps:这边需注意对应的cuda版本)https://developer.download.nvidia.com/compute/cuda/12.1.0/local_installers/cuda_12.1.0_530.30.02_linux.run

步骤二: 安装CUDA安装包过程中的选择

  • Do you accept the above EULA? (accept / decline / quit):
  • 是否接受最终用户许可协议,输入accept
    在这里插入图片描述
  • 回车键进行勾选,X就是选中,没有X就是没有选中,把安装驱动进行取消。之后向下键,回车确认install 在这里插入图片描述

步骤三: 配置CUDA环境

sudo  vim ~/.bashrc
  • 在bashrc文件最下方,添加下入代码
  • (ps:这边需要注意cuda的版本,版本不同,路径的命名需修改)
export CUDA_HOME=/usr/local/cuda-11.2
export PATH=$PATH:/usr/local/cuda-11.2/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-11.2/lib64
  • 更新环境
source ~/.bashrc
  • 测试CUDA是否安装成功
nvcc -V
# 或者 nvcc --version

输出下述结果,表示安装成功
在这里插入图片描述

3. 安装cuDNN

步骤一:下载cuDNN包

  • 根据Tensorflow对应CUDA,下载相应的cuDNN包。(这边下载,可能需要登录Nvida账号,可按照网站指引,进行登录或注册。)
    https://developer.nvidia.com/rdp/cudnn-archive
  • 例如这边选择了Download cuDNN v8.2.0 (April 23rd, 2021), for CUDA 11.x
  • 点击cuDNN Library for Linux (x86_64)即可下载压缩包
    在这里插入图片描述
  • 将压缩包,放入自定义路径后,输入命令进行解压
tar -xzvf cudnn-11.3-linux-x64-v8.2.1.32
  • 解压后,输入命令,讲cuDNN对应文件拷贝至CUDA指定路径。
sudo cp cuda/include/cudnn*.h /usr/local/cuda-11.2/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda-11.2/lib64
sudo chmod a+r /usr/local/cuda-11.2/include/cudnn*.h /usr/local/cuda-11.2/lib64/libcudnn*

4. CUDA版本切换

  • 因为后续部分项目,用的库对应的CUDA不同,无需进行修改,修改环境CUDA路径即可。例如需要11.1的CUDA,可通过修改bashrc进行修改
sudo vim ~/.bashrc

将原先的cuda-11.2注释掉,添加cuda-11.1新的环境设置,即可

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

# cuda-11.1
export CUDA_HOME=/usr/local/cuda-11.1
export PATH=$PATH:/usr/local/cuda-11.1/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-11.1/lib64
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ubuntu 20.04 LTS 系统下 安装Nvidia 显卡驱动、CUDA、cuDNN, 并可进行CUDA版本切换 的相关文章

随机推荐

  • 【计算机视觉

    文章目录 一 前言 二 简介 三 相关方法 3 1 实时目标检测器 3 2 端到端目标检测器 3 3 目标检测的多尺度特征 四 检测器端到端速度 4 1 分析NMS 4 2 端到端速度基准 五 The Real time DETR 5 1
  • 我的世界虚拟服务器联机,我的世界模拟城市联机教程-的世界怎么联机

    我的世界联机分为服务器联机和本地WIFI联机两种 首先我们先说下服务器联机方法 一 打开游戏后 点击Play进入游戏列表 再点击右上角的Edit 然后点击External 然后将会进入添加服务器的界面 第一行 ServerName 那里填写
  • 安卓默认启动的活动界面

    是在AndroidManifest 的activity 的标签中 加入 的活动是默认启动的
  • ENVI5.3安装

    一 下载地址 BT下载地址 链接 https pan baidu com s 1Z1l0qXQjSaEf3VQj9 qcAw 提取码 4il4 压缩包下载 链接 https pan baidu com s 1EbdO0uDiBdbFFdQx
  • java中定义score方法_elasticsearch 自定义 script score JavaAPI查询详解

    一 自定义score的应用场景 先打个比方 比如新产品上架了 我想让最新上架的产品搜索时候 排在前面 怎么办呢 很简单按时间排序 嗯这种方法很好实现 但下面又有个需求 比如我要求排序中上架时间的比重为40 自营产品为20 促销产品的比重为4
  • git branch管理常用命令

    本文转载至 http www 2cto com os 201307 229235 html git branch管理常用命令 查看本地分支 plain git branch dev master 代表当前位于dev分支 查看远程分支 pla
  • python netcdf4读取nc格式的气象数据

    一 nc格式数据介绍 NetCDF全称为network Common Data Format 中文译法为 网络通用数据格式 netcdf文件开始的目的是用于存储气象科学中的数据 现在已经成为许多数据采集软件的生成文件的格式 从数学上来说 n
  • PROJ4是什么?

    GIS Geographic Information System 地理信息系统 领域中最常提及 的一个概念是坐标系统 当我们提及一个地理位置的时候 与之伴随而产生的是该位置必定在一个空间参考下 当我们使用GPS设备获取到某个位置的经纬度的
  • Linux常用配置及硬件检测命令

    一些比较常见的linux命令 主要用于检测服务器的配置和硬件信息 包括 操作系统 CPU 内存 硬盘分区 系统时间 负载 网络相关 进程 用户 开关机 启动等方面 适用于主流操作系统 常见的centos ubuntu debian等 操作系
  • python selenium 三种等待方式详解

    引言 当你觉得你的定位没有问题 但是却直接报了元素不可见 那你就可以考虑是不是因为程序运行太快或者页面加载太慢造成了元素还没出来就已经报错了 试着程序调试程序运行速度 等待元素可见再继续运行程序 1 强制等待 sleep 优点 简单明了 需
  • 【国家参考文献标准GB/T 7714—2015】

    GB T 7714 2015 2 1 参考文献著录方法几种主要类型的参考文献 专著 专著中的析出文献 连续出版物 连续出版物中的析出文献 专利文献 电子文献等 的著录项目与格式要求如下 2 1 1 专著 图书 M 指以单行本或多卷册形式 在
  • 游戏开发unity编辑器扩展知识系列:获取选中文件的路径

    参考 Unity 编辑器下获取选择文件路径
  • Python中如何输出换行?

    Python中如何输出换行 在Python中 输出换行可以使用的方法有两种 分别是用转义符号或使用print 接下来我们通过这篇文章为大家详细的讲解一下 方法1 用转义符号 str3 老男孩教育 n str4 帮助有志向的年轻人通过努力学习
  • Threejs + vue 学习- VR 看房

    知识点 参考链接 threejs github 图片下载 https gitee com congyingcy threejs learning tree master three public imgs 直接跳转 代码下载 直接跳转 立方
  • maven自定义Archetype

    1 创建模板项目 如下 2 模板项目的pom xml中添加archetype插件
  • 光纤验收测试标准、参数及常用设备

    在光纤工程项目中必须执行一系列的测试以确保其完整性 一根光缆从出厂到工程安装完毕 需要进行机械测试 几何测试 光测及传输测试 前3个测试一般在工厂进行 传输测试则是光缆布线系统工程验收的必要步骤 综合布线工程电气测试包括电缆系统电气性能测试
  • ChatGPT追祖寻宗:GPT-1论文要点解读

    论文地址 Improving Language Understanding by Generative Pre Training 最近一直忙着打比赛 好久没更文了 这两天突然想再回顾一下GPT 1和GPT 2的论文 于是花时间又整理了一下
  • mysql(十)mysql主从复制--主库切换

    概述 可能为了更迭升级服务器 或者主库出现问题 又或者只是希望重新分配容量 此时需要切换主库 如果这是计划内的切换 会相对容易点 只需要在从库上使用CHANGE MASTER TO命令 并设置合适的值 大多数的值都是可选的 至少要指定需要改
  • C++数据结构笔记(8)循环链表实现

    1 循环链表与单链表的区别在于尾部结点存在指向头结点的指针 2 无论尾部结点指向第一个结点 头结点 还是第二个结点 第一个有效结点 都可以被称为循环链表 3 判断循环结束的两种方式 遍历次数等于size 或判断next指针是否指向头结点 4
  • Ubuntu 20.04 LTS 系统下 安装Nvidia 显卡驱动、CUDA、cuDNN, 并可进行CUDA版本切换

    因为做深度学习的研究项目 为全新机器在Ubuntu 20 04 LTS 系统下 安装Nvidia 显卡驱动 Cuda Cudnn 并进行CUDA版本切换 成功安装完成了 写个记录 1 安装Nvidia 显卡驱动 步骤一 安装更新软件列表和依