1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > linux 搜索文件名中非 Linux服务器中非 root 用户安装(多版本) CUDA 和 cuDNN

linux 搜索文件名中非 Linux服务器中非 root 用户安装(多版本) CUDA 和 cuDNN

时间:2021-05-13 18:10:27

相关推荐

linux 搜索文件名中非 Linux服务器中非 root 用户安装(多版本) CUDA 和 cuDNN

为什么是非root用户安装cuda和cudnn?

共用服务器时,系统公共环境中安装的cuda和cudnn的版本往往与项目需求不符合。而且你一般没有root权限,没办法更改系统公共环境中的cuda和cudnn,而且更改公共配置会影响别人使用。

而TensorFlow和pytorch等框架对cuda和cudnn版本很敏感。比如,cuda9.1和cuda9.0不能通用,cudnn7.1.4和cudnn7.0.5不能通用,版本号差一点都不行。(这一点会在跑别人训练好的模型时候体现。)所以一定要确定好具体cuda、cudnn以及TensorFlow具体版本,使其匹配。

这时候可以,在自己用户目录下装cuda和cudnn,不影响系统公共环境,满足自己需求。也不用任何root权限。

安装后,更改自己用户目录下的环境变量,指向自己路径下的cuda。

具体步骤如下文。

下载安装cuda(以9.1为例)

到NVIDIA官网 /cuda-toolkit-archive 选择对应版本的cuda,这里选择9.1。

然后再选对应的系统型号和installer type

image

点“Base Installer”里面的下载链接,大约1.5G,

或者也可以自己复制链接地址用wget下载,然后安装

wget /compute/cuda/9.1/Prod/local_installers/cuda_9.1.85_387.26_linux

# sh后的文件名以实际下载文件名为准,不如我下载之后文件名为“cuda_9.1.85_387.26_linux.1”

sh cuda_9.1.85_387.26_linux.run

安装指令之后,出现

# 按q退出协议说明.

Do you accept the previously read EULA?

accept/decline/quit: accept

Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 410.48?

(y)es/(n)o/(q)uit: no

Install the CUDA 10.0 Toolkit?

(y)es/(n)o/(q)uit: yes

# 改成自己的用户名(要求绝对路径),这里可能会要求你再输入一遍

Enter Toolkit Location

[ default is /usr/local/cuda-10.0 ]: /home/wuliyttaotao/cuda-10.0

Do you want to install a symbolic link at /usr/local/cuda?

(y)es/(n)o/(q)uit: n

Install the CUDA 10.0 Samples?

(y)es/(n)o/(q)uit: y

# 使用默认路径,回车

Enter CUDA Samples Location

[ default is /home/wuliyttaotao ]:

下载安装cudnn

选择对应cuda版本号以及项目要求的cudnn版本(亲身经历是,系统公共目录下装的7.1.4,然后代码跑了一半报错说,人家原项目用的是7.0.5。然后无奈在自己用户路径下,新装了对应版本的cuda和cudnn)

image

选择cuDNN v7.0.5 Library for Linux(大概200多M),不要错选成cuDNN v7.0.5 Runtime for Ubuntu 16.04

因为下载cudnn是需要登录的,所以不便用wget下载,在自己电脑上下载后,再传到服务器上。

下载完 cuDNN,可能发现后缀是 .solitairetheme8,直接将这个后缀改成 .tgz 即可解压。

解压后发现cudnn总共分两个目录

复制 cuDNN 文件到 CUDA 安装目录:(cuDNN 解压到 ~/cuda 目录了,~/cuda-9.1 为自己设定的 CUDA 安装目录,~ 代表 /home/x007jianjian),并且给所有用户添加读的权限

cp ~/cuda/include/cudnn.h ~/cuda-9.1/include

cp ~/cuda/lib64/lib* ~/cuda-9.1/lib64

chmod a+r ~/cuda-9.1/include/cudnn.h ~/cuda-10.0/lib64/libcudnn*

建立软连接:

cd ~/cuda-10.0/lib64

ln -sf libcudnn.so.7.6.4 libcudnn.so.7

ln -sf libcudnn.so.7 libcudnn.so

ldconfig -v

配置用户环境变量

修改 ~/.bashrc 文件,将下面两行加进去:(将 x007jianjian 改成自己的用户名)

export PATH=/home/wuliyttaotao/cuda-9.1/bin${PATH:+:${PATH}}

export LD_LIBRARY_PATH=/home/wuliyttaotao/cuda-9.1/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

保存 ~/.bashrc 文件后,source ~/.bashrc 使其生效。

安装多版本cudnn,cuda

安装步骤同上述,需要哪个版本就把用户环境变量指向按个版本。

当然,也可以将用户环境变量指向系统公共的cuda

补充说明

安装cuda时候会出现

