非root用户在linux下安装多个版本的CUDA和cuDNN

版权声明:随性拂尘倾心 https://blog.csdn.net/hizengbiao/article/details/88625044


注:本文中服务器目录结构解释如下:
用户名为zb,
目录 /home/zb/cuda/用于存放不同的cuda版本,每安装一个版本的CUDA就在该目录下新建一个文件夹,如cuda-8.0,并安装在相应的目录下,
安装包下载到 /home/zb/cuda/ 目录下,安装完成后就删除安装包,
目录 /home/zb/cuda/tem/ 目录用于cuDNN的解压,安装完成后就删除该目录。

确定安装的软件版本

安装前需先确定显卡驱动、CUDA、cuDNN等之间的对应关系。由于我的帐户没有管理员权限,不能安装显卡驱动,只能根据现有驱动的版本来选择CUDA版本,输入指令cat /proc/driver/nvidia/version 查看当前服务器版本号:
在这里插入图片描述

不同版本cuda对应的NVIDIA驱动版本1:

在这里插入图片描述
我的Linux服务器显卡驱动版本是384.130,大致能安装CUDA 7.0~CUDA 9.0,这里以CUDA 8.0为例进行安装。

cuda8.0与Linux系统以及GCC的对应关系1:
在这里插入图片描述

附:tensorflow与CUDA等之间的对应关系:
在这里插入图片描述

下载CUDA Toolkit

cuda的下载地址: https://developer.nvidia.com/cuda-toolkit-archive
在这里插入图片描述
这里我选择的是CUDA 8.0,其他参数选择如下图所示:
在这里插入图片描述
注意Installer Type这里选择runfile (local)。
然后在Download按钮上右键选择复制下载链接:
在这里插入图片描述
使用指令wget -c wget -c XXX 将安装包下载到服务器上,XXX用刚才复制的链接替换:
在这里插入图片描述

下载cuDNN

cuDNN的下载: https://developer.nvidia.com/rdp/cudnn-archive
随便选择一个与CUDA 8.0对应的版本,这里以cuDNN v7.1.3为例:

在这里插入图片描述
选择以.tgz为后缀的Linux包,这里选择第一个:
在这里插入图片描述
同样,将包下载到服务器备用。
注:由于下载cuDNN需要登录帐户,直接在终端用指令下载可能会失败,可以先在windows上注册个帐户下载好再上传到服务器(使用MobaXterm等软件连接服务器后可以很方便地把windows上的文件通过拖动的方式上传到服务器上)。

安装CUDA

在安装包所在目录下输入指令sh XXX进行安装,XXX为CUDA安装包文件名,如:sh cuda_8.0.61_375.26_linux-run2

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/

注:若出现 Error: unsupported compiler: X.X.X,一般是gcc版本和CUDA没对应,可尝试指令sh cuda_8.0.61_375.26_linux-run --override,如果没解决,则需要安装相对应的gcc。

配置cuDNN

使用指令tar -xzvf /home/zb/cuda/cudnn-8.0-linux-x64-v7.1.tgz -C /home/zb/cuda/tem/ 将cuDNN解压到tem文件夹并执行以下指令3

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编辑),在文件最后面加入以下指令并保存4

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}}

tips:vim编辑器使用指南:

vi XXX  //打开并编辑文件
按i进入编辑模式
编辑好文本后按Esc,退出插入状态。
保存退出:输入冒号,输入WQ(write,quit)或X(x==wq)回车,或者按了ESC后,直接按shift+zz,或者切换到大写模式按ZZ
文本没改动退出:Esc+冒号+q
不保存退出:Esc+冒号+q!

最后输入指令source .bashrc 使新配置的环境变量生效

安装多个版本的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 即可,

输入nvcc -V :查看是否安装成功。
输入which nvcc :查看nvcc位置

参考链接:


  1. https://blog.csdn.net/dudu815110/article/details/87167518 ↩︎ ↩︎

  2. https://blog.csdn.net/yanxiaohui1992/article/details/82730106 ↩︎

  3. https://blog.csdn.net/ksws0292756/article/details/80120561 ↩︎

  4. https://blog.csdn.net/qq_34638161/article/details/80845366 ↩︎

猜你喜欢

转载自blog.csdn.net/hizengbiao/article/details/88625044
今日推荐