ubuntu14.04+GTX1080+cuda8.0+cudnn5.1+源码编译tensorflow安装教程

GTX1080因为其高性价比,被许多人买来用于进行并行计算用。tensorflow是当今最流行的深度学习库之一。很多人希望使用基于GPU计算的tensorflow来进行研究。tensorflow使用pip在线安装是非常方便的,可它偏偏不支持cuda8,仅支持cuda7.5.因此只能使用源码安装tensorflow.
下面是安装过程

1. ubuntu14.04安装与GTX1080图形加速驱动安装

这个不介绍,网上如何安装windows+ubuntu双系统一大堆,我是使用ultraISO刻录的ubuntu系统进行安装的。
英伟达官网下载好对应你系统的.run格式的图形驱动后,同时按ctrl+alt+f1进入tty1模式,使用sudo service lightdm stop命令来停止x windows界面,否则安装的过程中会提示x windows在运行,终止显卡驱动安装,后面就是各种下一步了。注意后面会提示是否自动更新显示配置文件,要选择是,这样比较方便,不用手动配置了

2. cuda8.0 安装

因为GTX1080是pascal架构,不同于之前的maxwell架构. 最新的cuda8支持GTX1080, 而cuda7.5不支持最新的GTX080. 英伟达需要登陆才可以下载,所以需要注册账号并填写类似问卷调查的东西才可以,不过问卷调查可以瞎胡写。

2.1 cuda8下载

cuda8下载地址: 为 https://developer.nvidia.com/cuda-release-candidate-download
下载页面如图所示,选择linux对应版本,可以选择.run文件,也可以选择.deb文件,这个不影响
这里写图片描述

2.2 cuda8.0安装

下载完成之后,入下载文件目录,执行
sudo sh cuda_8.0.27_linux.run 注意这里的版本号可能与你下载的有差别
然后就是各种下一步了,第一步让选择是否安装英伟达图形驱动,如果已经安装了就选择no,我是单独安装的。我也试过在新系统下让他在这一步安装图形驱动,可是有错误,我也不知道为啥,若有人知道,望告知。这一步选择不安装显卡驱动,是没问题的。
cuda安装过程中会让你选择是否创建/usr/local/cuda-8.0到/usr/local/cuda的符号链接,这一步最好选择是,如果切换版本,很方便。

3 cudnn5.1安装

3.1 cudnn下载

在英伟达cudnn界面下载cudnn5.1,这里也需要进行一个调查问卷,就三个选择题。这里写图片描述

3.2 cudnn安装

具体的cudnn安装如下,其实都不能算是安装,就是把文件拷贝到cuda目录,改变一下权限。

tar xvzf cudnn-7.5-linux-x64-v4.tgz #这里要注意你下载的版本,需要解压你下载的对应版本的文件
#解压后的文件夹名字是cuda
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*

4. tensorflow安装

完整的tensorflow源码安装可以选择参考tensorflow官方安装文档中的安装教程,写的很详细!
这里写图片描述

4.1 tensorflow下载

从tensorflow的github仓库下载代码
$ git clone https://github.com/tensorflow/tensorflow

4.2 bazel安装

bazel是谷歌的代码编译工具,类似make,官方安装教程在这里
其最简单的安装步骤如下:

  • 安装jdk8, 这个不多说了,应该都会
  • 添加bazel的源
$ echo "deb [arch=amd64] http://storage.googleapis.com/bazel-apt stable jdk1.8" | sudo tee /etc/apt/sources.list.d/bazel.list #如果这里你用的是jdk7,要把jdk1.8替换为jdk1.7
$ curl https://storage.googleapis.com/bazel-apt/doc/apt-key.pub.gpg | sudo apt-key add -
  • 安装bazel $ sudo apt-get update && sudo apt-get install bazel
    到这里就结束了,你可以在终端输入bazel看是否安装上了。如果不行,你可以试一下官网提供的另外一种方法,下载bazel的安装文件,也超级简单。
4.3 下载其他依赖文件
# For Python 2.7:
$ sudo apt-get install python-numpy swig python-dev python-wheel
# For Python 3.x:
$ sudo apt-get install python3-numpy swig python3-dev python3-wheel
4.4 编译tensorflow
4.4.1配置

因为我使用是anaconda,python解释器也是用的anaconda里面自带的,使用起来比较方便。
进入tensorflow根目录

