Linux非root用户安装tensorflow1.12.0-gpu + cuda9.0 + cudnn7.5.0
简介
最近做的一个项目需要使用GPU来做深度学习训练任务,在查询了一些资料后,自己成功安装配置了好了tensorflow-gpu,下面是我安装过程的一些经验。
安装Anaconda
Anaconda是一个功能强大的环境管理器,可以很方便地管理和切换不同的python环境,做深度学习任务时很推荐安装。Anaconda下载网址在这里,根据系统配置选择相应的下载即可。比如我的系统是RHEL7,就选择Linux_64_x86下载。
安装tensorflow-gpu 1.12.0
Anaconda安装完成后,就可以创建一个新的python环境,如下:
conda create -n tensorflow python=3.5
这样就创建了一个名字为tensorflow,python版本为3.5的新环境。-n后面为环境名,python版本也可以自己选择。conda删除环境的命令为:
conda remove -n tensorflow --all
创建好环境后,使用如下命令进入和退出环境:
conda activate tensorflow
conda deactivate
进入tensorflow环境后,就可以使用pip来下载相应的package,比如需要的tensorflow-gpu1.12.0,使用国内的清华镜像源下载速度会更快:
pip install tensorflow-gpu==1.12.0 -i https://pypi.tuna.tsinghua.edu.cn/simple
package下载完成后可以用如下命令检查是否安装成功:
pip list
安装cuda9.0和cudnn7.5.0
安装cuda9.0之前先确认主机上有可用的GPU,然后检查Nvidia显卡驱动版本,使用如下命令:
cat /proc/driver/nvidia/version
存在Nvidia显卡的话会输出如上信息,这里驱动版本是390.25,查阅驱动版本和cuda对应关系表后,选择cuda9.0和cudnn7.5.0下载。如果主机上没有Nvidia驱动,需要先下载安装Nvidia驱动。对应表格如下:
cuda下载网址,根据显卡驱动版本和系统选择相应的下载,最后选择runfile版本。cudnn下载网址,需要先创建Nvidia Developer账号后才能下载,注意要和cuda版本和主机操作系统匹配。
下载完成后,使用如下命令运行安装安装cuda和cudnn:
sh NVIDIA-Linux-x86_64-384.183.run(下载的cuda包)
rpm2cpio libcudnn7-7.5.0.56-1.cuda9.0.x86_64.rpm | cpio -dvim(下载的cudnn包,根据不同格式用不同解压命令,这里我下载的是Red Hat系统的rpm包)
由于我们的安装是在非root权限下,所以在安装cuda的过程中需要自己设置安装路径,比如/home/用户名/cuda-9.0;此外cuda安装过程还需要设置一个sample目录,比如/home/用户名/cuda-sample。安装过程中其它需要用到root权限选择no即可,如driver驱动的安装选择no
。cudnn包解压后,需要将其目录下的库文件复制到cuda目录下并修改权限:
cp cudnn/include/cudnn.h cuda-9.0/include/
cp cudnn/lib64/libcudnn* cuda-9.0/lib64
chmod a+r cuda-9.0/include/cudnn/h cuda-9.0/lib64/libcudnn*
接着修改用户的环境变量,进入/home/用户名/.bashrc文件,加入下面语句:
export PATH=$HOME/cuda-9.0/bin:$PATH
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/cuda-9.0/lib64/
修改之后source ~/.bashrc
使环境变量生效。
验证安装是否成功
使用nvcc -V
命令可以查看安装的cuda版本,之后用conda activate tensorflow
进入指定python环境。输入python
后进入python开发环境,输入import tensorflow
,若无错误,则不会输出信息;若有错误,则根据错误信息检查tensorflow,cuda,cudnn版本是否匹配。