Ubuntu安装英伟达显卡驱动、Cuda和Cudnn

news/2024/11/24 14:12:54/

显卡驱动安装

1、下载对应型号显卡驱动

首先查看自己机器显卡型号

lspci | grep -i nvidia

得到如下输出,其中GeForce GTX 1080就是型号

01:00.0 VGA compatible controller: NVIDIA Corporation GP104 [GeForce GTX 1080] (rev a1)
01:00.1 Audio device: NVIDIA Corporation GP104 High Definition Audio Controller (rev a1)

然后去Official Drivers | NVIDIA官网选择型号下载,得到类似NVIDIA-Linux-x86_64-450.80.02.run这样的执行文件

2、删除可能存在的Nvidia驱动

sudo apt-get remove --purge nvidia*

3、禁用原有开源显卡驱动

sudo vi /etc/modprobe.d/blacklist-nouveau.conf

然后将下面内容添加进去[存在则追加],即将nouveau驱动拉黑

blacklist nouveau
options nouveau modeset=0

保存后,执行如下命令更新改动

sudo update-initramfs -u

执行sudo reboot重启电脑,nouveau驱动应该已被禁用,执行下面命令没有输出才对

lsmod | grep nouveau

4、切换至控制台

按下Ctrl+Alt+f1切换到tty1控制台,输入用户名密码进行登录。

PS: 如果是server版本的系统[无可视化桌面系统],或者是远程登录到本机,请忽略该步骤

5、关闭桌面系统

桌面系统即X Server,用于在Linux下显示桌面和其他相关可视化环境。安装显卡驱动时必须要将目前的桌面服务关闭才能成功,同理如果是server版本则无需此操作。

sudo service lightdm stop

6、安装驱动

进入之前下载驱动文件的目录,执行如下命令

# 换成自己下载的文件名
sudo ./NVIDIA-Linux-x86_64-450.80.02.run

每次安装都会出现如下提示,实际上pre-install固定会失败的,目的就是为了让你知道你自己在干嘛,选择Continue installation

 The distribution-provided pre-install script failed!  Are you sure you want to continue?

 如下提示是否需要32位兼容,不需要,no即可

Install NVIDIA's 32-bit compatibility libraries?

或者有时会出现如下提示,直接ok忽略即可,32位兼容的问题

Unable to find a suitable destination to install 32-bit compatibility libraries. Your system may not be set up for 32-bit compatibility. 32-bit compatibility files will not be installed; if you wish to install them, re-run the installation and set a valid directory with the --compat32-libdir option.

DKMS注册内核模块,直接no不需要

Would you like to register the kernel module sources with DKMS? This will allow DKMS to automatically build a new module, if you install a different kernel later

然后会有如下过程提示 

是否运行Nvidia-xconfig来配置X configuration文件,选择yes

Would you like to run the nvidia-xconfig utility to automatically update your X configuration file so that theNVIDIA X driver will be used when you restart X?  Any pre-existing X configuration file will be backed up.

Tips: 如果提示这个Error,说明Xserver还没关,重新执行上面的第5步关闭Xserver 

ERROR: You appear to be running an X server; please exit X before installing.  For further     
details, please see the section INSTALLING THE NVIDIA DRIVER in the README available on 
the Linux driver download page at www.nvidia.com.

6、验证安装

执行nvidia-smi命令能看到显卡相关信息即可,其中的CUDA Version: 11.1为最高能支持到的cuda版本,并非当前系统安装的cuda版本

 

Cuda安装

1、从官网下载

下载地址为CUDA Toolkit 12.1 Update 1 Downloads | NVIDIA Developer,选择自己的版本,按照命令执行即可,Installer Type一般选择runfile,然后执行最下面提示的两句命令

 

2、按照1步骤的提示下载并执行

1步骤中的两句命令一般如下

# 下载文件
wget https://developer.download.nvidia.com/compute/cuda/xxx/local_installers/cuda_xxx_linux.run
# 进行安装
sudo sh cuda_xxx_linux.runfile

一开始会让你阅读一大堆说明,直接连续按空格到最下面即可,会有如下提示:

输入accept接受协议

Do you accept the previously read EULA?
accept/decline/quit: 

是否安装显卡驱动,由于上面我们自己安装过了,所以这里选择输入n

Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 410.48?
(y)es/(n)o/(q)uit:

是否安装toolkit,输入y

Install the CUDA 10.0 Toolkit?
(y)es/(n)o/(q)uit:

输入toolkit安装目录,默认即可,按enter

Enter Toolkit Location[ default is /usr/local/cuda-10.0 ]:

是否创建cuda软连接,输入y,这里一定要是y,会创建/usr/local/cuda/软链指向真正的cuda目录

Do you want to install a symbolic link at /usr/local/cuda?
(y)es/(n)o/(q)uit:

是否安装cuda样例,如果有测试需求可以y,当然n问题也不大,选择y的话下一步会确认安装目录,直接enter即可

Install the CUDA 10.0 Samples?
(y)es/(n)o/(q)uit: 

3、添加环境变量

执行vi ~/.bashrc,在文件尾部追加如下内容

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

保存后执行source ~/.bashrc使其生效

4、验证安装

执行下面命令会看到cuda版本

nvcc --version# 如下输出
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2018 NVIDIA Corporation
Built on Sat_Aug_25_21:08:01_CDT_2018
Cuda compilation tools, release 10.0, V10.0.130

