深度学习环境搭建之CentOS 7+NVIDIA GPU+CUDA8.0+CUDNN6.0+TensorFlow

最近在ultralab GX480i测试了一下CentOS7 Deep Learning TensorFlow,其中也是踩坑无数,今整理安装过程发出来,希望大家安装的时候可以参考一下,不用浪费太多的时间在安装配置上,而是把有限的时间用到代码上

一,安装显卡驱动
网上搜索的驱动安装大都是手动编译安装,既:安装编译环境--到官网下载驱动文件*.run--blacklist nouveau,#blacklist nvidiafb--init 3--./NVIDIA xxx.run……然而,过程麻烦且不说,安装完成后总是出现各种意料之外的问题。所以我放弃了这种安装方法,选择从ELRepo源安装显卡驱动(以下操作均以root权限运行)。
  
1. 添加ELRepo源

首先导入公共密钥:rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org  

然后安装ELRepo

CentOS-7:rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm  

CentOS-6:rpm -Uvh http://www.elrepo.org/elrepo-release-6-6.el6.elrepo.noarch.rpm  

CentOS-5:rpm -Uvh http://www.elrepo.org/elrepo-release-5-5.el5.elrepo.noarch.rpm  

ELRepo-release会不断更新,具体操作时请到ELRepo主页http://elrepo.org/tiki/tiki-index.php查看。

2. 查找合适的驱动

安装显卡检查程序:yum install nvidia-detect  

运行:nvidia-detect,在我电脑上的输出:kmod-nvidia
即适合我用的显卡驱动为kmod-nvidia

3. 安装显卡驱动

可以先看看软件源中的驱动程序:yum search kmod-nvidia  
结果为:
kmod-nvidia.x86_64 : nvidia kernel module(s)
kmod-nvidia-304xx.x86_64 : nvidia-304xx kernel module(s)
kmod-nvidia-340xx.x86_64 : nvidia-340xx kernel module(s)

安装:yum -y install kmod-nvidia

ELRepo源的nvidia-detect命令,可以自动帮我们寻找合适的驱动,用yum完成安装重启之后并没有那些意料之外的各种问题!此处省时无数!

二,安装CUDA

NVIDIA官网选择与系统版本匹配的CUDA版本下载,建议不要用太新的CUDA版本,新版本很有可能和TensorFlow版本不匹配,这里也是踩坑无数次深度学习环境搭建之CentOS 7+NVIDIA GPU+CUDA8.0+CUDNN6.0+TensorFlow,最后还是选择用的最多的CUDA8.0
可以创建一个app的目录,把下载的cuda_8.0.61_375.26_linux.run文件和后面的cudnn-8.0-linux-x64-v6.0.tgz放到app里面

cd /app
./cuda_8.0.61_375.26_linux.run  

安装执行以下过程
accept  
-------------------------------------------------------------   
Do you accept the previously read EULA?accept/decline/quit: accept  
# no  
Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 375.26?(y)es/(n)o/(q)uit: n  
-------------------------------------------------------------  
后面的就都选yes或者default ,看到以下输出信息说明安装成功

The driver installation has failed due to an unknown error. Please consult the driver   
installation log located at /var/log/nvidia-installer.log.  
 
===========  
= Summary =  
===========  
 
Driver: Not Selected  
Toolkit: Installed in /usr/local/cuda-8.0  
Samples: Installed in /root, but missing recommended libraries  
......

完成后就配置cuda环境变量,编辑~/.bashrc文件
vim ~/.bashrc  

按a插入模式,添加如下内容
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:/usr/local/cuda-8.0/extras/CUPTI/lib64:$LD_LIBRARY_PATH  
export CUDA_HOME=/usr/local/cuda-8.0/  
esc退出插入模式,:wq保存退出

确认/etc/profile中的路径包含了cuda8.0的安装路径及相应的库文件
export PATH=$PATH:/usr/local/cuda-8.0/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-8.0/lib64
export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/cuda-8.0/lib64
:wq

使配置文件生效,执行:source /etc/profile

若后面运行仍提示相同的错误,则执行以下命令,将相应的库文件复制到/usr/lib
cp /usr/local/cuda-8.0/lib64/libcudart.so.8.0 /usr/local/lib/libcudart.so.8.0 && sudo ldconfig
cp /usr/local/cuda-8.0/lib64/libcublas.so.8.0 /usr/local/lib/libcublas.so.8.0 && sudo ldconfig
cp /usr/local/cuda-8.0/lib64/libcurand.so.8.0 /usr/local/lib/libcurand.so.8.0 && sudo ldconfig

