python系列&deep_study系列:非root用户安装cuda与cudnn

非root用户安装cuda与cudnn




非root用户安装cuda与cudnn

很多小伙伴都和我抱怨(其实我自己也是)服务器上管理员已安装好显卡驱动或已安装的CUDA版本无法满足自己要求(要么太高要么太低),与自己需要的TensorFlow或者Pytorch版本不兼容,急的头皮发麻!!!今天熬夜写博客带大家一起来安装属于自己的CUDAcuDNN

一、前期准备工作

1.1 输入nvidia-smi查看自己的显卡驱动版本以及支持的最大CUDA版本:

在这里插入图片描述

确认不是自己需要的版本。

然后进入英伟达提供的GPU驱动和CUDA对应关系

在这里插入图片描述
确认自己目前的GPU驱动是否符合自己要安装的CUDA版本,符合就进入下一步,不符合就安装更加高级的驱动。

1.2 输入uname -a与cat /proc/version查看系统的信息,方便匹配对应的CUDA:

在这里插入图片描述
可以看到我们的系统是Linux,Ubuntu的内核,64位(x86_64)的系统。

在这里插入图片描述
Ubuntu版本号为18.04。

1.3 安装包下载:

1.3.1 下载CUDA:

进入英伟达CUDA下载页面

在这里插入图片描述

点击Download Now,可以看到。目前最新的版本是11.0,
在这里插入图片描述
我们以下载10.2为例,点击右下角的Legacy Releases,寻找10.2版本,

在这里插入图片描述

进入10.2下载页面之后,依据之前的系统信息,选择合适系统的CUDA,
在这里插入图片描述
点击runfile(local),弹出下载命令:

在这里插入图片描述

此时你可以选择在服务器上输入

wget http://developer.download.nvidia.com/compute/cuda/10.2/Prod/local_installers/cuda_10.2.89_440.33.01_linux.run

在服务器上进行下载,也可以选择在浏览器中输入wget后面的网址,然后在本地进行下载再上传至服务器。

1.3.2 cuDNN下载

通过网址下载CUDNN,这个下载需要注册账号(简单几步注册登录即可),登录以后,如下图选择合适的CUDA版本对应的CUDNN并选择CUDNN Library for Linux,开始下载,下载好以后将文件后缀名改为.tgz后上传至服务器。

在这里插入图片描述
在这里插入图片描述

二、 开始安装CUDA和cuDNN

现在在我们的服务器中已经有了CUDAcuDNN的安装包了
在这里插入图片描述

2.1 安装CUDA

1. 给cuda可执行权限
chmod +x cuda_10.2.89_440.33.01_linux.run
2. 运行run文件
sh cuda_10.2.89_440.33.01_linux.run
3. 通过键盘方向键(↑,↓)和Enter键可以进行选择和进入(确定)。选择Continue并进入

在这里插入图片描述

4. 输入accept进入

在这里插入图片描述

5. 利用上下键与Enter勾选对话框,只安装CUDA Toolkit。

在这里插入图片描述

6. 选择Options并进入,然后我们需要修改Toolkit Options 、Library install path这两项的路径。

在这里插入图片描述

7. 修改Toolkit Options路径,选择Change Toolkit Install Path

在这里插入图片描述

8. 将默认路径修改至个人目录下,点击Enter确认

在这里插入图片描述

9. 将下面的选项取消选定,选择Done,确认退出

在这里插入图片描述

10. 选择Library install path (Blank for system default)

在这里插入图片描述

11. 添加之前一样的路径并Enter确认退出

在这里插入图片描述

12. 选择Done返回上一层目录,修改路径完成,选择Install开始安装

在这里插入图片描述

13. 出现如下所示的安装信息则说明安装成功

在这里插入图片描述

2.2 修改环境变量

1. 输入vim ~/.bashrc进行环境变量的修改;
2. 添加一下信息(每个人的路径是不同的,我的是/home/zhaoqc/cuda-10.2)并保存退出。
export CUDA_HOME=$CUDA_HOME:/home/zhaoqc/cuda-10.2
export PATH=$PATH:/home/zhaoqc/cuda-10.2/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/zhaoqc/cuda-10.2/lib64
3. 输入source ~/.bashrc

2.3 安装 cuDNN

1. 解压cuDNN,输入以下命令进行解压
tar -zxvf cudnn-10.2-linux-x64-v8.0.0.39.tgz
2. 此时当前目录下回出现一个./cuda的文件夹

在这里插入图片描述

3. 复制文件到CUDA安装目录
cp cuda/include/cudnn.h ../cuda-10.2/include/
cp cuda/lib64/libcudnn* ../cuda-10.2/lib64/
4. 修改权限,cudnn安装完成
chmod a+r ../cuda-10.2/include/cudnn.h ../cuda-10.2/lib64/libcudnn*

2.4 查看是否安装成功,输入nvcc -V,如果你也安装成功了,请各位大侠帮忙点赞收藏吧

在这里插入图片描述

参考

Linux安装CUDA的正确姿势

Linux系统CUDA10.2+CUDNN安装教程

非root用户安装cuda、cudnn(for tensorflow==2.1.0,CUDA 10.1,cuDNN 7.6.5)

无root Linux安装CUDA 10.2 及 cudnn

底下评论

问题一:

不对,博主的cudnn的拷贝操作还是有问题,cudnn*.h,也就是全拷过去,cudnn官方手册里是这样拷贝的:

$ cp cudnn-*-archive/include/cudnn*.h /usr/local/cuda/include
$ cp -P cudnn-*-archive/lib/libcudnn* /usr/local/cuda/lib64
$ chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*

问题二:

中间的路径修改:
export PATH="/public/home/jd_lulin/cuda-10.1/bin:$PATH",然后就生效了

回答一:

多解释一句:如果按原文中修改环境变量的话,后续输入nvcc -V会发现还是服务器原cuda版本,按层主的这个改的话,就会是新安装的cuda版本

提问一:

您好 我还是有一点疑问 就是如果自己原先的目录就是/home/yx/cuda这样的还需要改吗?(在前面加public?)

问题三:

不知道为什么,export CUDA_HOME=$CUDA_HOME:/home/zhaoqc/cuda-10.2这句话会引起我的报错,说是找不到这个路径(已经修改成了我自己的path

我修改成export CUDA_HOME=/home/zhaoqc/cuda-10.2 就好了

提问一:

CUDA_HOME 怎麽會同時出現在賦值的兩端?

问题者回复一:

我也不懂啊,我看本文的原作者这么写的

提问二:

今天用pip安装一个torch-cluster包的时候也踩到这个坑了,在安装的时候会调用 $CUDA_HOME/nvcc 去调用 nvcc 命令。如果按照文章里的写法, $CUDA_HOME/nvcc = "/usr/local/cuda:/home/zhaoqc/cuda-10.2/nvcc" 就出错了

回复二:

这是用原有的路径,然后吧现在的路径添加进去,得看$CUDA_HOME是不是原来就有

问题四:

您好,2.3.3中的第一条命令,应该加个*,不然会少复制几个文件,在某些深度学习框架下会导致用不了cuDNN的错误(刚踩完坑)。新命令应该写成:

cp cuda/include/cudnn*.h ../cuda-10.2/include/
文章作者提问一:

在什么框架下会出错

提问者回复一:
Dlib
文章作者提问二:

难怪,我只用pytorchTF就没有错误

问题五:

博主的安装确实没毛病,官方CUDNN安装也是这样:
NVIDIA Deep Learning cuDNN Documentation
不过下载的 .tar.xz文件可以直接解压或者 先xz,再tar解压2次,不要随便改文件扩展名比较好。参考:Ubuntu 下解压tar.xz方法

提问一:

官方里就不需要sudo权限吗?

问题六:

更新驱动得root~,裂开

问题七:

步骤1:下载developer.nvidia.com/cu

步骤2:安装docs.nvidia.com/cuda/cu

问题八:

不应该用"cat /proc/version"查看ubuntu版本号吧?这个命令查看得到的是"编译内核的GCC编译器的版本信息"。要查看的话应该要用"lsb_release -a"?

问题九:

安装后的cuda-10.2文件夹没有includelib64文件夹[大哭],只有同名文件,不知道出了什么问题,如何解决

问题十:

请问,非root的服务器用户nvidia-smi命令提示:fail to initialize NVML:insufficient permission。该怎么解决[大哭][大哭][大哭]

问题十一:

可是我按照步骤弄了一遍,结果nvcc --version还是以前的版本啊 这咋回事 呜

提问一:

再执行一遍 source ~/.bashrc 就可以了

提问二:

原贴有误,要改 export PATH=/home/gjz/cuda-12.1/bin:$PATH

问题十二:

我的Library install path处不能选择路径,只有一个Driver Options。[发呆]

问题十三:

博主,安装的时候,路径只显示root path install 这个有遇到过吗

提问一:

没遇到过

问题十四:

您好,我安装CUDA时报错cuda_9.0.176_384.81_linux.run: 1: eval: ./cuda-installer.pl: not found,请问这个怎么解决呢?

提问者回复一:

就是刚下载完run文件,运行的时候就会报错

问题十五:

没有建立软连接么 后面加载不了gpu版本

问题十六:

这种安装会使得自己安装的tensorflow 会自动寻找自己安装的cudadcunn

文章作者回复一:

如果你的机器装了多个cuda,需要修改配置文件来告诉系统应该调用哪个版本的环境,TensorFlow只会执行配置文件中指定的cuda

提问二:

添加了环境变量还需要修改吗,我要怎么修改他

问题十七:

sh cuda_10.2.89_440.33.01_linux.run之后出现了Log file not open. Segmentation fault (core dumped)是为什么呀,该怎么解决这个问题呢

提问一:

这是因为这台机器上已经有别人安装过CUDA并且没有删除/tmp下的log文件,而这个文件和你需要使用的log文件同名,文件所有者是别人,你不能写入,因而报错。在此必须吐槽一下不能自己命名log file是真的僵硬。

问题十八:

提问者一:

为啥不直接用conda 装呢?我用conda 装起来很方便的。

其他人回复一:

conda装的话没有CUDA_HOME变量吧?我也用过conda装,但是现在需要用CUDA_HOME来编译一段代码没法弄

问题十九:

收入:sh cuda_10.1.243_418.87.00_linux.run,然后下面根本没提示输入:accept呀?就是一直下滑,不知道要干啥?

其他人回复一:

不用下滑,直接输入accept加回车







普通朋友

非root用户安装cuda与cudnn

posted @ 2024-10-13 12:50  坦笑&&life  阅读(13)  评论(0编辑  收藏  举报  来源