文章目录
1、普通用户不使用sudo安装多个版本CUDA和cuDNN
1.1、服务器目录结构解释
- 用户名为zb,
- 目录
/home/zb/cuda/
,用于存放不同的cuda版本,每安装一个版本的CUDA就在该目录下新建一个文件夹,如cuda-8.0,并安装在相应的目录下, - 安装包下载到 /home/zb/cuda/ 目录下,安装完成后就删除安装包,
- 目录 /home/zb/cuda/tem/ 目录用于cuDNN的解压,安装完成后就删除该目录。
- 本文已测试通过的有 :cuda 8.0 、cuda 9.0 、 cuda 9.2 、 cuda 10.1
1.2、确定安装的软件版本
- 安装前需先确定显卡驱动、CUDA、cuDNN等之间的对应关系。由于我的帐户没有管理员权限,不能安装显卡驱动,只能根据现有驱动的版本来选择CUDA版本,输入指令cat /proc/driver/nvidia/version 查看当前服务器版本号:
- 不同版本cuda对应的NVIDIA驱动版本
2、下载CUDA Toolkit
-
cuda的下载地址: https://developer.nvidia.com/cuda-toolkit-archive
-
选择CUDA 8.0,其他参数选择如下图所示:
- 注意Installer Type这里选择runfile (local)。
- 注意Installer Type这里选择runfile (local)。
-
在Download按钮上右键选择复制下载链接:
-
使用指令wget -c wget -c XXX将安装包下载到服务器上,XXX用刚才复制的链接替换:
3、下载cuDNN
- cuDNN的下载: https://developer.nvidia.com/rdp/cudnn-archive,这里随便选择一个与CUDA 8.0对应的版本,这里以cuDNN v7.1.3为例:
- 选择以.tgz为后缀的Linux包,这里选择第一个:
- 将包下载到服务器备用。
注:
由于下载cuDNN需要登录帐户,直接在终端用指令下载可能会失败,可以先在windows上注册个帐户下载好再上传到服务器
(使用MobaXterm等软件连接服务器后可以很方便地把windows上的文件通过拖动的方式上传到服务器上)。
4、安装CUDA
-
在安装包所在目录下输入指令sh XXX进行安装,XXX为CUDA安装包文件名
sh cuda_8.0.61_375.26_linux.run #开始安装 #..一堆协议说明... #直接按q退出协议说明. zerozone@zerozone: accept/decline/quit: accept #接受协议 Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 375.26? y)es/(n)o/(q)uit: n #是否显卡驱动包,由于已经安装显卡驱动,选择n Install the CUDA 8.0 Toolkit? (y)es/(n)o/(q)uit: y #是否安装工具包,选择y Enter Toolkit Location [ default is /usr/local/cuda-8.0 ]: #工具包安装地址, 这里我输入自己的安装地址:/home/zb/cuda/cuda-8.0/ Do you want to install a symbolic link at /usr/local/cuda? (y)es/(n)o/(q)uit: n #添加链接**这里选择n Install the CUDA 8.0 Samples? (y)es/(n)o/(q)uit: y #安装样例,选择y Enter CUDA Samples Location [ default is /root ]: #样例安装地址, 这里我输入自己的安装地址:/home/zb/cuda/cuda-8.0/samples/
-
按空格根据需要选择要安装的模块,有“X”的表示安装,没有的表示不安装,我这里已经安装过显卡驱动了,所以选择不安装驱动
-
按上下键移动到CUDA Toolkit 10.1上,然后按“A”键,出现:
-
全部不安装并更改Toolkit Install Path:
-
再返回主界面然后选择Options->Library install path:
-
然后确定,返回选择Install
5、安装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*
-
配置用户环境变量:
修改个人用户目录下的.bashrc文件(用vi ~/.bashrc编辑),在文件最后面加入以下指令并保存
:export PATH=/home/zb/cuda/cuda-8.0/bin${PATH:+:${PATH}} export LD_LIBRARY_PATH=/home/zb/cuda/cuda-8.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
vim编辑器使用指南:
- vi XXX //打开并编辑文件
- 按i进入编辑模式
- 编辑好文本后按Esc,退出插入状态。
- 保存退出:输入冒号,输入WQ(write,quit)或X(x==wq)回车,或者按了ESC后,直接按shift+zz,或者切换到大写模式按ZZ
- 文本没改动退出:Esc+冒号+q
- 不保存退出:Esc+冒号+q!
-
最后输入指令
source ~/.bashrc
使新配置的环境变量生效 -
输入
nvcc -V
,查看是否安装成功。输入which nvcc
,查看nvcc位置
6、安装多个版本的CUDA
-
如果要安装多个共存的CUDA版本则重复上面的步骤,挑选相对应且系统支持的CUDA、cuDNN进行类似的安装,切换环境时直接在.bashrc文件里更改之前配置环境时加入的路径代码即可。如将CUDA 8.0切换成CUDA 9.0则将.bashrc中的
export PATH=/home/zb/cuda/cuda-8.0/bin${PATH:+:${PATH}} export LD_LIBRARY_PATH=/home/zb/cuda/cuda-8.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
改为
export PATH=/home/zb/cuda/cuda-9.0/bin${PATH:+:${PATH}} export LD_LIBRARY_PATH=/home/zb/cuda/cuda-9.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
-
并执行指令指令source .bashrc 即可,