欢迎光临 x-algo
关注算法在工业界应用
Hi, 这是一个关注大数据算法在工业界应用的网站

GPU与Tensorflow环境配置

 

a

 

一、GPU环境配置

1、硬件环境

  • Nvidia GTX 1070
  • Gigabyte Z170-HD3-CF
  • Intel(R) Core(TM) i7-6700K CPU @ 4.00GHz

2、软件环境

  • Linux seele 4.4.0-34-generic #53~14.04.1-Ubuntu
  • Nvidia driver 367.35
  • CUDA 8.0 RC
  • Virtuaenv/Tensorflow/Keras

3、安装步骤

  • 如果机器已经安装了Nvidia driver 367.35以下版本,需要先卸载了

sudo apt-get purge nvidia-*  

sudo apt-get autoremove

sudo reboot

  • gcc及g++版本需要在4.9及以上

sudo apt-get install gcc-4.9 g++-4.9

sudo ln -s /usr/bin/gcc-4.9 /usr/bin/gcc -f

sudo ln -s /usr/bin/g++-4.9 /usr/bin/g++ -f

  • 安装Nvidia driver 367.35

sudo add-apt-repository ppa:graphics-drivers/ppa 

sudo apt-get update

sudo apt-get install nvidia-367 

sudo reboot

              成功后可以看到以下信息:

1

  • 下载 CUDA 8.0 RC 并安装 安装时如果提示到这一步一定记着选择NO2
  • 然后安装步骤安装即可 安装完毕配置环境变量:

export CUDA_HOME=/usr/local/cuda

export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}

export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

export PATH="$PATH:$HOME/bin"

  • 使用nvcc -V测试,出现以下信息则安装成功:

3

  • 下载 cuDNN 并安装

tar xvzf cudnn-8.0-linux-x64-v5.1.tgz

sudo cp cuda/include/cudnn.h /usr/local/cuda/include

sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64

sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*

二、Tensorflow源码安装

1、配置bazel环境

tar -xzvf jdk-8u102-linux-x64.tar.gz

sudo mkdir -p /usr/local/java/

sudo mv jdk1.8.0_102/ /usr/local/java/

  • sudo vim  /etc/profile,修改/etc/profile文件

export JAVA_HOME=/usr/local/java/jdk1.8.0_102

export JRE_HOME=$JAVA_HOME/jre

export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin

export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib:$JAVA_HOME/jre/lib

export JAVA_LIBRARY_PATH=$HADOOP_HOME/lib/native

  • 设置超链接

alternatives --install /usr/bin/java java /usr/local/java/jdk1.8.0_102/jre/bin/java 20000

alternatives --install /usr/bin/jar jar /usr/local/java/jdk1.8.0_102/bin/jar 20000

alternatives --install /usr/bin/javac javac /usr/local/java/jdk1.8.0_102/bin/javac 20000

alternatives --install /usr/bin/javaws javaws /usr/local/java/jdk1.8.0_102/jre/bin/javaws 20000

alternatives --set java /usr/local/java/jdk1.8.0_102/jre/bin/java

alternatives --set jar /usr/local/java/jdk1.8.0_102/bin/jar

alternatives --set javac /usr/local/java/jdk1.8.0_102/bin/javac

alternatives --set javaws /usr/local/java/jdk1.8.0_102/jre/bin/javaws

  • ls -lA /etc/alternatives/测试是否成功:java -version

4

  • 安装Bazel

git clone https://github.com/bazelbuild/bazel.git

cd bazel

./compile.sh

sudo

cp output/bazel /usr/local/bin/

  • 安装成功执行bazel可以看到:

5

3、编译Tensorflow

  • 为什么要通过源码安装tensorflow?

因为通过pip安装的tf不支持cuda 8.0,而在cuda 8.0版本之前的TF在做 GPU并行时会有问题,尤其是做类似CNN的模型时完全无法执行出正确结果,具体讨论可见:Very low accuracy in the mnist dataset with cnn when running on a GPU using tensorflow

  • 下载源码:

git clone https://github.com/tensorflow/tensorflow

  • 安装依赖

sudo apt-get install python-numpy swig python-dev python-wheel

  • 安装配置

cd tensorflow

./configure

注:配置时一定注意选择cuda 8.0版本,例如以下

6

  • 编译并打包

bazel build -c opt --config=cuda //tensorflow/tools/pip_package:build_pip_package

bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg,(包的名字由你的系统决定,比如我这里是:tensorflow-0.10.0rc0-py2-none-any.whl)

4、在目标机安装TF

  • 将tensorflow-0.10.0rc0-py2-none-any.whl传到目标机

pip install wheel

  • 安装virtualenv

sudo apt-get install python-pip python-dev python-virtualenv

virtualenv --system-site-packages ~/tensorflow

source ~/tensorflow/bin/activate

  • 安装TF

pip install tensorflow-0.10.0rc0-py2-none-any.whl:

  • 安装可能会用到的周边环境

pip install keras

pip install matplotlib

pip install h5py

pip install pandas

pip install scikit-learn

pip install gensim

pip install word2veckeras

  • 测试GPU 使用 keras自带mnist_cnn.py例子,如果acc在0.98以上则证明TF安装成功

7

未经允许不得转载:大数据算法 » GPU与Tensorflow环境配置

分享到:更多 ()

评论 5

*

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #3

    图挂了好像

    小石头_sh1年前 (2016-09-27)回复
    • 奇怪了 pc上看着也挂了?

      李亦然1年前 (2016-09-27)回复
    • 好了现在:)

      李亦然1年前 (2016-09-27)回复
  2. #2

    git clone https://github.com/bazelbuild/bazel.git之后要git checkout 0.3.0

    郭同jet1年前 (2016-10-05)回复
  3. #1

    pip现在支持8.0了吧

    啵波1年前 (2016-11-24)回复

关注大数据算法在工业界应用

本站的GitHub关于本站