文章目录

  • 前言
  • 一、安装CUDA
  • 1.查看显卡驱动支持的CUDA版本
  • 2.官网下载
  • 3.安装过程
  • 4.设置环境变量
  • 5.验证CUDA
  • 二、安装cuDNN
  • 1.下载cuDNN包
  • 2.安装cuDNN
  • 3.查看cuDNN版本
  • 总结



前言

深度学习系列文章之安装CUDA和cuDNN。


一、安装CUDA

首先明确的一点是,我们安装的CUDA版本必须与使用的软件版本相匹配。比如,使用pytorch训练模型,在安装好pytorch后,需要查看当前pytorch对应的CUDA和cuDNN版本,通常训练模型都是在conda等虚拟环境中安装,我的后续文章会讲述如何在conda虚拟环境下,安装对应的pytorch、cuda、cuDNN然后训练算法模型。
本文是在系统环境下使用CUDA11.5(目前最新版本)和对应的cuDNN来做OpenCV4.5.4的DNN推理环境。

1.查看显卡驱动支持的CUDA版本

cuda 支持centos 吗_显卡驱动


上一篇文章我安装了495版本的显卡驱动,可以看出该驱动最高支持CUDA11.5

2.官网下载

NVIDIA官网下载合适CUDA版本

cuda 支持centos 吗_官网_02


也可以适应其他的Installer Type,我没有试过。。

wget https://developer.download.nvidia.com/compute/cuda/11.5.0/local_installers/cuda_11.5.0_495.29.05_linux.run
sudo sh cuda_11.5.0_495.29.05_linux.run

执行以上俩命令即可开始安装

3.安装过程

执行上述命令后,首先是输入accept,接受协议:

cuda 支持centos 吗_ubuntu_03


接下来的界面需要去掉显卡驱动,因为我们已经装好最新版本的驱动

cuda 支持centos 吗_显卡驱动_04


然后选择Install即可安装成功,可能最后界面会出现一个警告,类似

Warining:This installation did not install the CUDA Driver.

donot care

4.设置环境变量

打开bashrc

sudo vim ~/.bashrc

在文档末尾添加

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

上一步安装完CUDA后,会生成cuda-11.5对应的软连接cuda,如果在/usr/local/下只有cuda-11.5没有cuda目录,则需要把上述路径修改为cuda-11.5
执行命令使路径生效

sudo source ~/.bashrc

5.验证CUDA

nvcc -V

cuda 支持centos 吗_官网_05

二、安装cuDNN

1.下载cuDNN包

NVIDIA官网下载对应的cuDNN包,下载cuDNN需要注册账号。

cuda 支持centos 吗_ubuntu_06


选择cuDNN Library for Linux (x86_64),其他版本我也不知道干啥的。。

2.安装cuDNN

下载完成后解压到当前目录,或者到其他你想要的目录

tar zxvf cudnn-11.5-linux-x64-v8.3.0.98.tgz -C ./

解压后主要是有两个文件夹include和lib64,我们把里面的内容拷贝到对应的cuda目录下即可

sudo cp cuda/lib64/*   /usr/local/cuda/lib64/
sudo cp cuda/include/*    /usr/local/cuda/include/

增加权限:

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

3.查看cuDNN版本

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

低版本cuDNN没有cudnn_version.h,直接查看cudnn.h

cuda 支持centos 吗_CUDA_07


总结

至此,我们已经为Ubuntu18.04安装好显卡驱动,CUDA和cuDNN,下一篇文章讲述编译OpenCV4.5.4,使用DNN的cuda推理模型