CentOS 8.5+NVIDIA 显卡驱动+CUDA+cuDNN 配置
- NVIDIA显卡驱动安装
- CUDA的安装
- 设置NVIDIA官方仓库的驱动安装方法
- 安装CUDNN
实验室服务器配置了两块GeForce RTX 3090显卡,安装完系统之后,需要为显卡安装驱动,满足机器学习需要。网上查了一下方法,主要是
这篇文章,但是发现而且NVIDIA显卡驱动更新了新的版本,有些地方以前的方法已经不适用了。在此记录一下。
NVIDIA显卡驱动安装
这一步的安装和这篇文章基本一致,只是我们的显卡选择了最新的NVIDIA-Linux-x86_64-495.46版本。配置到需要的库文件和编译文件,这一步的安装没有出现问题。还可以采用下面讲到的设置NVIDA官方仓库的安装方法,这一方法可以保证NVIDIA与CUDA的版本兼容。
CUDA的安装
这一步则不能参照前面的文章来,由于NVIDIA的驱动更新,如果从CUDA官网下载他们的最新版CUDA Toolkit 11.5,会出现NVIDIA驱动和CUDA的不兼容问题。NVIDIA官网提供的驱动版本太高了,但是官网有找不到可以适配CUDA的低版本,查了一圈之后,发现了新的方法解决这一问题1。
- 允许epel安装dkms
[root@dlp ~]# dnf --enablerepo=epel -y install kernel-devel-$(uname -r) kernel-headers-$(uname -r) dkms
- 设置NVIDIA官方仓库
[root@cz ~]# dnf config-manager --add-repo http://developer.download.nvidia.com/compute/cuda/repos/rhel8/x86_64/cuda-rhel8.repo
Adding repo from: http://developer.download.nvidia.com/compute/cuda/repos/rhel8/x86_64/cuda-rhel8.repo
- 通过NVIDIA官方仓库安装CUDA11.5
[root@cz ~]# dnf -y install cuda-11-5
- CUDA环境设置
[root@cz ~]# vi /etc/profile.d/cuda115.sh
# 没有这个文件的话可以新建一个,输入以下内容
export PATH=/usr/local/cuda-11.5/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-11.5/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
[root@dlp ~]# source /etc/profile.d/cuda111.sh
- 验证CUDA是否安装成功
[root@cz ~]# nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2021 NVIDIA Corporation
Built on Thu_Nov_18_09:45:30_PST_2021
Cuda compilation tools, release 11.5, V11.5.119
Build cuda_11.5.r11.5/compiler.30672275_0
如果显示以上信息,则安装成功。
设置NVIDIA官方仓库的驱动安装方法
如果没有从NVIDIA官方网站下载驱动进行安装的话,我们也可以采用上面的方法步骤1和2设置NVIDIA官方仓库之后,从仓库进行驱动安装。具体方法如下2:
- 安装最新版本的NVIDIA驱动
[root@cz ~]# dnf module -y install nvidia-driver:latest-dkms
- 卸载系统默认安装的nouveau驱动,加载NVIDIA驱动
[root@cz ~]# modprobe -r nouveau
[root@cz ~]# nvidia-modprobe && nvidia-modprobe -u
- 检验是否安装成功
[root@cz ~]# nvidia-smi
安装CUDNN
安装CUDNN的方法基本与这篇文章相同,只要NVIDIA与CUDA的版本对上了,剩下的基本就没有问题了。这里我们在官网下载的是CUDA11.5对应的CUDNN版本 cudnn-linux-x86_64-8.3.1.22_cuda11.5-archive.tar.xz。具体安装步骤如下3:
[root@cz ~]# tar -xvJf cudnn-linux-x86_64-8.3.1.22_cuda11.5-archive.tar.xz
[root@cz ~]# cd cudnn-linux-x86_64-8.3.1.22_cuda11.5-archive
[root@cz ~]# cp include/cudnn*.h /usr/local/cuda-11.5/include
[root@cz ~]# cp lib/libcudnn* /usr/local/cuda-11.5/lib64
[root@cz ~]# chmod a+r /usr/local/cuda-11.5/include/cudnn*.h /usr/local/cuda-11.5/lib64/libcudnn*