$ ./configure
Please specify the location of python. [Default is /usr/bin/python]:
Do you wish to build TensorFlow with Google Cloud Platform support? [y/N] N
No Google Cloud Platform support will be enabled for TensorFlow
Do you wish to build TensorFlow with GPU support? [y/N] y
GPU support will be enabled for TensorFlow
Please specify which gcc nvcc should use as the host compiler. [Default is /usr/bin/gcc]:
Please specify the Cuda SDK version you want to use, e.g. 7.0. [Leave empty to use system default]: 7.5
Please specify the location where CUDA 7.5 toolkit is installed. Refer to README.md for more details. [Default is /usr/local/cuda]:
Please specify the cuDNN version you want to use. [Leave empty to use system default]: 5
Please specify the location where cuDNN 5 library is installed. Refer to README.md for more details. [Default is /usr/local/cuda]:
Please specify a list of comma-separated Cuda compute capabilities you want to build with.
You can find the compute capability of your device at: https://developer.nvidia.com/cuda-gpus.
Please note that each additional compute capability significantly increases your build time and binary size.

Setting up Cuda include
Setting up Cuda lib
Setting up Cuda bin
Setting up Cuda nvvm
Setting up CUPTI include
Setting up CUPTI lib64
Configuration finished
4.4.2 配置GPU支持,这一步耗费时间比较长
$ bazel build -c opt --config=cuda //tensorflow/cc:tutorials_example_trainer

$ bazel-bin/tensorflow/cc/tutorials_example_trainer --use_gpu
# Lots of output. This tutorial iteratively calculates the major eigenvalue of
# a 2x2 matrix, on GPU. The last few lines look like this.
000009/000005 lambda = 2.000000 x = [0.894427 -0.447214] y = [1.788854 -0.894427]
000006/000001 lambda = 2.000000 x = [0.894427 -0.447214] y = [1.788854 -0.894427]
000009/000009 lambda = 2.000000 x = [0.894427 -0.447214] y = [1.788854 -0.894427]

如果没有错误,执行下一步4.4.3,如果这一步出现依赖错误,如下所示

bazel build -c opt --config=cuda //tensorflow/cc:tutorials_example_trainer
ERROR: /home/yaroslavvb/tensorflow.git/tensorflow/tensorflow/core/kernels/BUILD:1080:1: undeclared inclusion(s) in rule '//tensorflow/core/kernels:cwise_op_gpu':
this rule is missing dependency declarations for the following files included by 'tensorflow/core/kernels/cwise_op_gpu_floor.cu.cc':
  '/usr/local/cuda-8.0/include/cuda_runtime.h'
  '/usr/local/cuda-8.0/include/host_config.h'
  '/usr/local/cuda-8.0/include/builtin_types.h'
  '/usr/local/cuda-8.0/include/device_types.h'
  '/usr/local/cuda-8.0/include/host_defines.h'
  '/usr/local/cuda-8.0/include/driver_types.h'
  '/usr/local/cuda-8.0/include/surface_types.h'
  '/usr/local/cuda-8.0/include/texture_types.h'

可以进入tensorflow/third_party/gpus/crosstool/目录,打开CROSSTOOL文件,搜索cxx_builtin_include_directory,应该有三行,在下面添加行如下
cxx_builtin_include_directory: "/usr/local/cuda-8.0/include"
再次运行上一步的命令,应该就没问题了。

4.4.4 创建pip包并安装它
$ bazel build -c opt //tensorflow/tools/pip_package:build_pip_package

# To build with GPU support:
$ 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

#The name of the .whl file will depend on your platform.
#这一步之前,你要进入/te//tensorflow_pkg目录查看具体生成的whl文件的名称,这不是固定的
$ sudo pip install /tmp/tensorflow_pkg/tensorflow-0.10.0rc0-py2-none-any.whl

如果你希望安装到anaconda里面,在最后一步要使用anaconda自带的pip,而不是系统的pip,你使用sudo pip那一般就是用的系统自带的pip
你可以进入anaconda目录,一般在主目录下,进入bin目录,执行
./pip install /tmp/tensorflow_pkg/tensorflow-0.10.0rc0-py2-none-any.whl
至此,tensorflow应该就能使用了。

4.4.5(可选)设置tensorflow开发者功能

为了方面开发tensorflow的工作人员,可以在交互式命令中测试tensorflow,而不必重新安装它,可以执行一下步骤

bazel build -c opt //tensorflow/tools/pip_package:build_pip_package

# To build with GPU support:
bazel build -c opt --config=cuda //tensorflow/tools/pip_package:build_pip_package

mkdir _python_build
cd _python_build
ln -s ../bazel-bin/tensorflow/tools/pip_package/build_pip_package.runfiles/org_tensorflow/* .
ln -s ../tensorflow/tools/pip_package/* .
python setup.py develop

5. 使用

打开python,import tensorflow,应该就可以工作了

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值