ps. ldconfig命令是一个动态链接库管理命令,是为了让动态链接库为系统共享。

三,安装cuDNN
 依然NVIDIA官网上下载cuDNN包(注意版本匹配的问题),也放入上面那个app里,执行以下操作:
 
 cd /app
 tar -xvzf cudnn-8.0-linux-x64-v6.0.tgz  
 cp include/* /usr/local/cuda/include  
 cp lib64/* /usr/local/cuda/lib64  

四,Centos7安装python3/python2共存

1.查看是否已经安装Python
CentOS 7默认安装了python2.7,因为一些命令要用它比如yum它使用的是python2.7。

python -V   //查看一下是否安装Python
which python   //查看一下Python可执行文件的位置

默认执行文件在/usr/bin/ 目录下,cd到该目录下执行:python*   //查看python指向的是python2.7

现在要安装python3版本,所以python要指向python3,目前还没有安装python3,先安装相关包,用于下载编译python3

yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make

不能忽略相关包,然后备份:mv python python.bak

2.开始编译安装python3
官网下载编译安装包或者直接执行以下命令下载

wget https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tar.xz
tar -xvJf  Python-3.6.2.tar.xz  //解压
cd Python-3.6.2  //切换进入
./configure prefix=/usr/local/python3  //编译安装
make && make install

安装完毕,/usr/local/目录下就会有python3
ln -s /usr/local/python3/bin/python3 /usr/bin/python   //添加软链到执行目录下/usr/bin

python -V    //查看输出的是python3
python2 -V   //查看输出的是python2

因为执行yum需要python2版本,所以我们还要修改yum的配置,执行:
vi /usr/bin/yum
按a插入,把#! /usr/bin/python修改为#! /usr/bin/python2
esc退出插入,:wq保存退出
 
同样
vi /usr/libexec/urlgrabber-ext-down 
按a插入,把#! /usr/bin/python修改为#! /usr/bin/python2
esc退出插入,:wq保存退出
 
这样python3版本就安装完成,同时也有python2
python -V   版本3
python2 -V 版本2

五,安装TensorFlow
有python2x和python3x,安装方式一样,python2x用pip,python3x用pip3即可。我是为了测试两种版本都安装了TensorFlow,如此任性也没有谁了吧深度学习环境搭建之CentOS 7+NVIDIA GPU+CUDA8.0+CUDNN6.0+TensorFlow

首先,pip工具安装
1、首先检查有没有安装python-pip包,直接执行:yum install python-pip
2、没有python-pip包就执行命令:yum -y install epel-release
3、执行成功之后,再次执行:yum install python-pip
4、对安装好的pip进行升级:pip install --upgrade pip

TensorFlow可以安装CPU和GPU两种版本

CPU版本安装命令如下:
python 2.7版本:pip install tensorflow  
python 3.x版本:pip3 install tensorflo

GPU版本安装命令如下:
python 2.7版本:pip install tensorflow-gpu==1.4  
python 3.x版本:pip3 install tensorflow-gpu==1.3   //CentOS7用的python3.6.2,开始用1.4版本,报错,按照网上各种设置后依然不理想,后来看到一大咖说换1.3就完美啦!果然高手在民间!
若上述命令执行过程没有报错,则安装成功

附源码安装 pip
$ wget --no-check-certificate https://github.com/pypa/pip/archive/9.0.1.tar.gz  # 下载源代码
$ tar -zvxf 9.0.1 -C pip-9.0.1  # 解压文件
$ cd pip-9.0.1
$ python3 setup.py install # 使用 Python 3 安装
$ sudo ln -s /usr/local/python3/bin/pip /usr/bin/pip3  #创建链接
$ pip install --upgrade pip  # 升级 pip

六,测试TensorFlow
终于到了测试这一步了,有没有很期待?!
先试:python2   //本次Python2=python2.7
>>> import tensorflow as tf  
>>> hello = tf.constant('Hello, TensorFlow!')  
>>> sess = tf.Session()  
>>> print(sess.run(hello))  //print注意语法()
Hello, TensorFlow!  

再试:python  //本次python=python3.6
>>> import tensorflow as tf  
>>> hello = tf.constant('Hello, TensorFlow!')  
>>> sess = tf.Session()  
>>> print(sess.run(hello))  //print注意语法()
b"Hello, TensorFlow! "

到此全部结束,enjoy TensorFlow!

专注高性能图形工作站

详询QQ/微信:596349281

深度学习环境搭建之CentOS 7+NVIDIA GPU+CUDA8.0+CUDNN6.0+TensorFlow_第1张图片


你可能感兴趣的:(深度学习)