GTX1080因为其高性价比,被许多人买来用于进行并行计算用。tensorflow是当今最流行的深度学习库之一。很多人希望使用基于GPU计算的tensorflow来进行研究。tensorflow使用pip在线安装是非常方便的,可它偏偏不支持cuda8,仅支持cuda7.5.因此只能使用源码安装tensorflow. 下面是安装过程
这个不介绍,网上如何安装windows+ubuntu双系统一大堆,我是使用ultraISO刻录的ubuntu系统进行安装的。 在英伟达官网下载好对应你系统的.run格式的图形驱动后,同时按ctrl+alt+f1进入tty1模式,使用sudo service lightdm stop命令来停止x windows界面,否则安装的过程中会提示x windows在运行,终止显卡驱动安装,后面就是各种下一步了。注意后面会提示是否自动更新显示配置文件,要选择是,这样比较方便,不用手动配置了
因为GTX1080是pascal架构,不同于之前的maxwell架构. 最新的cuda8支持GTX1080, 而cuda7.5不支持最新的GTX080. 英伟达需要登陆才可以下载,所以需要注册账号并填写类似问卷调查的东西才可以,不过问卷调查可以瞎胡写。
cuda8下载地址: 为 https://developer.nvidia.com/cuda-release-candidate-download 下载页面如图所示,选择linux对应版本,可以选择.run文件,也可以选择.deb文件,这个不影响
下载完成之后,入下载文件目录,执行 sudo sh cuda_8.0.27_linux.run 注意这里的版本号可能与你下载的有差别 然后就是各种下一步了,第一步让选择是否安装英伟达图形驱动,如果已经安装了就选择no,我是单独安装的。我也试过在新系统下让他在这一步安装图形驱动,可是有错误,我也不知道为啥,若有人知道,望告知。这一步选择不安装显卡驱动,是没问题的。 cuda安装过程中会让你选择是否创建/usr/local/cuda-8.0到/usr/local/cuda的符号链接,这一步最好选择是,如果切换版本,很方便。
在英伟达cudnn界面下载cudnn5.1,这里也需要进行一个调查问卷,就三个选择题。
具体的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*完整的tensorflow源码安装可以选择参考tensorflow官方安装文档中的安装教程,写的很详细!
从tensorflow的github仓库下载代码 $ git clone https://github.com/tensorflow/tensorflow
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的安装文件,也超级简单。因为我使用是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.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" 再次运行上一步的命令,应该就没问题了。
如果你希望安装到anaconda里面,在最后一步要使用anaconda自带的pip,而不是系统的pip,你使用sudo pip那一般就是用的系统自带的pip 你可以进入anaconda目录,一般在主目录下,进入bin目录,执行 ./pip install /tmp/tensorflow_pkg/tensorflow-0.10.0rc0-py2-none-any.whl 至此,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打开python,import tensorflow,应该就可以工作了