背景
多人共用一台服务器,每个人所需的cuda版本不一样。我需要cuda10.2,服务器上已经安装好了 cuda10.0 ,cuda10.1,大部分安装教程并不能满足我的需求,它们会直接改变别的用户使用cuda的版本。
- 下载cuda10.2
cuda10.2
选择runfile格式的CUDA文件下载 - 安装选项
解压,按照官网的命令安装,但是不要安装驱动和建立软链接。
因为驱动以前安装过了,软链接会改动其他人的使用的cuda版本。
填入 accept
取消Driver的安装选项
图片来自知乎 引用地址
安装完成后,终端会显示两个地址,需要记住,我忘了截图。
- 添加自己账户下的path
转到自己的根目录,修改bashrc文件。这里可以把自己安装的cuda10.2链接到自己的环境中,和别人安装的cuda10.1不会起冲突
sudo vim ~/.bashrc
添加图片中最后两行,所添加的地址是上面一步终端显示过的地址
在终端输入以下命令,让配置生效
source ~/.bashrc
输入nvcc -V
,正常显示则安装成功
sudo cp cuda/include/cudnn.h /usr/local/cuda-10.2/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda-10.2/lib64
sudo chmod a+r /usr/local/cuda-10.2/include/cudnn.h
sudo chmod a+r /usr/local/cuda-10.2/lib64/libcudnn*
cat /usr/local/cuda-10.2/include/cudnn.h | grep CUDNN_MAJOR -A 2
CUDNN
下载linux版本,解压
~/software$ tar -zxvf cudnn-10.2-linux-x64-v8.0.4.30.tgz
所有的文件会解压到~/software/cuda
以下都在~/software目录下操作
添加路径,其中/home/admin17/software/cuda/lib64
是我下载cudnn解压的路径
gedit ~/.bashrc
export LD_LIBRARY_PATH=/home/admin17/software/cuda/lib64:$LD_LIBRARY_PATH
source ~/.bashrc
重启终端
cd ~/software
sudo cp cuda/include/cudnn.h /usr/local/cuda/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
有一些高版本的版本信息在cudnn_version.h 中,需要将cudnn_version.h 复制过去
sudo cp cuda/include/cudnn_version.h /usr/local/cuda/include
添加读写权限:
sudo chmod a+r /usr/local/cuda/include/cudnn.h
sudo chmod a+r /usr/local/cuda/lib64/libcudnn*
sudo chmod a+r /usr/local/cuda/include/cudnn_version.h
查看版本的坑
低版本查看版本的命令:
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
它的输出也不是标准输出
输出
UDNN_MAJOR -A 2
#define CUDNN_MAJOR 8
#define CUDNN_MINOR 0
#define CUDNN_PATCHLEVEL 4
--
#define CUDNN_VERSION (CUDNN_MAJOR * 1000 + CUDNN_MINOR * 100 + CUDNN_PATCHLEVEL)
#endif /* CUDNN_VERSION_H */
说明版本 8.0.4