Cudnn安装

Cudnn安装即下载文件复制到Cuda目录的过程,故实际上并未真正安装软件

1、下载文件

下载地址为CUDA Deep Neural Network (cuDNN) | NVIDIA Developer,不过需要注册才能下载,点击Download 

勾选 I Agree 那一行之后,根据自己上面安装的Cuda版本选择对应的Cudnn版本下载,这里选择的是cuDNN Library for Linux (x86),下载后得到类似cudnn-10.0-linux-x64-v7.6.5.32.tgz的压缩文件 

执行如下命令解压,会自动解压到cuda文件夹中

 

# 换成你下载的文件
tar -zxvf cudnn-10.0-linux-x64-v7.6.5.32.tgz

执行如下操作将头文件和so文件拷贝到cuda目录下即完成安装

# 注意下面的cuda-10.0目录换成上面安装的版本号
sudo cp cuda/include/cudnn.h /usr/local/cuda-10.0/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda-10.0/lib64# 增加读取权限
sudo chmod a+r /usr/local/cuda-10.0/include/cudnn.h 
sudo chmod a+r /usr/local/cuda-10.0/lib64/libcudnn*

Cuda版本切换

如果机器上安装了多个版本的cuda,则会在/usr/local/中存在多个cuda-xx的文件夹,如下: 

 

其中/usr/local/cuda文件夹是个软链接,链接到目前的cuda版本目录,所以如果要切换版本的话,只需要将原来cuda软链删除,重新建立指向另一个cuda-xx目录即可

关于NVIDIA-SMI失效

有时候执行nvidia-smi命令时会报错NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running,这种可能是由于最近升级内核导致的新内核无法启动驱动,如下处理:

1.查看之前安装的nvidia驱动版本

ls /usr/src | grep nvidia# 得到如下输出
nvidia-srv-510.47.03

2.使用dkms重新安装

# 有些机器需要安装dkms,如果已安装则忽略
sudo apt-get install dkms# 使用dkms重新编译
# 注意 -v 后面的版本号,就是第一步中 nvidia- 后面的内容,如果上面输出是 nvidia-510.47 ,那就得 -v 510.47
sudo dkms install -m nvidia -v srv-510.47.03

3.重启电脑,再执行nvidia-smi就恢复正常了

其他工作

剩下的就是去装pytorch和tensorflow等机器学习库了,也不难,本文不再赘述

pytorch: Start Locally | PyTorch tensorflow: GPU 支持  |  TensorFlow


http://www.ppmy.cn/news/378870.html

相关文章

【MySQL高级篇笔记-主从复制(下) 】

此笔记为尚硅谷MySQL高级篇部分内容 目录 一、主从复制概述 1、如何提升数据库并发能力 2、主从复制的作用 二、主从复制的原理 1、原理剖析 2、复制的基本原则 三、一主一从架构搭建 1、准备工作 2、主机配置文件 3、从机配置文件 4、主机:建立账户并…

【大学计算机技术】第二章 测试13

文章目录 选择题 选择题 一台能拍摄分辨率为20161512照片的数码相机,像素数目大约为( )。 A. 250万 B. 100万 C. 160万 D. 320万 正确答案: D 汇编语言是一种( )程序设计语言。 A. 依赖于计算机的低级 B. 计算机能直接执行的 C. 独立于计算机的高级 D. …

Java中的Lambda表达式详解

文章目录 什么是LambdaLambda表达式的语法Lambda表达式的应用场景GUI应用Lambda表达式的优缺点总结 什么是Lambda java中的Lambda表达式是一种函数式编程的风格,它允许我们将代码作为数据传递,并在需要时执行。Lambda表达式能够极大地简化代码&#xff0…

CentOS——更换系统主界面壁纸

一、更换系统默认壁纸 1.在系统主界面右键,选择Change Background… 2.进入Background的Settings界面,选择Background—>Wallpapers,选择系统默认的壁纸,点击Select即可。 二、浏览器搜索壁纸设置为系统主界面壁纸 1.打开F…

Jenkins安装以及部署

本文基于war包形式部署的 需要提前下载Jenkins的war包 Jenkins 的安装和设置下载内容 https://mirrors.jenkins.io/war 版本对应 目录 1.初始化环境 2.安装jdk 安装git Maven配置 安装Jenkins 使用DockerFile的方式进行部署 1.初始化环境 mkdir -p /home/soft 2.安装…

合同法重点知识总结

一、合同法的概念 合同法,有广义和狭义的区别。狭义的合同法,是指规范合同的专门法典,如《中华人民共和国合同法》。广义的合同法,是指关于合同的法律规范的总称,包括《民法通则》、《海商法》、《著作权法》以及涉及合…

「2024」预备研究生mem-从不同备选池选元素从相同备选池选元素-仅分推

一、从不同备选池选元素 至少错误的解体: 其他方法: 二、从相同备选池选元素-仅分推 三、练习题 至少问题

YOLOv5/v7 添加注意力机制,30多种模块分析④,CA模块,ECA模块

目录 一、注意力机制介绍1、什么是注意力机制?2、注意力机制的分类3、注意力机制的核心 二、CA模块1、CA模块的原理2、实验结果3、应用示例 三、ECA模块1、ECA模块的原理2、实验结果3、应用示例 大家好,我是哪吒。 🏆本文收录于,…