Ubuntu20.04安装NVIDIA驱动+CUDA11.6+CUDNN

一、查看并卸载已经有的驱动

查看显卡驱动

 nvidia-smi

卸载曾经安装的NVIDIA版本

sudo apt-get remove –purge nvidia*

禁用 nouveau(系统自带的显卡驱动),只有在禁用掉 nouveau 后才能顺利安装 NVIDIA 显卡驱动。

sudo gedit /etc/modprobe.d/blacklist.conf

输入密码后在最后一行加上: 

blacklist nouveau

将Ubuntu自带的显卡驱动加入黑名单,Ctrl +s保存后注意此时还需执行以下命令使禁用 nouveau 真正生效终端输入 :

sudo update-initramfs -u

输入以下命令,没有任何返回说明已经干掉nouveau

lsmod | grep nouveau

二、首先重启电脑,在开机界面进去BIOS设置
  找到Secure boot选项将该选项关闭,F10保存并退出

安装显卡驱动

1.第一种方法是通过ubuntu的软件更新安装驱动

 选择合适的驱动后,点击应用更改,安装完成之后在终端输入 nvidia-smi可以查看刚刚安装的显卡驱动版本,但是通过这办法重启之后我进不去图形界面,出现黑屏且左上角一直闪烁横线,Ctrl+Alt+F2通过非图形界面进入系统,在非图形界面中输入nvidia-smi显示不出我的显卡驱动版本,还有一种情况就是出现了我安装的显卡驱动版本,但是可能版太新了依旧进不去图形界面,只好把显卡驱动再次重新卸载

sudo apt-get remove –purge nvidia*

重启之后可以成功进入图形界面,几次尝试终于安装成功510版本的驱动

期间可能遇到无法访问网络的问题,这里就一次性写完:Ubuntu更换清华源的问题:首先备份原来的源,以防万一

sudo cp /etc/apt/sources.list /etc/apt/sources.list1

打开源文件更换内容

sudo gedit /etc/apt/sources.list

 将以下内容复制到文件中

#添加清华源
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse multiverse

更新

sudo apt-get update
sudo apt-get upgrade

更新软件安装源过后安装应该就没有问题了

2.通过官网下载进行安装

1.从官网  https://www.nvidia.cn/Download/index.aspx?lang=cn下载合适的NVIDIA驱动

在上面的网站输入自己的显卡型号以及操作系统,搜索对应的显卡驱动版本,进行下载

进入下载目录 ,赋予可执行权限并通过命令行安装:

sudo chmod 777  NVIDIA-Linux-x86_64-515.86.01.run
sudo ./NVIDIA-Linux-x86_64-515.86.01.run(–no-opengl-files)  

安装驱动的时候后遇到的问题:        

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

----continue installation

 2.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?  

 ----No 

3.----install without signing

4.Nvidia's 32-bit compatibility libraries? 

----No

5.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.  

----Yes


完成后重启在终端输入nvidia-smi即可查看驱动版本

二、安装CUDA 11.6

1.根据自己的NVIDIA驱动版本以及自己的需求选择合适的CUDA版本,查看nvidia与CUDA版本对应关系:
  https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html

2.到官网下载合适的CUDA版本
  https://developer.nvidia.com/cuda-toolkit-archive

3.根据官网后面的命令进行安装(可以选择run文件,也可以是deb文件)

wget https://developer.download.nvidia.com/compute/cuda/11.6.0/local_installers/cuda_11.6.0_510.39.01_linux.run
sudo bash cuda_11.6.0_510.39.01_linux.run

运行安装文件后会出现以下问题,照着流程来就行了

选择Continue继续安装,这是因为我在写教程之前已经装过一遍了,所以会有些许出入

 终端输入accept接受协议

取消勾选显卡驱动,因为前面已经安装过显卡驱动了,所以这里就不用再安装一遍,除了显卡驱动,其他的都需要勾选。

根据提示选择是否安装,我安装的时候只出现了两个需要确认的选项,并且都是选择yes需要继续安装,如果这里出现了太多签名选项,原因是前面BIOS设置没有设置成功,重新设置一下即可。

4.配置环境变量

gedit ~/.bashrc

在文件末尾加入以下语句并保存

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

更新环境变量配置

source ~/.bashrc

5.查看CUDA版本:终端输入

nvcc-V

得到    

nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2021 NVIDIA Corporation
Built on Fri_Dec_17_18:16:03_PST_2021
Cuda compilation tools, release 11.6, V11.6.55
Build cuda_11.6.r11.6/compiler.30794723_0

6.通过编译一个CUDA自带的sample文件测试是否成功安装

 cd /usr/local/cuda/samples/1_Utilities/deviceQuerye
 sudo make
 ./deviceQuery

显示结果如下:

Detected 1 CUDA Capable device(s)

Device 0: "GeForce GTX 1050"
  CUDA Driver Version / Runtime Version          10.2 / 10.2
  CUDA Capability Major/Minor version number:    6.1
  Total amount of global memory:                 4042 MBytes (4238737408 bytes)
  ( 5) Multiprocessors, (128) CUDA Cores/MP:     640 CUDA Cores
  GPU Max Clock rate:                            1493 MHz (1.49 GHz)
  Memory Clock rate:                             3504 Mhz
  Memory Bus Width:                              128-bit
  L2 Cache Size:                                 524288 bytes
  Maximum Texture Dimension Size (x,y,z)         1D=(131072), 2D=(131072, 65536), 3D=(16384, 16384, 16384)
  Maximum Layered 1D Texture Size, (num) layers  1D=(32768), 2048 layers
  Maximum Layered 2D Texture Size, (num) layers  2D=(32768, 32768), 2048 layers
  Total amount of constant memory:               65536 bytes
  Total amount of shared memory per block:       49152 bytes
  Total number of registers available per block: 65536
  Warp size:                                     32
  Maximum number of threads per multiprocessor:  2048
  Maximum number of threads per block:           1024
  Max dimension size of a thread block (x,y,z): (1024, 1024, 64)
  Max dimension size of a grid size    (x,y,z): (2147483647, 65535, 65535)
  Maximum memory pitch:                          2147483647 bytes
  Texture alignment:                             512 bytes
  Concurrent copy and kernel execution:          Yes with 2 copy engine(s)
  Run time limit on kernels:                     No
  Integrated GPU sharing Host Memory:            No
  Support host page-locked memory mapping:       Yes
  Alignment requirement for Surfaces:            Yes
  Device has ECC support:                        Disabled
  Device supports Unified Addressing (UVA):      Yes
  Device supports Compute Preemption:            Yes
  Supports Cooperative Kernel Launch:            Yes
  Supports MultiDevice Co-op Kernel Launch:      Yes
  Device PCI Domain ID / Bus ID / location ID:   0 / 1 / 0
  Compute Mode:
     < Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) >

deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 10.2, CUDA Runtime Version = 10.2, NumDevs = 1
Result = PASS

最后结果显示pass就是通过了,这里需要注意的是,我这里粘贴的是在旧电脑安装CUDA 10.2的截图,新电脑的版本是CUDA 11.6,运行上面的内容会找不到文件,于是打开路径中的sampales发现高版本的CUDA已经不配备测试DEMO了,只能自己去网上下载来编译,这里附上地址:https://github.com/nvidia/cuda-samples,但是我下载之后发现跟我之前版本的不太一样,而且编译会出错,我就放弃了,最后通过运行我的项目来测试的CUDA,安装是没有问题的。

三、cuDNN安装
1.官方下载网址:
https://developer.nvidia.com/rdp/cudnn-download
  注:下载cuDNN需要注册Nvidia Developer账户  
2.观察好cuDNN与CUDA的兼容性再选择版本:https://docs.nvidia.com/deeplearning/cudnn/support-matrix/index.html#cudnn-cuda-hardware-versions
3.配置cuDNN
  解压下载好的文件夹并进入

sudo cp cuda/include/cudnn.h /usr/local/cuda/include/
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64/
sudo chmod a+r /usr/local/cuda/include/cudnn.h
sudo chmod a+r /usr/local/cuda/lib64/libcudnn*

以上命令分别文复制文件到新路径并对其赋予执行权限
4.验证:终端输入命令:

cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2

输出7.6.5 则CUDnn安装完成。(我在这里又翻车了,并没有输出这个版本,我又看了一下实验室服务器的CUDnn版本,发现同样会出现这个问题,所以我就默认认为他是安装好了的,但是这个在我旧电脑上安装的时候确实是会反馈出CUDNN的版本的,但是最后我配置的环境也是可以用的,就不再计较了。
 

猜你喜欢

转载自blog.csdn.net/abc20150125/article/details/127816279