非root用户在linux下安装多个版本的CUDA和cuDNN(cuda 8、cuda 10.1 等)

普通用户不使用sudo安装多个版本CUDA和cuDNN

    • 确定安装的软件版本
    • 下载CUDA Toolkit
    • 下载cuDNN
    • 安装CUDA
    • 配置cuDNN
    • 配置用户环境变量
    • 安装多个版本的CUDA
    • 参考链接:

注:本文中服务器目录结构解释如下:
用户名为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

确定安装的软件版本

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

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

非root用户在linux下安装多个版本的CUDA和cuDNN(cuda 8、cuda 10.1 等)_第1张图片

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

cuda8.0与Linux系统以及GCC的对应关系1:
非root用户在linux下安装多个版本的CUDA和cuDNN(cuda 8、cuda 10.1 等)_第2张图片

附:tensorflow与CUDA等之间的对应关系:
非root用户在linux下安装多个版本的CUDA和cuDNN(cuda 8、cuda 10.1 等)_第3张图片

下载CUDA Toolkit

cuda的下载地址: https://developer.nvidia.com/cuda-toolkit-archive
非root用户在linux下安装多个版本的CUDA和cuDNN(cuda 8、cuda 10.1 等)_第4张图片
这里我选择的是CUDA 8.0,其他参数选择如下图所示:
非root用户在linux下安装多个版本的CUDA和cuDNN(cuda 8、cuda 10.1 等)_第5张图片
注意Installer Type这里选择runfile (local)。
然后在Download按钮上右键选择复制下载链接:
非root用户在linux下安装多个版本的CUDA和cuDNN(cuda 8、cuda 10.1 等)_第6张图片
使用指令wget -c wget -c XXX 将安装包下载到服务器上,XXX用刚才复制的链接替换:
非root用户在linux下安装多个版本的CUDA和cuDNN(cuda 8、cuda 10.1 等)_第7张图片

下载cuDNN

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

非root用户在linux下安装多个版本的CUDA和cuDNN(cuda 8、cuda 10.1 等)_第8张图片
选择以.tgz为后缀的Linux包,这里选择第一个:
非root用户在linux下安装多个版本的CUDA和cuDNN(cuda 8、cuda 10.1 等)_第9张图片
同样,将包下载到服务器备用。
注:由于下载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/

cuda 10.1:
非root用户在linux下安装多个版本的CUDA和cuDNN(cuda 8、cuda 10.1 等)_第10张图片
按空格根据需要选择要安装的模块,有“X”的表示安装,没有的表示不安装,我这里已经安装过418.116的显卡驱动了,所以选择不安装驱动:
非root用户在linux下安装多个版本的CUDA和cuDNN(cuda 8、cuda 10.1 等)_第11张图片
按上下键移动到CUDA Toolkit 10.1上,然后按“A”键,出现:
非root用户在linux下安装多个版本的CUDA和cuDNN(cuda 8、cuda 10.1 等)_第12张图片
全部不安装并更改Toolkit Install Path:
在这里插入图片描述
再返回主界面然后选择Options->Library install path:
非root用户在linux下安装多个版本的CUDA和cuDNN(cuda 8、cuda 10.1 等)_第13张图片
在这里插入图片描述
然后确定,返回选择Install

注:若出现 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 ↩︎

你可能感兴趣的:(环境搭建)