为什么是非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官网 https://developer.nvidia.com/cuda-toolkit-archive 选择对应版本的cuda,这里选择9.1。

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

image

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

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

wget https://developer.nvidia.com/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

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

  1. linux服务器非root用户安装Anaconda,并配置tensorflow/pytorch

    文章目录 Anaconda Tensorflow Pytorch Tips Anaconda 1.清华大学镜像网站内下载需要的anaconda版本,我下载的是Anaconda3-5.3.0-Linux ...

  2. linux上验证cudnn是否安装成功_非root用户安装cuda与cudnn

    很多小伙伴都和我抱怨(其实我自己也是)服务器上管理员已安装好显卡驱动或已安装的CUDA版本无法满足自己要求(要么太高要么太低),与自己需要的TensorFlow或者Pytorch版本不兼容,急的头皮发 ...

  3. linux装软件需要root用户,Linux下非root用户安装软件的一般流程:

    1. 获取源代码,一般是wget方式,ubuntu可以使用apt-get source来获取源代码. 2. 解压源代码,一般使用tar -zxvf xxx.tar.gz即可 3. 切换到解压后的目录, ...

  4. Linux 非root用户安装CUDA,CUDNN

    Linux 非root用户安装CUDA,CUDNN 网上很多是root权限下的安装,这篇是利用非root权限进行安装 1.安装显卡驱动(决定CUDA安装的最高版本) 服务器上已安装好了显卡驱动,检查已 ...

  5. linux 非root tomcat,Linux非root用户安装jdk和tomcat

    创建一个用户 sgmm,并在其用户目录里面安装 jdk和tomcat,安装过程如下. 一.增加 sgmm 用户和 sgmm 组 [root@lnx_test ~]# groupadd sgmm [ro ...

  6. linux 非root用户 安装pyscipopt

    前提:实验室的服务器,我没有root权限 1. 尝试用conda方法onda install --channel conda-forge pyscipopt 出现未知错误,搜遍百度谷歌stackove ...

  7. Linux下软件安装 非root用户安装软件的一般流程

    Linux下的软件安装 Linux下的软件安装,实质上有如下四种,"正规"程度依次递减: 使用标准的yum/apt/yast包管理程序安装 比如:sudo apt-get inst ...

  8. linux非root用户安装jdk1.8

    # linux非root用户安装jdk1.8 如题,先到 Oracle 官方网站 下载1.8版本的 JDK 压缩包(jdk-8u221-linux-x64.tar.gz)到本地(如D盘的soft目录) ...

  9. Linux 下非 root 用户安装 theano(配置 GPU)

    非 root 用户,安装 Python 第三方的包,尤其像 theano,存在大量的依赖项,存在的主要问题,是安装各个包时的权限问题.所幸,存在这样一个集成工具,叫 anaconda,其已经内置了许多 ...

最新文章

  1. 中国互联网+机器视觉行业商业模式创新与投资机会深度研究报告
  2. ngx_lua module 模块安装
  3. linker `cc` not found
  4. 关于C编程的一点感受
  5. python提示对话框自动关闭_Python - tkinter:打开和关闭对话框窗口
  6. MaxCompute full outer join改写left anti join实践
  7. python 重定向stdout_Python 犄角旮旯--重定向 stdout
  8. 程序设计与算法----递归之放苹果问题
  9. 大学生计算机面试基础题
  10. 本特利3500_3500系统轴振信号异常波动问题浅析及建议
  11. 苹果手机速度慢_安卓手机用户也想体验一下MagSafe充电器?还是算了吧!
  12. CSS基础(挺详细版)
  13. 高速PCB设计怎么布局,资深工程师透露了其中的秘密,都是干货
  14. An'droid TextView
  15. 未来大数据的主要应用领域包括哪些
  16. greendao的简单使用
  17. mysql双主复制模式_mysql复制模式第二部分-----双主模式
  18. 关于开发人员申请苹果账号相关事宜
  19. 计算机视觉专业排名,2020美国人工智能专业排名TOP10!
  20. ecw2c认真有效地在线查找帮助!

热门文章

  1. halcon基本,vb,vc连接halcon读取图像,视频
  2. [沪江日语电台]ACG杂货铺02-乱唱地带
  3. 【struts2】struts2的一些常用高级应用
  4. 【项目管理】老板与客户意见冲突怎么办?
  5. SAP CRM 使用Javascript触发SAP Server Event
  6. sql where子查询5中字句的使用顺序
  7. Oracle的奇葩设置之非归档模式与RMAN备份
  8. 02-24 面向对象--方法重载、隐藏
  9. 使用gparted-LiveCD对centos分区调整---virtualbox磁盘调整序2
  10. [iBoard 电子学堂][第八卷 设计任意波发生器]第一篇 iBoard 任意波发生器简介