Centos8.2 搭建显卡驱动+CUDA 11.0+CUDNN


一、安装显卡驱动

1、禁用nouveau

nouveau是一个第三方开源的Nvidia驱动,一般Linux安装的时候默认会安装这个驱动。 这个驱动会与Nvidia官方的驱动冲突,在安装Nvidia驱动和CUDA之前应先禁用nouveau。

查看系统是否正在使用nouveau

lsmod | grep nouveau

如果有显示内容,则进行以下的步骤进行禁用nouveau

 %新建一个配置文件 
 sudo vim /etc/modprobe.d/blacklist-nouveau.conf 
 %在该配置文件中输入i,写入以下内容 
 blacklist nouveau 
 options nouveau modeset=0 
 %保存并退出 
 :wq! 
 %备份当前的镜像 
 sudo mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak 
 %建立新的镜像 
 sudo dracut /boot/initramfs-$(uname -r).img $(uname -r) 
 %重启
 sudo reboot 
 %最后验证,没有任何显示即为禁用成功
 lsmod | grep nouveau

2、安装显卡驱动

(1)安装依赖

  • 安装gcc,g++
%先查看是否安装gcc
gcc -V
%如没有安装,需重新安装
yum install gcc 
yum install gcc-c++
  • 安装 kernel-devel和kernel-headers:
yum install kernel-devel
yum install kernel-headers

注意这里的kernel要和自己的linux系统版本一致:可以使用如下查看自己的系统所需版本

%查看需要的kernel版本
uname -r

得到如下结果
在这里插入图片描述
直接按上述yum安装的版本比较新,导致显卡驱动安装失败,需要查看yum安装的版本与系统所需要的版本是否一致,不一致需要卸载再重新安装所需要的

%查看安装的kernel版本
rpm -qa | grep kernel
%与上面uname-r得到的不一样需要卸载再重新安装
sudo yum remove kernel-devel

在这里插入图片描述

kernel版本下载下载上述uname -r得到的kernel-devel/headers的版本
在这里插入图片描述
安装需要的kernel-devel,kernel-headers

%在存储下载的目录下执行 
sudo rpm i kernel devel 4.18.0-193.el8.x86_64.rpm
sudo rpm i kernel headers 4.18.0-193.el8.x86_64.rpm

(2)安装显卡驱动

  • 查看显卡的类型
lspci | grep -i nvidia

在这里插入图片描述
可以看到显卡的类型为GeForce GTX 2080Ti。

  • 确定上述显卡的驱动版本
    官网可以查询到所有支持该显卡的驱动版本
    在这里插入图片描述
    在这里插入图片描述
    上图中所有驱动都支持该显卡,可看到当前nvidia显卡最新的驱动版本为: 455.38,但使用了450.57版本(后面cuda 11.0所需)
  • 安装驱动
    进入下载的驱动文件目录
%执行之前先让 .run 文件有可执行权限:
chmod u+x NVIDIA-Linux-x86_64-450.57.run
%执行安装脚本
sudo ./NVIDIA-Linux-x86_64-450.57.run --kernel-source-path=/usr/src/kernels/4.18.0-193.el8.x86_64
  • 验证驱动是否安装成功
 nvidia-smi 

输出如下信息,即为驱动安装成功
在这里插入图片描述

二、安装CUDA

1、安装CUDA

官网下载对应的CUDA 11.0
在这里插入图片描述

%下载cuda11.0 
wget http://developer.download.nvidia.com/compute/cuda/11.0.2/local_installers/cuda_11.0.2_450.51.05_linux.run
%进入驱动安装包所在文件夹,执行
 sudo sh cuda_11.0.2_450.51.05_linux.run

注意,安装时不要选择CUDA自带的驱动,因为上一步已经安装需要的驱动了。

2、配置环境变量

%打开profile文件进行编辑
sudo vim /etc/profile
%输入i,在最后添加如下内容
%第一次发布
%export PATH=/usr/local/cuda-11.0/bin${PATH:+:${PATH}} 
%export LD_LIBRARY_PATH=/usr/local/cuda-%11.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
%第二次发布
export PATH=/usr/local/cuda/bin:$PATH 
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
%保存退出
:wq!
source /etc/profile
%重启
sudo reboot

然后设置cuda软连接到cuda-11.0

%设置这一步的目的是为了切换cuda版本时,可以只需要更改软连接就可以切换cuda版本,而无需更改上一步的环境变量
sudo rm -rf /usr/local/cuda
sudo ln -s /usr/local/cuda-11.0 /usr/local/cuda
cd /usr/local
stat cuda

3、验证CUDA是否安装成功

  • 方法一
nvcc -V

输出如下内容即为成功
在这里插入图片描述

  • 方法二
Cat /usr/local/cuda/version.txt

输出如下内容即为成功
在这里插入图片描述

  • 方法三
cd /usr/local/cuda/samples/1_Utilities/deviceQuery
make clean && make
./deviceQuery

输出如下内容即为成功
在这里插入图片描述

三、安装CUDNN

1、 安装CUDNN

官网下载CUDA 11.0 对应的CUDNN版本(我们安装cudnn不用管什么runtime和development,因为我们是使用tgz压缩包安装,直接把压缩包下载下来就好了)

%解压 :
cp cudnn-11.0-linux-x64-v8.0.4.30.solitairetheme8 cudnn-11.0-linux-x64-v8.0.4.30.tgz

tar -xvf cudnn-11.0-linux-x64-v8.0.4.30.tgz
%复制到CUDA指定目录下
cd /usr/local/cudnn-11.0-linux-x64-v8.0.4.30
sudo cp cuda/include/cudnn*.h /usr/local/cuda-11.0/include

sudo cp cuda/lib64/libcudnn* /usr/local/cuda-11.0/lib64 
%修改权限
sudo chmod a+r /usr/local/cuda-11.0/include/cudnn*.h /usr/local/cuda-11.0/lib64/libcudnn*

2、验证CUDNN安装是否成功

  • 方法一
%注意cudnn8.0以上版本cudnn.h一定要写为cudnn_version.h
cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2

输出如下,安装成功在这里插入图片描述

  • 方法二
    在cudnn官网下载页面下载samples的Deb文件,解压得到名为libcudnn8-samples_8.0.4.30-1+cuda11.0_amd64的文件夹
    在这里插入图片描述
%进入Samples所在文件夹
cd /home/root/下载/libcudnn8-samples_8.0.4.30-1+cuda11.0_amd64/data/usr/src/cudnn_samples_v8/mnistCUDNN
%编辑mnistCUDNN
make clean && make
%Run mnistCUDNN的例子 
./mnistCUDNN

输出如下Test Passed,成功。
在这里插入图片描述

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