Installing the CUDA Toolkit in /home/x007jianjian/cuda-9.1 ...

Missing recommended library: libXi.so

Missing recommended library: libXmu.so

Installing the CUDA Samples in /home/x007jianjian ...

Copying samples to /home/x007jianjian/NVIDIA_CUDA-9.1_Samples now...

Finished copying samples.

===========

= Summary =

===========

Driver: Not Selected

Toolkit: Installed in /home/x007jianjian/cuda-9.1

Samples: Installed in /home/x007jianjian, but missing recommended libraries

Please make sure that

- PATH includes /home/x007jianjian/cuda-9.1/bin

- LD_LIBRARY_PATH includes /home/x007jianjian/cuda-9.1/lib64, or, add /home/x007jianjian/cuda-9.1/lib64 to /etc/ld.so.conf and run ldconfig as root

To uninstall the CUDA Toolkit, run the uninstall script in /home/x007jianjian/cuda-9.1/bin

Please see CUDA_Installation_Guide_Linux.pdf in /home/x007jianjian/cuda-9.1/doc/pdf for detailed information on setting up CUDA.

***WARNING: Incomplete installation! This installation did not install the CUDA Driver. A driver of version at least 384.00 is required for CUDA 9.1 functionality to work.

To install the driver using this installer, run the following command, replacing with the name of this run file:

sudo .run -silent -driver

Logfile is /tmp/cuda_install_92427.log

上面提示“Driver: Not Selected”是正常现象。

建立软链接那一步会出现

/lib:

/usr/lib:

/sbin/ldconfig.real: Cannot stat /usr/lib/libopen-pal.so: No such file or directory

/sbin/ldconfig.real: Cannot stat /usr/lib/libopen-rte.so: No such file or directory

/sbin/ldconfig.real: Cannot stat /usr/lib/libmca_common_sm.so: No such file or directory

/sbin/ldconfig.real: Cannot stat /usr/lib/liboshmem.so: No such file or directory

libsatlas.so -> libsatlas.so

libmpi_mpifh.so.12 -> libmpi_mpifh.so.12.0.0

libibverbs.so.1 -> libibverbs.so.1.0.0

libmpi_usempi_ignore_tkr.so.6 -> libmpi_usempi_ignore_tkr.so.6.1.0

libGraphicsMagickWand-Q16.so.2 -> libGraphicsMagickWand.so

libgupnp-av-1.0.so.2 -> libgupnp-av-1.0.so.2.0.0

libBLTlite.2.5.so.8.6 -> libBLTlite.2.5.so.8.6

libopen-rte.so.12 -> libopen-rte.so.12.0.2

libcollada-dom2.4-dp.so.0 -> libcollada-dom2.4-dp.so.2.4.4

libmpi_cxx.so.1 -> libmpi_cxx.so.1.1.3

libgjs.so.0 -> libgjs.so.0.0.0

libGraphicsMagick-Q16.so.3 -> libGraphicsMagick.so

libgupnp-dlna-gst-2.0.so.3 -> libgupnp-dlna-gst-2.0.so.3.0.0

libmpi.so.12 -> libmpi.so.12.0.2

libmutter.so.0 -> libmutter.so.0.0.0

libmpi_usempif08.so.11 -> libmpi_usempif08.so.11.1.0

libgupnp-dlna-2.0.so.3 -> libgupnp-dlna-2.0.so.3.0.0

libBLT.2.5.so.8.6 -> libBLT.2.5.so.8.6

libmca_common_sm.so.4 -> libmca_common_sm.so.4.0.4

libmca_common_verbs.so.7 -> libmca_common_verbs.so.7.0.0

libnetpbm.so.10 -> libnetpbm.so.10.0

libompitrace.so.0 -> libompitrace.so.0.0.0

libid3tag.so.0 -> libid3tag.so.0.3.0

libbotan-1.10.so.1 -> libbotan-1.10.so.1.12

libopen-pal.so.13 -> libopen-pal.so.13.0.2

/sbin/ldconfig.real: Can't create temporary cache file /etc/ld.so.cache~: Permission denied

显示看起来像是报错。但实际用起来,暂时没发现什么影响。

root用户

Linux 服务器的用户如果有 root 权限,那直接删除原来的 cuDNN,然后再重装新版本。

删除已有的 cuDNN:

sudo rm -rf /usr/local/cuda/include/cudnn.h

sudo rm -rf /usr/local/cuda/lib64/libcudnn*

其他安装方式跟非root用户相同,只不过是把用户路径替换成/usr/local,其它命令前加了sudo

还有一点

使用公共服务器的同学也请注意,大家在安装自己的cuda和cudnn后,最好删除安装文件,为自己和别人节省公共空间。(安装其他包也是一样,及时清理安装缓存文件)

reference

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。