非root用户在linux下安装CUDA9.2

本文介绍了非root用户在Linux环境下安装CUDA9.2和cuDNN的过程,以适配Python3.6与PyTorch1.6。详细步骤包括查看CUDA驱动和版本,下载安装CUDA,配置环境变量,安装cuDNN,以及设置PyTorch镜像源和安装PyTorch1.6。
部署运行你感兴趣的模型镜像

1、原因

最近在跑Semantics-guided Part Attention Network的代码,作者给出的环境配置是python3.6与pytorch1.6。于是,自己首先创建一个虚拟环境,并使用python3.6
在这里插入图片描述
然后,依据requirements.txt的,安装了torch1.6:
在这里插入图片描述
原本以为安装好之后,代码就可以跑起来,可是,现实却给了一巴掌,错误如下:
在这里插入图片描述
通过torch.cuda.is_available()false,可以看出安装的torch1.6框架并不能使用预装好的CUDA10.0,进而使用不了显卡进行训练。
在这里插入图片描述
对于torch1.6不能使用CUDA10.0,去torch的官网看了一下,发现torch1.6只支持CUDA9.2,CUDA10.1,CUDA10.2,并不支持CUDA10.0,需要非root用户在linux下安装CUDA9.2和对应的cuDNN,服务器是团队或者项目组的,因此CUDA还是自己的好用!!!
在这里插入图片描述

2、为什么安装CUDA9.2,而不是10.1与10.2

2.1 查看CUDA驱动版本

驱动版本即为cuda driver version,输入nvidia-smi,看到我们服务器上的为:
在这里插入图片描述
输入cat /proc/driver/nvidia/version,也可以得出CUDA驱动版本
在这里插入图片描述
由不同版本cunda对应的NVIDIA驱动版本的对应表,以及390.46<410.78<418.39可知,我们可以安装CUDA9.2而不是CUDA10.1或CUDA10.2
在这里插入图片描述

2.2 查看base environment中CUDA运行版本

运行版本即为cuda runtime version,在基础环境中,是安装在python中的cudatoolkit和cudNN程序包的版本:

  • 通过cat /usr/local/cuda/version.txt来查看在base environment中安装的cudn版本
  • 通过cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2查看cudNN的版本,若出现下面的第一个信息则表示安装成功。
    在这里插入图片描述

2.3 查看当前虚拟环境中CUDA版本

  • 输入pip list即可看到相应的CUDA,但是在此指令之中,没有看到相应的CUDA版本,是当前的pip版本中未安装CUDA。
    在这里插入图片描述
  • 或者输入conda list,看到CUDA与cudNN的版本为:
    在这里插入图片描述

参考:https://blog.csdn.net/weixin_36474809/article/details/87820314

3、下载CUDA9.2

CUDA下载网址:https://developer.nvidia.com/cuda-toolkit-archive

CUDA提供两种安装方式:

  • package manager安装
  • runfile安装

虽然package manager 安装方式相对简单一些,但是在阅读别人博客的过程中发现选择这种方式在安装过程中问题可能多一点,失败的概率较大。为了减少不必要的麻烦,选择runfile(后缀为.run)文件来安装
在这里插入图片描述
在这里插入图片描述

  • 注意,使用如下命令,获取相关信息
    xxx:~$ uname -v
    #31~20.04.1-Ubuntu SMP Wed Jan 19 14:08:10 UTC 2022
    
    xxx:~$ arch
    x86_64
    
    在这里插入图片描述

4、CUDA9.2的安装

本文服务器目录结构解释如下

  • 用户名为xyy
  • 目录 /home/xyy/cuda/用于存放不同的CUDA版本,每安装一个版本的CUDA就在该目录下新建一个文件夹,如cuda_9.2,并安装在相应的目录下
  • 安装包下载到 /home/xyy/cuda/ 目录下,安装完成后就删除安装包
  • 目录 /home/xyy/cuda/tem/ 目录用于cuDNN的解压,安装完成后就删除该目录

4.1 安装过程

在安装包所在目录下输入指令sh XXX进行安装,XXX为CUDA安装包文件名
在这里插入图片描述
过程如下,按空格读完协议或直接按q退出一堆的协议说明,进行如下图的操作, 这里没有安装新的驱动,是因为:

  • root 用户 安装的 驱动 能够 支持当前 CUDA9.2的运行;
  • 驱动的更新安装,需要 root 权限 (也就是说 一台 Linux 服务器 只能 安装 一个 驱动),团队的服务器,我没有 权限 去 更新 服务器的 显卡驱动;
  • 如果服务器本身 驱动版本 高 能够 同时 支持 CUDA10.0 和 CUDA9.2 ,那么我们这里安装的 CUDA9.2,后面运行程序便是 可行的;
    在这里插入图片描述

4.2 环境变量的配置

打开主目录下的 .bashrc文件添加如下路径,例如我的.bashrc文件在/home/xyy下,如果没有找到,则按Ctrl+H键显示隐藏文件。

