一、CUDA 10.1安装
直接运行cuda_10.1.105_418.39_linux.run
,然后按照要求一步步操作就可以了。这里需要注意的是,因为已经安装了其他版本的cuda和驱动。所以,在安装的时候,不需要安装驱动。
通过空格键取消Driver选项就可以了,最后通过回车键选中Install安装。
二、cuDNN v8.0.5安装
其实,这里最主要想说的是cudnn的安装,安装的过程碰到了一点问题。刚开始,按照以前的方法,直接执行命令:
$ sudo cp cuda/include/cudnn.h /usr/local/cuda-10.1/include
$ sudo cp cuda/lib64/libcudnn* /usr/local/cuda-10.1/lib64
$ sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
看命令的第一行,直接把cudnn.h复制到cuda-10.1的安装目录下。问题就出在这里,复制之后执行命令cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
查看cudnn版本,结果发现没任何输出。
找到cudnn.h这个文件,发现文件的内容和较早cuDNN v7.0.5版本少了很多内容。于是,找到官方安装文档https://docs.nvidia.com/deeplearning/cudnn/archives/cudnn-803/install-guide/index.html。官方文档给出的命令为:
$ sudo cp cuda/include/cudnn*.h /usr/local/cuda/include
$ sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
$ sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*
注意到,第一行命令和以前不一样,然后进到文件夹仔细查看这些cudnn*.h这些文件。发现官方只是把以前的cudnn.h的内容拆分到了多个文件中。这里只需要按照官方的指令重新复制就可以了。
还有一点需要注意,cudnn的版本信息被放到了cudnn_version.h文件中,所以,这里想要查看cudnn的版本信息,应该使用指令cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
。
PS:安装软件还是要先看官方文档,以官方文档为准,避免安装的时候出现问题。
三、多版本cuda切换
可以看到这里有3个版本的cuda,我们只需要在/usr/local目录下新建一个软链接cuda,直接让cuda指向某一个版本的cuda文件夹就可以了。比如,这里我们使用最新的10.1版本:sudo ln -s /usr/local/cuda-10.1 /usr/local/cuda
。以后,如果想切换其他版本的cuda,只需要修改软链接的指向。
最后,将/usr/local/cuda写入到环境变量。通过vi ~/.bashrc打开文件,然后将以下命令加入到文件末尾:
export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
然后source一下,使其立即生效:source ~/.bashrc
。