1.首先确定电脑已经安装显卡驱动
输入指令 cat /proc/driver/nvidia/version 查看当前服务器版本号。
CUDA与Driver的对应版本:https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html
cuda10.0与Linux系统以及GCC的对应关系:https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html
安装包下载到 /home/zyh/cuda-xx/ 目录下,安装完成后就删除安装包;
目录 /home/zyh/cuda-xx/tem/ 目录用于cuDNN的解压,安装完成后就删除该目录;
2.下载CUDA Toolkit 和 cuDNN
cuda的下载地址: https://developer.nvidia.com/cuda-toolkit-archive
cudnn的下载地址: https://developer.nvidia.com/rdp/cudnn-archive
3.安装CUDA
先执行下面的命令安装相关依赖,否则会出现 Missing recommended library 错误
sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev
在安装包所在目录下输入指令 sudo sh XXX 进行安装,如:sudo sh cuda_11.4.0_470.42.01_linux.run
先按q退出说明,直接进入下一步(不然等很久)
按空格根据需要选择要安装的模块,有“X”的表示安装,没有的表示不安装,我这里已经安装过418.116的显卡驱动了,所以选择不安装驱动 (最终的结果和此处的图一致,如果不一致请保持一致的选择):
4.配置cuDNN
使用指令tar -xzvf /home/zb/cuda/cudnn-8.0-linux-x64-v7.1.tgz -C /home/zb/cuda/tem/ 将cuDNN解压到tem文件夹并执行以下指令
cp /home/zb/cuda/tem/cuda/include/cudnn.h /home/zb/cuda/cuda-8.0/include/
cp /home/zb/cuda/tem/cuda/lib64/libcudnn* /home/zb/cuda/cuda-8.0/lib64
chmod a+r /home/zb/cuda/cuda-8.0/include/cudnn.h /home/zb/cuda/cuda-8.0/lib64/libcudnn*
5.cuda多个版本的切换
在安装了多个cuda版本后,可以在/usr/local/目录下查看自己安装的cuda版本。
这里,cuda-11.0和cuda-11.4就是我们安装的两个cuda版本了,而cuda是一个软链接,它指向我们指定的cuda版本(注意上面在设置环境变量时,使用的是cuda,而不是cuda-11.0和cuda-11.4,这主要是为了方便我们切换cuda版本,可以让我们不用每次都去该环境变量的值)
可以使用stat命令查看当前cuda软链接指向的哪个cuda版本
可以看到,文件类型是symbolic link,而指向的目录正是/usr/local/cuda-11.4,当我们想使用cuda-11.0版本时,只需要删除该软链接,然后重新建立指向cuda-11.0版本的软链接即可(注意名称还是cuda,因为要与bashrc文件里设置的保持一致)
sudo rm -rf cuda
sudo ln -s /usr/local/cuda-11.4 /usr/local/cuda
6.配置用户环境变量
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
最后输入指令 source .bashrc 使新配置的环境变量生效.
相关命令
查看cuda版本 : nvcc -V
查看位置 : which nvcc
查看NVIDIA动态使用情况: watch -n 1 nvidia-smi
cuda 版本 : cat /usr/local/cuda/version.txt
cudnn 版本 : cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
或者cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
NVIDIA 驱动版本 : cat /proc/driver/nvidia/version
7 cudnn版本更改
第一步:官网下载cuda对应版本cudnn,解压出cuda文件夹
当软连接cuda指向cuda11.4的时候,你对cuda操作和对cuda11.4操作是一样的,也就是下面的命令中cuda等价于cuda11.4,自己可以看一下
第二步:删除已有cudnn:
sudo cp cuda-xx/include/cudnn.h /usr/local/cuda-xx/include(xx代表版本号)
sudo cp cuda-xx/lib64/libcudnn* /usr/local/cuda-xx/lib64
sudo chmod a+r /usr/local/cuda-xx/include/cudnn.h /usr/local/cuda-xx/lib64/libcudnn*
sudo chmod +r libcudnn.so.7.6.5
sudo ln -sf libcudnn.so.7.6.5 libcudnn.so.7
sudo ln -sf libcudnn.so.7 libcudnn.so
sudo ldconfig
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2