vim .bashrc
在最下方添加刚刚安装CUDA的路径:
---
export PATH="/home/xyy/cuda/cuda_9.2/bin:$PATH"
export LD_LIBRARY_PATH="/home/xyy/cuda/cuda_9.2/lib64:$LD_LIBRARY_PATH"
---
保存之后,使配置生效:  
source .bashrc   

将CUDA路径加入path路径中,可以加入~./bashrc中,也可以加在/etc/profile中,我建议前者并在修改前做好备份,因为/etc/profile是系统文件,随意更改可能会造成系统出错。

4.3 cudn版本的查看

命令行输入 nvcc -V 查看CUDA版本
在这里插入图片描述
这说明 CUDA9.2此次安装OK,已经不再使用服务器公共的CUDA了。

4.4 卸载CUDA,用下面的命令(注意根据自己的路径改变)

cd /home/xyy/cuda/cuda_9.2/bin
sudo ./uninstall_cuda_9.2.pl

备注:https://blog.csdn.net/sinat_28442665/article/details/107384944

5、下载对应的cuDNN并安装

5.2 cuDNN的下载

这个下载需要邮箱注册和登录,如果没有的话,可以注册一下,cuDNN的下载网址为:https://developer.nvidia.com/rdp/cudnn-archive。这里选择一个与CUDA 9.2对应的版本,这里以cuDNN v7.1.4为例,选择以.tgz为后缀的Linux包,这里选择第一个:
在这里插入图片描述
将下载后的文件上传到服务器,如图所示:
在这里插入图片描述

5.3 cuDNN的安装

  • 使用指令 tar -xzvf /home/xyy/cuda/cudnn-9.2-linux-x64-v7.1.tgz -C /home/xyy/cuda/tem/ 将cuDNN解压到tem文件夹(自己新建)并执行以下指令

    cp /home/xyy/cuda/tem/cuda/include/cudnn.h /home/xyy/cuda/cuda_9.2/include/
    cp /home/xyy/cuda/tem/cuda/lib64/libcudnn* /home/xyy/cuda/cuda_9.2/lib64
    chmod a+r /home/xyy/cuda/cuda_9.2/include/cudnn.h /home/xyy/cuda/cuda_9.2/lib64/libcudnn*
    

    可是,当检查cudNN是否安装成功的时候,出现了问题,提示不允许访问这个文件,发现修改访问文件的方法chmod a+r /home/xyy/cuda/cuda_9.2/include/cudnn.h /home/xyy/cuda/cuda_9.2/lib64/libcudnn*没有生效,于是使用了chmod 755 /home/xyy/cuda/cuda_9.2/include/cudnn.h

    在这里插入图片描述

  • 将如下信息配置到.bashrc,并使用source ~/.bashrc使其生效

    export PATH=/home/xyy/cuda/cuda_9.2/bin${PATH:+:${PATH}}
    export LD_LIBRARY_PATH=/home/xyy/cuda/cuda_9.2/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
    
  • 使用cat /home/xyy/cuda/cuda_9.2/include/cudnn.h | grep CUDNN_MAJOR -A 2可以查看cuDNN的版本
    在这里插入图片描述

参考:https://blog.csdn.net/hizengbiao/article/details/88625044

5.3 卸载cuDNN,只需将相关文件删除即可

rm –rf /home/xyy/cuda/cuda_9.2/include/cudnn.h
rm –rf /home/xyy/cuda/cuda_9.2/lib64/libcudnn*

6、安装Pytorch1.6

上面安装的CUDA9.2 和 cuDNN 7.1.4 是因为代码训练的torch版本为1.6 ,各位需要根据自己的需求情况来安装相应的CUDA和cuDNN版本,版本不匹配会导致很多麻烦呐。

5.1 设置镜像

因为Anaconda.org的服务器在国外,使用国外的服务器的时候,速度会很慢并且经常失败,其中出现”CondaHTTPError: HTTP None None for url……”这类错误时。因此,我们可以用清华TUNA镜像源或者包含Anaconda仓库的镜像,将其加入conda的配置。

  • 第一步、添加清华镜像站到Anaconda:
conda config --add channels http://mirror.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels http://mirror.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --set show_channel_urls yes

其中 conda config --set show_channel_urls yes:表示设置搜索时显示通道地址

  • 第二步,还可以附加第三方的conda源:
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/ 
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/ 
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/ 
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/menpo/ 
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
  • 如果不添加镜像,则会出现错误,如下:
    在这里插入图片描述
  • 如果不添加镜像,同时加上了 -c pytorch,则会出现下面的错误:
    在这里插入图片描述

5.2 pytorch的成功安装

前续工作做好之后,使用 conda install pytorch==1.6.0 torchvision==0.7.0 cudatoolkit=9.2进行安装,过程如下:
在这里插入图片描述
经查询,可知自己已经成功安装,如下所示:
在这里插入图片描述

5.3 与之前的比较

在这里插入图片描述

您可能感兴趣的与本文相关的镜像

Python3.9

Python3.9

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

还能坚持

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值