CUDA和cuDNN为NVIDIA支持GPU运算以及深度神经网络计算加速的算法库。通常需要安装以支持利用GPU加速神经网络的训练和推理。
在已经安装NVIDIA显卡驱动的情况下,可以通过nvidia-smi查看显卡信息和适合的CUDA版本。同时可以在如下的cuDNN版本下载网页查看cuDNN和适配CUDA的版本对应关系。
CUDA版本下载: https://developer.nvidia.com/cuda-toolkit-archive
cuDNN版本下载:https://developer.nvidia.com/rdp/cudnn-archive
选择适合的CUDA和cuDNN版本下载进行安装。个人这里根据显示信息选择CUDA 11.4.3版本和cuDNN 8.2.4版本进行安装。
在CUDA版本下载页面
https://developer.nvidia.com/cuda-toolkit-archive
选择需要下载的CUDA版本,根据页面提示,选在对应的系统、平台等选下,选择deb或者runfile类型安装文件,个人选择runfile安装文件。根据提示,通过
$ wget https://developer.download.nvidia.com/.../cuda_11.4.3_470.82.01_linux.run
下载安装文件,下载后运行
$ chmod +x cuda_11.4.3_470.82.01_linux.run
增加可执行权限,然后运行
$ sudo ./cuda_11.4.3_470.82.01_linux.run
进行安装。安装选项中去掉显卡驱动安装的勾选,在已经安装显卡驱动的情况下,避免与已有驱动程序的冲突。安装之后默认会产生/usr/local/cuda目录,其中包含已安装的CUDA内容,可以通过
$ cat /usr/local/cuda/version.json #旧版本为version.txt
查看安装的版本信息。可以通过运行samples下的程序检查是否安装有效,如下
$ cd /usr/local/cuda/samples/1_Utilities/deviceQuery
$ sudo make ./deviceQuery
$ ./deviceQuery
进入目录,编译生成程序,然后运行程序。出现类似如下的信息
最后显示结果 Result = PASS,表示安装成功。
之后进行环境配置,把CUDA相关命令和库文件添加到系统目录中。不然有些情况会出现找不到命令(如nvcc)或者库的问题。
$ sudo gedit /etc/profile
修改profle文件,这个是对所有用户有效,如果仅对当前用户,则修改~/.bashrc文件。在最后部分加上
export PATH="/usr/local/cuda/bin:$PATH"
export LD_LIBRARY_PATH="/usr/local/cuda/lib64:$LD_LIBRARY_PATH"
然后运行
$ source /etc/profile
使更改生效,之后运行
$ nvcc -V
就能够显示安装的CUDA版本信息。
从cuDNN下载链接
https://developer.nvidia.com/rdp/cudnn-archive
下载对应的cuDNN的版本。
选择cuDNN Library for Linux (x86_64) 选项,下载后得到cudnn-11.4-linux-x64-v8.2.4.15.tgz文件,进行解压
$ tar -zxvf cudnn-11.4-linux-x64-v8.2.4.15.tgz
解压后产生cuda目录,里面包含cuDNN的库文件、头文件等内容,其中包含目录
include - cuDNN库头文件
lib64 - cuDNN库文件
把相应的库文件和头文件复制到CUDA目录,即安装完成。
$ sudo cp cuda/lib64/* /usr/local/cuda/lib64
$ sudo cp cuda/include/* /usr/local/cuda/include
通过指令
$ cat /usr/local/cuda/include/cudnn_version.h
可以查看cuDNN的版本信息。
有些地方推荐deb的方式来安装cuDNN,即在选项中选择Runtime Library for Ubuntu 18.04,如下
可以同时安装Developer Library和Code Samples,这种方式的好处是包含了示例程序(Code Samples)的安装,可以用来测试cuDNN的正常工作。
分别下载上述的deb文件,之后依次进行安装
$ sudo dpkg -i libcudnn8_8.1.1.33-1+cuda11.2_amd64.deb
$ sudo dpkg -i libcudnn8-dev_8.1.1.33-1+cuda11.2_amd64.deb
$ sudo dpkg -i libcudnn8-samples_8.1.1.33-1+cuda11.2_amd64.deb
之后cuDNN的示例程序会产生在/usr/src/cudnn_samples_v8目录,可以拷贝目录至用户自己的目录进行测试,如下
$ cp -r /usr/src/cudnn_samples_v8 .
然后用其中的mnist示例进行测试
$ cd cudnn_samples_v8/mnistCUDNN
进行编译
$ make
其中如果出现缺少FreeImage.h头文件的错误,这是因为没有安装freeimage的库,如下安装
$ sudo apt install libfreeimage3 libfreeimage-dev
再进行make就可以通过。之后运行
$ ./mnistCUDNN
出现如下类似字符信息
最后显示Test passed!,表示安装成功。
参考链接:https://blog.csdn.net/chook_you_too_b/article/details/115326310
https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html
https://blog.csdn.net/chook_you_too_b/article/details/115326310